2012-03-20 2 views
0

현재 데이터베이스 구성 파일에서 Cakephp의 동적 데이터베이스 전환을 사용하고 있습니다. 하위 도메인 즉, TEST.mysite.com 및 PROD.mysite.com을 기반으로 전환합니다.Cakephp의 DB 연결 오류 처리

데이터베이스 연결이있는 경우 어떻게 테스트하고 리디렉션하는 것이 가장 좋고 좋은 곳입니까?

감사합니다,

kSeudo

+0

당신의 config. – RumpRanger

답변

2

이 작업을 수행하는 신속하고 더러운 방법은 생성자에서 조건을 넣어하는 것입니다. 조건부 구성을 생성하고 버그가 도입되어 프로덕션 응용 프로그램이 dev 데이터베이스에 연결되어 있기 때문에 더티라고 말합니다.

class DATABASE_CONFIG { 

    public $default = array(
     'driver' => 'mysql', 
     'persistent' => false, 
     'host' => '', 
     'login' => '', 
     'password' => '', 
     'database' => '', 
     'prefix' => '', 
     'encoding' => 'utf8' 
    ); 

    public $testDB = array(
     'driver' => 'mysql', 
     'persistent' => false, 
     'host' => '', 
     'login' => '', 
     'password' => '', 
     'database' => '', 
     'prefix' => '', 
     'encoding' => 'utf8' 
    ); 

    public function __construct() 
    { 
     if (false !== stripos($_SERVER['HTTP_HOST'], 'test')) 
     { // Use the test DB since 'test' is present in the server host 
      $this->default = $testDB; 
     } 
    } 
} 

당신의 생성자에 다음을 넣어 수있는 연결을 테스트하려면 app_model.php 당신의 예를 게시하시기 바랍니다 수 CakePHP의 버전 (1.x 나 2.X)와

public function __construct() 
{ 
    parent::__construct();     

    $db =& ConnectionManager::getDataSource('default'); 
    if (empty($db->connection)) 
    { 
      echo 'oh noes we werent able to connect'; 
      exit; 
    } 
} 
+0

신난다, 이것이 내가 찾고 있었던 것이다. 많은 감사합니다. – kSeudo