我正在尝试执行迁移,但遇到以下问题。
请求未知的列类型“时间戳”。您使用的任何 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();
});
Run Code Online (Sandbox Code Playgroud)
奇怪的是,我已经使用该类型的数据执行了迁移:
Schema::create('XXXXXX', function (Blueprint $table) {
...
$table->timestamp('date_expired')->nullable();
...
});
Run Code Online (Sandbox Code Playgroud)
有谁知道如何修复它或查看我正在执行的错误。
谢谢
更新
最后,我删除了迁移,修改了它,将时间戳放入必要的列中,然后再次执行了它。(之前已从数据库中删除了该表)