MySQLでBLOB/TEXT型のカラムにはデフォルト値を設定できない

スポンサーリンク

CakePHP 3 開発のマイグレーションで、MySQL データベースの TEXT 型のカラムにデフォルト値を設定しようとして遭遇したエラー。

— 環境 —
PHP 5.5.19
CakePHP 3.1.1
MySQL 5.6.19

【お知らせ】 英単語を画像イメージで楽に暗記できる辞書サイトを作りました。英語学習中の方は、ぜひご利用ください!
画像付き英語辞書 Imagict | 英単語をイメージで暗記
【開発記録】
英単語を画像イメージで暗記できる英語辞書サービスを作って公開しました
スポンサーリンク

MySQLはBLOB/TEXT型のカラムにデフォルト値を設定できない

CakePHP の bin/cake bake コマンドを使って…

のように、マイグレーション用ファイルを生成したところ、以下のファイルが生成された。

config/Migrations/*****_create_products.php

これをそのままマイグレーションを実行してみましたら…

以下のエラーメッセージが表示されてマイグレーションが失敗。

デフォルト値(’default’ => ”)の指定を削除

どうやら MySQL の仕様で、データ型が BLOB または TEXT 型のカラムにはデフォルト値を設定することができないらしい。

なので、該当部分を以下のように修正してマイグレートやり直し。

config/Migrations/*****_create_products.php

マイグレートを再び実行。

これで、無事にマイグレーションが成功した。

“bin/cake bake migration” コマンドで自動生成されたマイグレーションファイルを使うときは、ちょっと注意が必要ですね。

スポンサーリンク
現場で使えるMySQLは長くお世話になっていて、MySQL触る人には必須の本。
 
スポンサーリンク

Leave Your Message!