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.