我在 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;
',
);
}
我的想法不多了。我还尝试了 ALTER COLUMN 或 CHANGE。我还尝试了不同类型的逗号(例如 ' 或 " 或没有逗号)。如果我通过 PhpMyAdmin 而不是通过 Propel Migration 运行迁移,它可以工作。
我想知道 Propel 中是否存在与此相关的已知错误。我可以以某种方式解决这个问题吗?