变更:创建新的独立迁移文件更新 user_purchases 的 ENUM

考虑到修改已执行过的迁移文件无法在生产环境复用,
现回退对 2026_03_01_145034... 的修改,
并专门创建一个新的迁移 2026_03_01_173619_update_user_purchases_status_enum.php
解决 used_pending/lost 枚举缺失问题,方便线上直接 migrate。
This commit is contained in:
2026-03-01 17:36:41 +08:00
parent 919f0e30b5
commit b7ded61523
2 changed files with 24 additions and 7 deletions

View File

@@ -7,7 +7,6 @@
use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint; use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Schema; use Illuminate\Support\Facades\Schema;
return new class extends Migration return new class extends Migration
@@ -60,9 +59,6 @@ return new class extends Migration
Schema::table('users', function (Blueprint $table) { Schema::table('users', function (Blueprint $table) {
$table->integer('frozen_jjb')->default(0)->after('jjb')->comment('定时婚礼预冻结金币(待婚礼触发后正式扣除)'); $table->integer('frozen_jjb')->default(0)->after('jjb')->comment('定时婚礼预冻结金币(待婚礼触发后正式扣除)');
}); });
// ── user_purchases 表:扩展 status ENUM 值 ─────────────────
DB::statement("ALTER TABLE user_purchases MODIFY COLUMN status ENUM('active','expired','used','cancelled','used_pending','lost') NOT NULL DEFAULT 'active'");
} }
/** /**
@@ -83,8 +79,5 @@ return new class extends Migration
Schema::table('users', function (Blueprint $table) { Schema::table('users', function (Blueprint $table) {
$table->dropColumn('frozen_jjb'); $table->dropColumn('frozen_jjb');
}); });
// 回滚 enum 状态扩展(如果有不包含 used_pending 以外的值,执行可能会失败,需谨慎回滚,这里退回到最初状态)
DB::statement("ALTER TABLE user_purchases MODIFY COLUMN status ENUM('active','expired','used','cancelled') NOT NULL DEFAULT 'active'");
} }
}; };

View File

@@ -0,0 +1,24 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Support\Facades\DB;
return new class extends Migration
{
/**
* 执行迁移:为 user_purchases status 添加 used_pending lost 枚举。
*/
public function up(): void
{
DB::statement("ALTER TABLE user_purchases MODIFY COLUMN status ENUM('active','expired','used','cancelled','used_pending','lost') NOT NULL DEFAULT 'active'");
}
/**
* 回滚
*/
public function down(): void
{
// 回滚可能导致截断,如果没有 used_pending 的记录可以执行,为安全起见仅还原定义:
DB::statement("ALTER TABLE user_purchases MODIFY COLUMN status ENUM('active','expired','used','cancelled') NOT NULL DEFAULT 'active'");
}
};