LoginSignup
3
2

More than 3 years have passed since last update.

Laravel5でマイグレーション実行時に読み込む.envファイルを切り替える

Posted at

はじめに

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のマイグレーション実行コマンドはバージョンによって異なる。
  • 使用できないオプションをヘルプに書いてはいけない。

参考

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2