feat: role 컬럼을 ENUM에서 VARCHAR(20)으로 변경

- 향후 확장성을 위해 VARCHAR 사용
- 새로운 role 값 추가 시 스키마 변경 불필요
- sales@sam.kr만 'sales', 나머지는 'tenant'로 설정
This commit is contained in:
2025-10-14 20:49:51 +09:00
parent d42fd96535
commit 14023e8160
2 changed files with 220 additions and 0 deletions

View File

@@ -0,0 +1,37 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
*/
public function up(): void
{
// role ENUM을 VARCHAR로 변경
DB::statement("ALTER TABLE users MODIFY COLUMN role VARCHAR(20) NOT NULL DEFAULT 'sales' COMMENT '사용자 역할 (sales: 영업사원, ops: 운영, tenant: 테넌트)'");
// sales@sam.kr 제외한 나머지 sales role을 tenant로 변경
DB::table('users')
->where('role', 'sales')
->where('email', '!=', 'sales@sam.kr')
->update(['role' => 'tenant']);
}
/**
* Reverse the migrations.
*/
public function down(): void
{
// tenant를 sales로 되돌림
DB::table('users')
->where('role', 'tenant')
->update(['role' => 'sales']);
// role을 다시 ENUM으로 변경
DB::statement("ALTER TABLE users MODIFY COLUMN role ENUM('sales', 'ops') NOT NULL DEFAULT 'sales'");
}
};