【问题标题】:Changing column in Laravel migration causes exception: Changing columns for table requires Doctrine DBAL在 Laravel 迁移中更改列会导致异常:更改表的列需要 Doctrine DBAL
【发布时间】:2016-08-15 07:25:17
【问题描述】:

我正在尝试在一次迁移中更改表 reserves 中我的列之一的最大长度。代码如下所示:

public function up()
{
    //
    Schema::table('reserves', function($table){
        $table->string("mobile", 11)->change();
    });
}

但是当通过 artisan 运行迁移时,它会抛出一个异常并说:

[RuntimeException] 更改表“reserves”的列需要 DBAL 学说;安装“教义/dbal”。

问题是什么,我该如何解决?

【问题讨论】:

    标签: laravel laravel-5.2 database-migration


    【解决方案1】:

    在框架根目录下执行如下命令即可解决问题:

    composer require doctrine/dbal
    

    【讨论】:

    • 为什么默认不安装这个?
    • @NicuVlad 默认情况下未安装它,因为设计人员希望将其保留在框架之外,因为他们认为这些更多是边缘情况。如果需要,您始终可以将其拉入,因此他们选择将其保留在核心框架之外以避免膨胀。我不能说我同意,我一直在使用它,但这就是原因。
    • 请注意,您可能会遇到“找不到类'Doctrine\DBAL\Driver\PDOMySql\Driver'”错误。因此,在作曲家文件中添加短语“学说/dbal”:“^ 2.0”。
    • 引用docs 可能会有所帮助:Before modifying a column, be sure to add the doctrine/dbal dependency to your composer.json file.
    【解决方案2】:

    添加到 composer.json

    "require": {
            ...
            "doctrine/dbal": "*"
        },
    

    运行“作曲家更新”命令

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-07-20
      • 2016-08-28
      • 2019-04-17
      • 2019-06-16
      • 2016-02-26
      • 2015-12-31
      • 2011-02-17
      相关资源
      最近更新 更多