Как установить тип данных как длинный текст в миграции Yii2 - PullRequest
0 голосов
/ 28 апреля 2018

Я использую следующий код для получения желаемых значений атрибута для bodytext. Тип данных должен быть longtext() или varchar(). СУБД MySQL.

Со следующим кодом bodytext будет создан как varchar(255). Почему?

$this->createTable('mail_eingang', [
    'id' => $this->primaryKey(),
    'mail_adresse_absender' => $this->string(255)->notNull(),
    'betreff' => $this->string(255),
    'bodytext' => $this->string(), //this will actually set bodytext to varchar(255). It should be longtext() or varchar() !!
    'gelesen' => $this->smallInteger(1)->notNull()->defaultValue(0),
    'angelegt_am' => $this->datetime(),
    'angelegt_von' => $this->integer(11),
    'aktualisiert_am' => $this->datetime(),
    'aktualisiert_von' => $this->integer(11),
    'FOREIGN KEY ([[angelegt_von]]) REFERENCES person ([[id]]) ON DELETE SET NULL ON UPDATE RESTRICT',
    'FOREIGN KEY ([[aktualisiert_von]]) REFERENCES person ([[id]]) ON DELETE SET NULL ON UPDATE RESTRICT',
], $tableOptions);

1 Ответ

0 голосов
/ 28 апреля 2018

Если вам достаточно 64 КБ, вы можете использовать text():

'bodytext' => $this->text()

Если вам действительно нужен столбец длинного текста, вы должны использовать что-то вроде:

'bodytext' => $this->getDb()->getSchema()->createColumnSchemaBuilder('longtext');

Или укажите тип в виде необработанной строки:

'bodytext' => 'LONGTEXT',
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...