15/09/11

Forzar uso de tablas utf-8 en symfony 1.4 y doctrine 1.2

Hace poco tuve un problema al usar la tarea doctrine:build en symfony 1.4 y doctrine 1.2. Cual fué mi sorpresa al ver que symfony me creaba todas las tablas de mysql con codificación latin1_general_ci en vez de utf8_general_ci.

Indagando un poco por internet encontré una buena manera de poder definir la creación de tablas a utf a nivel global de tu proyecto. Tenemos dos opciones, una a nivel de tablas mysql y otra a nivel de toda tu base de datos.

Para la primera podemos definir en nuestro schema.yml las tablas de la siguiente forma:

User:
  options:
    type: MyISAM
    collate: utf8_unicode_ci
    charset: utf8
  columns:
    username: string(255)
    password: string(255)

La segunda, mucho más cómoda, es definir a nivel global el manager doctrine en nuestro archivo ProjectConfiguration.class.php la siguiente función:

public function configureDoctrine(Doctrine_Manager $manager)
{
  $manager->setCollate('utf8_unicode_ci');
  $manager->setCharset('utf8');
}

No nos olvidemos de realizar un rebuild the nuestros modelos y ya estaremos listos para seguir trabajando.

Tags: ,

Una respuesta to “Forzar uso de tablas utf-8 en symfony 1.4 y doctrine 1.2”

  1. Información Bitacoras.com…

    Valora en Bitacoras.com: Hace poco tuve un problema al usar la tarea doctrine:build en symfony 1.4 y doctrine 1.2. Cual fué mi sorpresa al ver que symfony me creaba todas las tablas de mysql con codificación latin1_general_ci en vez de utf8_general……

Deja un comentario