php artisan上的错误迁移了laravel

时间:2016-06-13 15:13:19

标签: php laravel enums

我正在使用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可能不支持它。

我甚至不使用枚举!而且我也没有任何其他未迁移且具有枚举的迁移。

3 个答案:

答案 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