わかりました、 Laravel Docsからマルチ環境を取得します。
これが私のセットアップです:
- ローカル環境
- ステージング サーバー環境
- 本番サーバー
ローカル環境のホスト名は明らかに本番サーバーとは異なりますが、ステージング サーバーは本番サーバーのサブドメインです (そうdev.myapp.com
vs myapp.com
)。myapp.dev
また、ローカルで仮想ホスト名として使用しています。
環境を切り替えるために次のように設定しました。
$env = $app->detectEnvironment(function(){
if(strpos($_SERVER['HTTP_HOST'],'.dev') !== false) || strpos($_SERVER['HTTP_HOST'],'dev.') !== false) {
return 'local';
}
return 'production';
});
これはほとんど機能します。問題は、ステージング環境でライブ データを表示または操作しないように、開発/ステージング環境用に別のデータベースをセットアップしていることです。これはターミナルで落ちます。実行するとphp artisan env
(設定されていないという警告メッセージが表示された後$_SERVER['HTTP_HOST']
)、本番として表示されます。
つまり、ターミナルを介して正しいデータベースで移行が実行されません。
これを参照するより良い方法は何ですか?