[FIX] 修正 Migration 欄位重複導致的 CI/CD 錯誤

1. 增加防禦性檢查:在新增欄位前先透過 Schema::hasColumn 確認欄位是否已存在。
2. 解決 welcome_gift_enabled 欄位重複定義導致的 SQL 錯誤。
This commit is contained in:
sky121113 2026-04-24 17:37:31 +08:00
parent e9dd1a28ef
commit 9017869d0f

View File

@ -12,13 +12,27 @@ return new class extends Migration
public function up(): void
{
Schema::table('machines', function (Blueprint $table) {
$table->boolean('tax_invoice_enabled')->default(0)->after('invoice_status')->comment('電子發票開關');
$table->boolean('card_terminal_enabled')->default(0)->after('card_reader_no')->comment('刷卡機系統開關');
$table->boolean('scan_pay_esun_enabled')->default(0)->after('card_terminal_enabled')->comment('玉山掃碼支付開關');
$table->boolean('scan_pay_linepay_enabled')->default(0)->after('scan_pay_esun_enabled')->comment('LinePay支付開關');
$table->boolean('shopping_cart_enabled')->default(0)->after('scan_pay_linepay_enabled')->comment('購物車功能開關');
$table->boolean('welcome_gift_enabled')->default(0)->after('shopping_cart_enabled')->comment('迎賓禮功能開關');
$table->boolean('cash_module_enabled')->default(0)->after('welcome_gift_enabled')->comment('現金模組開關');
if (!Schema::hasColumn('machines', 'tax_invoice_enabled')) {
$table->boolean('tax_invoice_enabled')->default(0)->after('invoice_status')->comment('電子發票開關');
}
if (!Schema::hasColumn('machines', 'card_terminal_enabled')) {
$table->boolean('card_terminal_enabled')->default(0)->after('card_reader_no')->comment('刷卡機系統開關');
}
if (!Schema::hasColumn('machines', 'scan_pay_esun_enabled')) {
$table->boolean('scan_pay_esun_enabled')->default(0)->after('card_terminal_enabled')->comment('玉山掃碼支付開關');
}
if (!Schema::hasColumn('machines', 'scan_pay_linepay_enabled')) {
$table->boolean('scan_pay_linepay_enabled')->default(0)->after('scan_pay_esun_enabled')->comment('LinePay支付開關');
}
if (!Schema::hasColumn('machines', 'shopping_cart_enabled')) {
$table->boolean('shopping_cart_enabled')->default(0)->after('scan_pay_linepay_enabled')->comment('購物車功能開關');
}
if (!Schema::hasColumn('machines', 'welcome_gift_enabled')) {
$table->boolean('welcome_gift_enabled')->default(0)->after('shopping_cart_enabled')->comment('迎賓禮功能開關');
}
if (!Schema::hasColumn('machines', 'cash_module_enabled')) {
$table->boolean('cash_module_enabled')->default(0)->after('welcome_gift_enabled')->comment('現金模組開關');
}
});
}