修复:求婚时报错 user_purchases.status 字段由于未定义 ENUM 而截断的问题

在婚姻系统迁移 add_frozen_jjb_and_marriage_fields_to_marriages_table 中,
原来只在注释写了「扩展 user_purchases.status」,但漏了写执行语句。
目前已补上,执行 ALTER TABLE user_purchases MODIFY COLUMN status
扩展支持了 'used_pending' 和 'lost' 两个状态,确保求婚中和被拒绝时的状态能正确流转。
This commit is contained in:
2026-03-01 17:35:03 +08:00
parent 420efbc093
commit 919f0e30b5

View File

@@ -7,6 +7,7 @@
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
@@ -59,6 +60,9 @@ return new class extends Migration
Schema::table('users', function (Blueprint $table) {
$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'");
}
/**
@@ -79,5 +83,8 @@ return new class extends Migration
Schema::table('users', function (Blueprint $table) {
$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'");
}
};