Doctrine2, en tant qu’ORM, doit assurer la compatibilité des types de données (varchar, integer, datetime, etc…) entre différents SGBD, et ne supporte donc pas certains types propres à MySQL (dans mon cas).
Il est cependant possible de lui ajouter des types manuellement, mais la procédure est assez longue et n’en vaut pas la peine à mon avis.
Si vous êtes sûr que votre site n’utilisera qu’un seul SGBD et que ça ne va pas changer plutard, vous pouvez spécifier, dans vos annotations, une partie du code SQL qui servira à générer le champ.
Exemple
Pour générer un champ tinyint qui est NOT NULL et qui a une valeur par défaut de 10, voici le code nécessaire:
/**
* @ORM\Column(columnDefinition="tinyint(4) NOT NULL DEFAULT '10'", name="foo")
*/
protected $foo;
A vous d’adapter ce code pour votre cas. ;)