Issei.M's Techlog

Web/iOS エンジニアの僕が技術関連のメモ等をつらつらと。主に Symfony について書いています。

[Doctrine] MySQL の TEXT 型を使用する

※Doctrine 2.3 以下でのお話です。

MySQL のカラムにTEXT型を使おうとして普通に type を text にするとLONGTEXT型になってしまいます。

/**
 * @ORM\Column(type="text")
 */
private $title;

※コンソール結果

$ php app/console doctrine:schema:create --dump-sql
> CREATE TABLE ... title LONGTEXT NOT NULL, ...

どうやら length を 65532 にするとTEXTになるようです。

/**
 * @ORM\Column(type="text", length=65532)
 */
private $title;

※コンソール結果

$ php app/console doctrine:schema:create --dump-sql
> CREATE TABLE ... title TEXT NOT NULL, ...

因みに 255TINYTEXT, 16777215MEDIUMTEXT, それ以上はLONGTEXTになるみたいですね。

詳しくは Doctrine/DBAL/Platforms/MySqlPlatform を御覧ください。

追記

※バージョン2.4からはTEXTの長さが 65535 になるようです。
Doctrine/DBAL/Platforms/MySqlPlatform