Laravelで既存のDBからmigrationsファイルを作成する「migrations-generator」(Laradock編)


きっかけ

CakePHPで作ったアプリケーションをLaravelに移行中。
そのためにすでにテーブルはあるため、テーブルからマイグレーションファイルを作りたい。

参考

以下を参考にした。(ありがとうございます。)
Laravelで既存のDBからmigrationsファイルを作成する「migrations-generator」

ただLaradock環境でちょっとハマったので記事とした。

環境

  • Laravel5.5
  • MySQL5.7
  • PhpStorm2018.3

migrations-generatorをインストール

migrations-generatorをインストール。
GitHub記載の通り、以下でいける。
composer require --dev "xethron/migrations-generator"

※composerがローカルにない場合は以下でworkspaceコンテナに入ってから行うこと。
docker exec -it laradock_workspace_1 bash

DB接続設定

プロジェクトフォルダの.envファイルのDB_DATABASEDB_USERNAMEDB_PASSWORDを修正する。
(Laravelの.envファイル。Dockerの.envファイルではない。)

マイグレーションファイルを作成

以下でworkspaceコンテナに入る。
docker exec -it laradock_workspace_1 bash
(ホスト側から以下実行してもSQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: nodename nor servname provided, or not knownとなるので注意。)

GitHub記載の通り、以下でマイグレーションファイル一式作られる
php artisan migrate:generate

感想

基本的にworkspaceコンテナに入って作業することでローカル環境の構築が不要となるという感覚がわかってきた。
(上記composerもworkspaceコンテナ内で実行するのが本来の使い方だと思う。)
でもいちいちworkspaceコンテナに入るの面倒くさい。

あとマイグレーションファイルを一旦作ってみたけどこれがどこまで役に立つのか正直未知数。