feat: role 컬럼을 ENUM에서 VARCHAR(20)으로 변경
- 향후 확장성을 위해 VARCHAR 사용 - 새로운 role 값 추가 시 스키마 변경 불필요 - sales@sam.kr만 'sales', 나머지는 'tenant'로 설정
This commit is contained in:
@@ -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'");
|
||||
}
|
||||
};
|
||||
Reference in New Issue
Block a user