我正在使用Laravel,我有功能迁移:
public function up()
{
Schema::table('articles', function (Blueprint $table) {
$table->string('article_title',100)->change();
});
}
当我在我的cmd上执行'php artisan migrate'时出现错误:
[Doctrine \ DBAL \ DBALException]请求未知的数据库类型枚举, Doctrine \ DBAL \ Platforms \ MySqlPlatform可能不支持它。
我甚至不使用枚举!而且我也没有任何其他未迁移且具有枚举的迁移。
答案 0 :(得分:3)
列本身不必是枚举,但表中的 ANY 列不能枚举。
以下是Laravel文档重命名列部分的行:
注意:目前不支持使用枚举列重命名表格中的列。
答案 1 :(得分:1)
我相信我以前遇到过这个问题。问题是提供给Schema
工厂的database migration
类实际上是Doctrine\DBAL\Schema
类的抽象,而不是直接重复。
当您第一次运行composer install
时,您应该安装几个“推荐”的依赖项。从来没有人做过,但最终你可能会发现一些小错误并花费数小时才能实现嘿......也许我应该尝试其他可选的依赖?
不要像我一样。相反,试试我在下面概述的内容。
您需要在"doctrine/dbal": "^2.5",
下的composer.json
文件中直接添加"require": {
(或阅读时存在的任何稳定版本)。
添加该行后,请执行作曲家更新,然后将此行添加到迁移中:
use Doctrine\DBAL\Schema\Schema
执行此操作后,您不应再看到该错误。
答案 2 :(得分:-1)
链接到Laravel的文档:Changing columns。您需要将 doctrine / dbal 添加到 composer.json 文件中。
注意:在更改列之前,请务必将doctrine / dbal依赖项添加到composer.json文件中。
或运行此命令:
composer require doctrine/dbal