From 9017869d0f52b36dfdd8c8b87c3acdebfe39892c Mon Sep 17 00:00:00 2001 From: sky121113 Date: Fri, 24 Apr 2026 17:37:31 +0800 Subject: [PATCH] =?UTF-8?q?[FIX]=20=E4=BF=AE=E6=AD=A3=20Migration=20?= =?UTF-8?q?=E6=AC=84=E4=BD=8D=E9=87=8D=E8=A4=87=E5=B0=8E=E8=87=B4=E7=9A=84?= =?UTF-8?q?=20CI/CD=20=E9=8C=AF=E8=AA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1. 增加防禦性檢查:在新增欄位前先透過 Schema::hasColumn 確認欄位是否已存在。 2. 解決 welcome_gift_enabled 欄位重複定義導致的 SQL 錯誤。 --- ..._add_system_settings_to_machines_table.php | 28 ++++++++++++++----- 1 file changed, 21 insertions(+), 7 deletions(-) diff --git a/database/migrations/2026_04_24_082553_add_system_settings_to_machines_table.php b/database/migrations/2026_04_24_082553_add_system_settings_to_machines_table.php index 909cc53..caec4a3 100644 --- a/database/migrations/2026_04_24_082553_add_system_settings_to_machines_table.php +++ b/database/migrations/2026_04_24_082553_add_system_settings_to_machines_table.php @@ -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('現金模組開關'); + } }); }