在 Laravel 5.8 開始後 primary ID 欄位的預設類型從 INT 更改為 BIGINT,這造成新建立的 Migration 使用 Foreign Key 使仍然得遷就於舊的資料型態。如果你的專案很大,你曾經想要手動更改這些欄位屬性卻發現更改起來很麻煩,那麼你可以使用 axn/laravel-pk-int-to-bigint
這個工具。這個工具讓你在 Laravel 項目中將數據庫主鍵和相關的外鍵類型從 INT 轉換為 BIGINT。
項目分 4 個步驟進行
- 數據庫的內外鍵完整性的驗證
- 刪除每個表上的所有外鍵約束
- 在每個表的主鍵和外鍵列上將 INT 轉換為 BIGINT
- 恢復每個表上的所有外鍵約束
使用 composer 安裝
composer require axn/laravel-pk-int-to-bigint
手動更改
php artisan pk-int-to-bigint:transform
使用 Migration 更改
php artisan vendor:publish --tag="pk-int-to-bigint-migration"
未來在發布的流程中執行 migration
php artisan migrate