Home Top About Help Login Search

環境によってdatabaseのconfigを切り替える

ID: 27
creation date: 2010/01/13 19:04
modification date: 2010/01/13 19:04
owner: naoto5959
tags: CakePHP

開発環境と本番環境でデータベースの設定を変えたいことが多々あります。

  • 開発: dev.exapmle.com
  • 本番: release.example.com

とドメインを分けていると仮定します。私は、

app/config/database.php

に以下のような記述をしています。

<?php
class DATABASE_CONFIG {
    var $default;
    var $test;
    
    function __construct() {
        switch ($_SERVER['SERVER_NAME']) {
            case 'dev.example.com':
                $this->default = array(
                    'driver' => 'mysql',
                    'persistent' => false,
                    'host' => '127.0.0.1',
                    'port' => 3306,
                    'login' => 'hoge',
                    'password' => '',
                    'database' => 'hoge',
                    'prefix' => 'hoge_',
                    'encoding' => 'utf8'
                );
                break;
            case 'release.example.com':
                $this->default = array(
                    'driver' => 'mysql',
                    'persistent' => false,
                    'host' => '127.0.0.1',
                    'port' => 3306,
                    'login' => 'root',
                    'password' => '',
                    'database' => 'hoge',
                    'prefix' => 'hoge_',
                    'encoding' => 'utf8'
                );
                $this->test = array(
                    'driver' => 'mysql',
                    'persistent' => false,
                    'host' => '127.0.0.1',
                    'port' => 3306,
                    'login' => 'root',
                    'password' => '',
                    'database' => 'hoge',
                    'prefix' => 'hoge_test_',
                    'encoding' => 'utf8'
                );
                break;
        }
    }
}

他には、複数の設定を定義しておいてAppModelで振り分けるとかも良いかも知れませんね。個人的には

app/config/database.php

だけを確認すれば良い実装の方が好きですけど。

2 comments
lVbnFrrjNYGnJLy : qgBfEjAKNOwbuvTYs (2010/02/04 04:53)
naoto5959 : コメントありがとう御座います (2010/02/07 13:08)
: