CakePHP2 database.phpを本番と開発環境で違うDBを設定るす ITかあさん

ITかあさん

CakePHP2 database.phpを本番と開発環境で違うDBを設定るす

cakephp Config

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;
        }
    }
}

こんな感じで、ホスト名によって切り替えればよいですね。

初夏のJavaScript祭 in サーキュレーションビル ForPro