Files
sam-api/database/migrations/2025_12_12_100000_rollback_items_migration.php
hskwon aa9746ae2f feat: files 테이블 field_key 컬럼 추가 및 file_type VARCHAR 변경
- file_type: ENUM → VARCHAR(50) 변경 (확장성 개선)
- field_key: VARCHAR(100) 신규 컬럼 (비즈니스 용도 구분)
- ItemsFileController: field_key 사용, file_type 자동 분류 (detectFileType)
- File 모델: fillable에 field_key 추가
- ItemsService: getItemFiles()에서 field_key로 그룹핑
- rollback_items_migration: FK 제약조건 처리 수정
2025-12-12 18:29:14 +09:00

49 lines
1.6 KiB
PHP

<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Schema;
/**
* Items 테이블 이관 롤백
*
* 이전 마이그레이션(2025_12_11_220200)에서 이관된 데이터를 정리하고
* items, item_id_mappings 테이블을 삭제합니다.
*
* 추후 items 테이블 정책 정리 후 재작업 예정
*/
return new class extends Migration
{
public function up(): void
{
// FK 제약 조건 비활성화
DB::statement('SET FOREIGN_KEY_CHECKS=0');
// 1. item_id_mappings 테이블 먼저 삭제 (FK 참조)
if (Schema::hasTable('item_id_mappings')) {
$mappingsCount = DB::table('item_id_mappings')->count();
echo "item_id_mappings 테이블 삭제: {$mappingsCount}\n";
Schema::dropIfExists('item_id_mappings');
}
// 2. items 테이블 삭제
if (Schema::hasTable('items')) {
$itemsCount = DB::table('items')->count();
echo "items 테이블 삭제: {$itemsCount}\n";
Schema::dropIfExists('items');
}
// FK 제약 조건 재활성화
DB::statement('SET FOREIGN_KEY_CHECKS=1');
echo "✅ Items 관련 테이블 롤백 완료\n";
}
public function down(): void
{
// 롤백 시 아무 작업도 하지 않음
// items 테이블은 재설계 후 새로운 마이그레이션으로 생성 예정
echo "⚠️ 이 마이그레이션은 롤백되지 않습니다. items 테이블 재설계 후 새로운 마이그레이션을 사용하세요.\n";
}
};