CakePHP3でアプリを作っており、DBの設定について質問です。
やりたいこと
本番用DBと開発用DBとテスト用DBを設定し、環境を自動で判定させてそれぞれのDBを使い分けたい。
詳細説明
現状、config/app.phpには本番用DB設定(default)と開発用DB設定(test)の2種類が下記の通り書かれています。
php
1# config/app.php 2 3'Datasources' => [ 4 5 // 本番用 6 'default' => [ 7 'className' => 'Cake\Database\Connection', 8 'driver' => 'Cake\Database\Driver\Mysql', 9 'persistent' => false, 10 'host' => '本番用ホスト', 11 'username' => '本番用ユーザー名', 12 'password' => '本番用パスワード' 13 'database' => '本番用DB名' 14 'quoteIdentifiers' => false, 15 // 他にも'encoding'や'timezone'などが少し続きます 16 ], 17 18 // 開発用 19 'test' => [ 20 'className' => 'Cake\Database\Connection', 21 'driver' => 'Cake\Database\Driver\Mysql', 22 'persistent' => false, 23 'host' => '開発用ホスト', 24 'username' => '開発用ユーザー名', 25 'password' => '開発用パスワード' 26 'database' => 'dev' 27 'quoteIdentifiers' => false, 28 // 他にも'encoding'や'timezone'などが少し続きます 29 ],
この状態で、本番環境ではdefault
の設定が読み込まれ、開発環境ではtest
の設定が自動で判定されて読み込まれ、なんの問題もなく正しく動作しています。
ここで、このtest
をdev
にリネームし、新しく第3のDB設定を追記して、そちらをtest
と呼び、テスト用DBとして使用していけるよう変更したいと思っています。
config/app.phpの書き方としては下記を想定しておりますが、それだけだとtest
(本当はテスト用にしたいDB)が開発用DBとして読み込まれてしまいます。開発用DBとテスト用DBの切り替えをどのように行ったら良いのでしょうか?ご教示の程よろしくお願い致します。
php
1# config/app.php 2 3'Datasources' => [ 4 5 // 本番用 6 'default' => [ 7 'className' => 'Cake\Database\Connection', 8 'driver' => 'Cake\Database\Driver\Mysql', 9 'persistent' => false, 10 'host' => '本番用ホスト', 11 'username' => '本番用ユーザー名', 12 'password' => '本番用パスワード' 13 'database' => '本番用DB名' 14 'quoteIdentifiers' => false, 15 // 他にも'encoding'や'timezone'などが少し続きます 16 ], 17 18 // 開発用 19 'dev' => [ 20 'className' => 'Cake\Database\Connection', 21 'driver' => 'Cake\Database\Driver\Mysql', 22 'persistent' => false, 23 'host' => '開発用ホスト', 24 'username' => '開発用ユーザー名', 25 'password' => '開発用パスワード' 26 'database' => 'dev' 27 'quoteIdentifiers' => false, 28 // 他にも'encoding'や'timezone'などが少し続きます 29 ], 30 // テスト用 31 'test' => [ 32 'className' => 'Cake\Database\Connection', 33 'driver' => 'Cake\Database\Driver\Mysql', 34 'persistent' => false, 35 'host' => '開発用ホストと同じ', 36 'username' => '開発用ユーザー名と同じ', 37 'password' => '開発用パスワードと同じ' 38 'database' => 'test' 39 'quoteIdentifiers' => false, 40 // 他にも'encoding'や'timezone'などが少し続きます 41 ],
尚、当方CakePHP3およびテストコードを書くということ自体に対してド初心者のため、皆さんからしたら超当たり前のことでも理解できていないことがある可能性があります。小さなことでも構いませんので、アドバイスをいただけましたら幸いです。よろしくお願い致します。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。