Dos bases de datos en un mismo proyecto

91 views
Skip to first unread message

MaHaM

unread,
Oct 23, 2007, 11:52:34 AM10/23/07
to symfony-es
Holas a tod@s.

Estoy trabajando en un proyecto que requere tener MySQL y Postgres
actualizandose a la vez. Quisiera saber si alquien conoce como
configurar symfony para me trabaje con las dos.

He intentado algunas cosas pero no me han funcionado.

Gracias de antemano

Juan Liniers

unread,
Oct 23, 2007, 12:01:26 PM10/23/07
to symfo...@googlegroups.com
en el databases.yml

all:
  uno:
    class:          sfPropelDatabase
    param:
      phptype:            mysql
      host:               11.22..22..222
      database:           nombre
      username:           user
      password:           pass
      compat_assoc_lower: true
      # datasource:       propel
      encoding:           utf8
  dos:
    class:          sfPropelDatabase
    param:
      phptype:            mysql
      host:               11.22..22..222
      database:           nombre
      username:           user
      password:           pass
      compat_assoc_lower: true
      # datasource:       propel
      encoding:           utf8
.
.
.
.
.

y asi todas las qu enecesites



El día 23/10/07, MaHaM < joh...@gmail.com> escribió:

Boris Duin

unread,
Oct 23, 2007, 12:05:16 PM10/23/07
to symfo...@googlegroups.com
MaHam: Es relativamente sencillo poner a trabajar Symfony directamente con 2 bases de datos.

Lo primero es que debes tener 2 archivos de schema, uno para cada BdD.  Cada archivo schema.yml empieza definiendo la conexión que se utilizará en las clase del modelo que se generarán a partir del mismo. En tu caso puede colocarle a el archivo de schema de MySQL el nombre de la conexión por defecto, que es propel, ejemplo:

propel:
  tabla1:
    _attributes:
      idMethod: native
    id:
      type: INTEGER
      required: true
    nombre:
.....
En el schema de la segunda BdD le colocas una conexión con un nombre distinto, ejemplo:

miconexion:
  tabla2:
    _attributes:
      idMethod: native
    id:
      type: INTEGER
      required: true
    nombre:
.....

En este caso, cuando generes el modelo, la tabla tabla1 trabajará con la conexión propel y la tabla 2 trabajará con la conexión miconexion.

Posteriormente procedes a definir en el archivo database.yml las dos conexiones para los respectivos entornos:

dev:
  propel:
    class:          sfPropelDatabase
    param:
      dsn:            mysql://usuario1:password@miservidor1/bdd1
   miconexion:
    class:          sfPropelDatabase
    param:
      dsn:            pgsql://mysql://usuario2:password@miservidor2/bdd2
El día 23/10/07, MaHaM < joh...@gmail.com> escribió:

Boris Duin
Celular: 0416-8136373
Reply all
Reply to author
Forward
0 new messages