我正在嘗試執行遷移,但遇到以下問題。
請求了未知的列型別“時間戳”。您使用的任何 Doctrine 型別都必須在 \Doctrine\DBAL\Types\Type::addType() 中注冊。您可以使用 \Doctrine\DBAL\Types\Type::getTypesMap() 獲得所有已知型別的串列。如果在資料庫自省期間發生此錯誤,那么您可能忘記為 Doctrine 型別注冊所有資料庫型別。使用 AbstractPlatform#registerDoctrineTypeMapping() 或讓您的自定義型別實作 Type#getMappedDatabaseTypes()。如果型別名稱為空,則可能是快取有問題或忘記了一些映射資訊。
我的代碼如下:
Schema::table('XXXXXXXX', function (Blueprint $table) {
$table->timestamp('start')->change();
$table->timestamp('end')->change();
});
奇怪的是,我已經使用這種型別的資料執行了遷移:
Schema::create('XXXXXX', function (Blueprint $table) {
...
$table->timestamp('date_expired')->nullable();
...
});
有誰知道如何修復它或看到我正在做的錯誤。
謝謝
更新
最后我洗掉了遷移,我修改了它,將時間戳放在必要的列中,我再次執行了它。(之前從資料庫中洗掉了表)
uj5u.com熱心網友回復:
在 laravel 檔案頁面上,您可以找到一條警告,告訴您某些型別不能與該->change()方法一起使用。
鏈接到 laravel 檔案
它還說:
要修改時間戳列型別,必須注冊 Doctrine 型別。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/425332.html
