tkl*_*tig 6 database-migration yii2
我使用以下代码来获取所需的属性值bodytext.数据类型应为longtext()或varchar().DBMS是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);
Run Code Online (Sandbox Code Playgroud)
rob*_*006 13
如果64 KB足够您,您可以使用text():
'bodytext' => $this->text()
Run Code Online (Sandbox Code Playgroud)
如果你真的需要一个longtext专栏,你应该使用类似的东西:
'bodytext' => $this->getDb()->getSchema()->createColumnSchemaBuilder('longtext');
Run Code Online (Sandbox Code Playgroud)
或者将type指定为原始字符串:
'bodytext' => 'LONGTEXT',
Run Code Online (Sandbox Code Playgroud)