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