Laravelの既存機能をコピーして新しい機能を作る時、既存DBテーブルからマイグレーションを作成できるライブラリを見つけました。
実行したけどエラーでマイグレーションが生成できなかったため、対応しました。
また、ぱっと日本語記事が見つからなかったため、記事化しました。
原因
DBが古くINFORMATION_SCHEMA
のCOLUMNS
テーブルにGENERATION_EXPRESSION
カラムが無いためエラーになっていました。
そのため、DBをアップグレードすると解決します。
mysql
mysql5.7~
https://dev.mysql.com/doc/refman/5.7/en/information-schema-columns-table.html
mysql5.7でGENERATION_EXPRESSIONカラム追加された
mariadb
MariaDB 10.2.5~
https://mariadb.com/kb/en/information-schema-columns-table/
GENERATION_EXPRESSION The expression used for computing the column value in a generated (virtual, or computed) column. MariaDB 10.2.5
既存のDB|tableからマイグレーションを自動作成するライブラリ
composer require kitloong/laravel-migrations-generator --dev
- "version": "v6.8.0"
- Laravel5.5~10まで対応しています。
- (参考:上記ライブラリ) https://github.com/kitloong/laravel-migrations-generator
テーブルを指定してマイグレーションを自動作成
php artisan migrate:generate --tables="table1,table2,table3,table4,table5"
エラー
Column not found: 1054 Unknown column 'GENERATION_EXPRESSION' in 'field list'
少しでも参考になれば嬉しいです。