-1

当我php app/console doctrine:schema:update --force在 symfony 项目中运行时出现错误,我收到以下错误:

[Doctrine\DBAL\DBALException]                                                                                                                                                   
An exception occurred while executing 'DROP INDEX idx-id ON extra':                                                                                             

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '-id ON extra' at line 1

[Doctrine\DBAL\Driver\Mysqli\MysqliException]                                                                                                                                   
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '-id ON extra' at line 1 

这是生成的 sql,它给出了错误:

DROP INDEX idx-id ON extra

错误是索引名称没有用“`”包裹,我怎样才能得到它,所以索引名称总是用“`”包裹?

4

1 回答 1

1

这是一个设计决定

由于所有受支持的供应商之间的兼容性原因和边缘情况问题,Doctrine 2 不进行自动标识符引用。当试图让遗留数据库与 Doctrine 2 一起工作时,这可能会导致问题。

假设您现在让 Doctrine 命名您的索引,我的建议是手动重命名(或删除)索引,然后运行模式更新。

于 2013-08-30T14:51:53.953 回答