Php 如何使用推进迁移和Symfony修改表的列
我在一个symfony项目中遇到了一个关于推进迁移的大问题。我第一次尝试更改表的一列,但在CLI上总是出现以下错误:Php 如何使用推进迁移和Symfony修改表的列,php,mysql,symfony1,migration,propel,Php,Mysql,Symfony1,Migration,Propel,我在一个symfony项目中遇到了一个关于推进迁移的大问题。我第一次尝试更改表的一列,但在CLI上总是出现以下错误: $ php symfony propel:up >> propel Executing migration PropelMigration_1340354091 up >> Failed to execute SQL "ALTER TABLE `AEX_PROJECT` MODIFY `DESCRIPTION` VARCHAR(200)". Abor
$ php symfony propel:up
>> propel Executing migration PropelMigration_1340354091 up
>> Failed to execute SQL "ALTER TABLE `AEX_PROJECT` MODIFY `DESCRIPTION` VARCHAR(200)". Aborting migration. ...
我的getUpSql()方法如下所示:
public function getUpSQL()
{
return array (
'propel' => '
# This is a fix for InnoDB in MySQL >= 4.1.x
# It "suspends judgement" for fkey relationships until all tables are set.
SET FOREIGN_KEY_CHECKS = 0;
ALTER TABLE `AEX_PROJECT` MODIFY `DESCRIPTION` VARCHAR(2000);
# This restores the fkey checks, after having unset them earlier
SET FOREIGN_KEY_CHECKS = 1;
',
);
}
我的点子快用完了。我还试着改变列或更改。我还尝试了不同类型的逗号(例如“或”或“无逗号”),如果我通过PhpMyAdmin运行迁移,而不是通过推进迁移,那么它是有效的
我想知道Propel中是否存在与此相关的已知错误。我是否可以以某种方式解决此问题?我认为这是一个非常基本的错误,您正在传递varchar(2000),这肯定是不可接受的:) 使用varchar(255)或使用text,检查文档中的文本