CakePHP2 database.phpを本番と開発環境で違うDBを設定るす
DBは開発・ステージ・本番で違うのよ!
ひさびさにCakePHPをお届けします。今更感満載ですが、CakePHPの開発と本番とでDBが違う時一緒のdatabase.phpを使いたいなあ!そんな時はdatabase.phpに複数のDBを設定しましょう。
config/database.php
AppControllerにも書く方法があるようですが、database.phpだけ書けばよいので間違いにくいので個人的にはこれが一番好き。
- class DATABASE_CONFIG {
- public $default = array(
- 'datasource' => 'Database/Mysql',
- 'persistent' => false,
- 'host' => 'localhost',
- 'login' => 'root',
- 'password' => 'password',
- 'database' => 'databaseName',
- 'prefix' => '',
- //'encoding' => 'utf8',
- );
- public $production = array(
- 'datasource' => 'Database/Mysql',
- 'persistent' => false,
- 'host' => 'localhost',
- 'login' => 'user',
- 'password' => 'password',
- 'database' => 'test_database_name',
- 'prefix' => '',
- //'encoding' => 'utf8',
- );
- public function __construct() {
- if (env('SERVER_NAME') == 'HostNameHere') {
- $this->default = $this->default;
- } else {
- $this->default = $this->production;
- }
- }
- }
こんな感じで、ホスト名によって切り替えればよいですね。