Строковое поле Symfony в схеме приводит к текстовому полю MySQL - PullRequest
0 голосов
/ 19 октября 2011

Я использую Symfony 1.4 и у меня есть поле в таблице с таким определением:

subject: { type: string(300), fixed: false, notnull: true }

Миграция, сгенерированная из этого:

'subject' =>
            array(
             'type' => 'string',
             'fixed' => '0',
             'notnull' => '1',
             'length' => '300',
            ),

Выполнение этой миграции создает код MySQL DDL, который устанавливает поле субъекта типа TEXT, а не varchar(300).

Однако, если я изменю 300 на 200, миграция создаст поле типа varchar(200).

Есть ли способ заставить symfony / доктрину создать это поле как varchar(300)?

1 Ответ

1 голос
/ 19 октября 2011

Не без редактирования кода доктрины.

Doctrine_Connection_Mysql говорит, что максимальная длина полей varchar составляет 255 символов.Это верно для mysql до 5.0.3, и доктрина использует это значение в целях совместимости.

...