2011-06-17 10 views

Respuesta

19

Se puede establecer en su constructor.

class DATABASE_CONFIG { 

    var $live = array(
     'driver' => 'mysql', 
     'persistent' => false, 
     'host' => 'mysql.live.com', 
     'login' => 'root', 
     'password' => '', 
     'database' => '', 
     'prefix' => '', 
    ); 

    var $default = array(
     'driver' => 'mysql', 
     'persistent' => false, 
     'host' => 'localhost', 
     'login' => 'root', 
     'password' => '', 
     'database' => '', 
     'prefix' => '', 
    ); 


     public function __construct() { 
     if (isset($_SERVER) && isset($_SERVER['SERVER_NAME'])) { 
      if (strpos($_SERVER['SERVER_NAME'], 'localhost') === false) { 
       $this->default = $this->live; 
      }  
     } 
    } 
} 

Esto básicamente cambiará su configuración en función de dónde se encuentre.

+0

solución impresionante, gracias! – joseym

+0

Encontré este excelente artículo que proporciona una forma bastante sólida de configurar este método de administración de perfiles de base de datos basados ​​en entornos: http://www.sitepoint.com/deploy-cakephp-apps-on-appfog-the-right- way/ –

5

Obtuve esto (mi dominio de desarrollo termina con '.dev');

En Bootstrap.php

define('IS_LIVE',!(strpos($_SERVER['SERVER_NAME'], 'dev') !== false)); 

En database.php

<?php 
class DATABASE_CONFIG 
{ 
    var $default = array(
     'driver' => 'mysql', 
     'persistent' => false, 
     'host' => '127.0.0.1', 
     'login' => 'xxxx', 
     'password' => 'xxxx', 
     'database' => 'xxxx', 
     'prefix' => '', 
    ); 

    var $production = array(
     'driver' => 'mysql', 
     'persistent' => false, 
     'host' => '127.0.0.1', 
     'login' => 'xxx', 
     'password' => 'xxx', 
     'database' => 'xxxx', 
     'prefix' => '', 
    ); 

    function __construct() 
    { 
     if (IS_LIVE) { 
      $this->default = $this->production; 
     } else { 
      $this->default = $this->default; 
     } 
    } 
} 
+0

IN cake 1.3 no funciona. Cake devuelve los errores sql "Error SQL: 1064: tiene un error en la sintaxis SQL"; – giuseppe

+0

¿Qué hay de 2.3.x? – Jankeesvw

Cuestiones relacionadas