En este post veremos como establecer el charset y collation de nuestra base de datos a UTF8, lo cual en determinadas ocasiones es necesario, por ejemplo, cuando queremos utilizar una base de datos que nos sirva para internacionalización (i18N).
Para realizar esto tenemos tres posibilidades, veamos las tres:
La primera que veremos es la opción en la que editaremos el archivo config/ProjectConfiguration.class.php
<?phpclass ProjectConfiguration extends sfProjectConfiguration
{
public function setup()
{
$this->enablePlugins('sfDoctrinePlugin');
}
public function configureDoctrine(Doctrine_Manager $manager)
{
$manager->setCollate('utf8_unicode_ci');
$manager->setCharset('utf8');
}
}
?>
Otra manera de setear a utf8 es configurando la base de datos en el archivo config/databases.yml
all:
doctrine:
class: sfDoctrineDatabase
param:
dsn: mysql:host=localhost;dbname=myDatabse
username: myUser
password: mySecret
attributes:
default_table_type: InnoDB
default_table_collate: utf8_unicode_ci
default_table_charset: utf8
Y la última alternativa es seteando las opciones en nuestro schema en config/doctrine/schema.yml
options: collate: utf8_unicode_ci charset: utf8 type: InnoDB
Espero que les sea de utilidad.