はじめに
Laravel5ではマイグレーション実行時にも読み込む.envファイルを切り替えることができますが、バージョンによって方法が異なります。
5.3以降の方法についての説明はいくつかありますが、5.2以前の方法があまりなかったので、以下に記載します。
前提
環境ごとに各.envファイルが作成されているものとします。
環境 | ファイル |
---|---|
開発環境 | .env.dev |
ステージ環境 | .env.stg |
本番環境 | .env.prod |
5.3以降の場合
開発環境
$ php artisan migrate --env=dev
ステージ環境
$ php artisan migrate --env=stg
本番環境
$ php artisan migrate --env=prod
5.2以前の場合
開発環境
$ export APP_ENV=dev
$ php artisan migrate
ステージ環境
$ export APP_ENV=stg
$ php artisan migrate
本番環境
$ export APP_ENV=prod
$ php artisan migrate
解説
5.2以前でもマイグレーション実行時のオプションを確認する下記コマンドを実行すると、--envオプションが使えるように見えます。
$ php artisan migrate --help
Usage:
migrate [options]
Options:
# 中略
--env[=ENV] The environment the command should run under.
しかし、下記のIssueにあるような不具合があるため、実行しても意図したenvファイルを読み込みません(エラーにもなりません)。
https://github.com/laravel/framework/issues/14941
これは下記のPRで修正され、バージョン5.3に適用されました。
https://github.com/laravel/framework/pull/15629
そのため、5.2以前と5.3以降で実行コマンドに差異が生じます。
まとめ
- Laravel5のマイグレーション実行コマンドはバージョンによって異なる。
- 使用できないオプションをヘルプに書いてはいけない。