feat: PM 이슈에 팀/담당자/고객사 필드 추가
- department_id, team: 부서 (하이브리드 FK + 문자열) - assignee_id, assignee_name: 담당자 (하이브리드) - client: 고객사명 (문자열)
This commit is contained in:
@@ -0,0 +1,80 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
return new class extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* admin_pm_issues 테이블에 팀/담당자/고객사 필드 추가
|
||||
* - 하이브리드 방식: FK + 문자열 필드 (연동 선택 가능)
|
||||
*/
|
||||
public function up(): void
|
||||
{
|
||||
Schema::table('admin_pm_issues', function (Blueprint $table) {
|
||||
// 부서 (하이브리드: FK 또는 문자열)
|
||||
$table->foreignId('department_id')
|
||||
->nullable()
|
||||
->after('is_urgent')
|
||||
->constrained('departments')
|
||||
->nullOnDelete()
|
||||
->comment('부서 FK (연동 시)');
|
||||
$table->string('team', 100)
|
||||
->nullable()
|
||||
->after('department_id')
|
||||
->comment('팀/부서명 (직접 입력)');
|
||||
|
||||
// 담당자 (하이브리드: FK 또는 문자열)
|
||||
$table->foreignId('assignee_id')
|
||||
->nullable()
|
||||
->after('team')
|
||||
->constrained('users')
|
||||
->nullOnDelete()
|
||||
->comment('담당자 FK (연동 시)');
|
||||
$table->string('assignee_name', 100)
|
||||
->nullable()
|
||||
->after('assignee_id')
|
||||
->comment('담당자명 (직접 입력)');
|
||||
|
||||
// 고객사
|
||||
$table->string('client', 100)
|
||||
->nullable()
|
||||
->after('assignee_name')
|
||||
->comment('고객사명');
|
||||
|
||||
// 인덱스
|
||||
$table->index('department_id', 'idx_admin_pm_issues_department');
|
||||
$table->index('assignee_id', 'idx_admin_pm_issues_assignee');
|
||||
$table->index('client', 'idx_admin_pm_issues_client');
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*/
|
||||
public function down(): void
|
||||
{
|
||||
Schema::table('admin_pm_issues', function (Blueprint $table) {
|
||||
// 인덱스 삭제
|
||||
$table->dropIndex('idx_admin_pm_issues_department');
|
||||
$table->dropIndex('idx_admin_pm_issues_assignee');
|
||||
$table->dropIndex('idx_admin_pm_issues_client');
|
||||
|
||||
// FK 삭제
|
||||
$table->dropForeign(['department_id']);
|
||||
$table->dropForeign(['assignee_id']);
|
||||
|
||||
// 컬럼 삭제
|
||||
$table->dropColumn([
|
||||
'department_id',
|
||||
'team',
|
||||
'assignee_id',
|
||||
'assignee_name',
|
||||
'client',
|
||||
]);
|
||||
});
|
||||
}
|
||||
};
|
||||
Reference in New Issue
Block a user