我在symfony项目中的推进迁移遇到了一个巨大的问题。我第一次尝试更改表的一列,但在 CLI 上总是出现以下错误:
$ 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) 或使用文本,检查文档中的文本