プログラミング

【Laravel】migrationでカラム定義の変更時にエラー

あきぞらです。

Laravelの開発をしていて、テーブルのカラム定義を変更しようとしたときにエラーに遭遇しました。

すぐに解決できたのですが、今回はこの解決方法を書いていきます。

カラム定義をNULL値も入るように変更しようとした

カラムの定義を、NULLも受け付けるように変更したいと思い、

こんな感じでマイグレーションファイルを作っていました。

public function up()
{
    Schema::table('books', function (Blueprint $table) {
        $table->string('book_name')->nullable(true)->change();
        $table->string('img_url')->nullable(true)->change();
    });
}

マイグレーションを実行するとエラーになった

しかし、マイグレーションを実行しようとすると、エラーになってしまいました。

$ php artisan migrate
Migrating: 2020_09_19_054917_change_books_table

   RuntimeException 

  Changing columns for table "books" requires Doctrine DBAL. Please install the doctrine/dbal package.

  at vendor/laravel/framework/src/Illuminate/Database/Schema/Grammars/ChangeColumn.php:30
....
....

エラー文をよ~く見ていくと、「Please install the doctrine/dbal package.」とのこと。

これをインストールする必要があるらしい。

必要なライブラリをインストール

エラー文にあったように、「doctrine/dbal」というものが必要らしいので、インストールしてみます。

$ composer require doctrine/dbal

再度マイグレーションを実行します。

$ php artisan migrate
Migrating: 2020_09_19_054917_change_books_table
Migrated: 2020_09_19_054917_change_books_table (0.05 seconds)

成功!

-プログラミング

Copyright© あきぞらてっく , 2020 All Rights Reserved Powered by AFFINGER5.