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;
}
}
}
こんな感じで、ホスト名によって切り替えればよいですね。
