Лучше не определять это по умолчанию в доктрине, поскольку оно должно быть совместимо с несколькими типами баз данных (Mysql, MSSql, SQLite, ...). Но я дам вам несколько вариантов, как вы можете сделать это без доктрины и один с доктриной:
Вариант 1:
Я обычно устанавливаю настройки по умолчанию для всего сервера базы данных в файле my.cf.
Этот файл находится в /etc/mysql/my.cnf в Debian (Ubuntu) (это может отличаться, если вы используете другую ОС).
[mysqld]
default-character-set = utf8
default-character-collate = utf8_unicode_ci
После редактирования файла перезапустите сервер mysql. Это должно сработать.
Вариант 2:
Когда вы создаете базу данных:
CREATE DATABASE `dbname` DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
Вы также можете изменить свою базу данных:
ALTER DATABASE `dbname` DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
Вариант 3:
Если вы хотите изменить таблицу:
ALTER TABLE `tablename` CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci;
Вариант 4:
Вы можете сделать что-то вроде этого:
public function configureDoctrine(Doctrine_Manager $manager)
{
$manager->setCollate('utf8_unicode_ci');
$manager->setCharset('utf8');
}