Múltiples conexiones a bases de datos
Martes, 22 Julio 2008
En cakephp existen gran cantidad de posibilidades desconocidas que, en algunos casos, pueden resultar útiles.
Una de ellas es la posibilidad de declarar más de una conexión a base de datos, pudiendo elegir en cada momento cuál de ellas deseamos utilizar.
Puede resultar muy cómodo para organizar nuestros proyectos, para acceder a diferentes servidores de bases de datos o acceder a diferentes gestores de bases de datos.
El proceso es sencillo, en primer lugar añadiremos al archivo database.php situado en /app/config/ una nueva configuración de base de datos.
Podremos copiar la configuración por defecto, llamada default, y cambiarle el nombre.
El fichero database.php quedará así
class DATABASE_CONFIG {
var $default = array(
'driver' => 'mysql',
'persistent' => false,
'host' => 'localhost',
'login' => 'user',
'password' => 'password',
'database' => 'database',
'prefix' => '',
);
var $nueva_conexion = array(
'driver' => 'mysql',
'persistent' => false,
'host' => 'localhost',
'login' => 'user',
'password' => 'password',
'database' => 'database_2',
'prefix' => '',
);
var $test = array(
'driver' => 'mysql',
'persistent' => false,
'host' => 'localhost',
'login' => 'user',
'password' => 'password',
'database' => 'test_database_name',
'prefix' => '',
);
}
Con esto habremos declarado otra conexión a la base de datos llamada nueva_conexion.
Una de las opciones que tiene la configuración de la base de datos, es la de utilizar un prefijo, es decir, que todas las tablas de la configuración de la base de datos comiencen con una palabra, también puede ser utilizado para organizar las bases de datos.
Para utilizar la configuración de la base de datos que hemos creado, tendremos que añadir en el modelo desde donde queremos acceder a esas tablas la siguiente línea:
var $useDbConfig ='nueva_conexion';
A partir de este momento, cada vez que accedamos a este modelo, cakephp utilizará las tablas existentes en la base de datos de esa conexión.

No. 1 — Marzo 22nd, 2010 a 11:22 pm
Hola muchas gracias por el articulo me a caido de maravilla
Please continue discussion on the forum: link