Symfony doctrine :: build任务无法创建表命名顺序

时间:2011-04-25 15:13:45

标签: mysql symfony1 doctrine

我有一个名为order的表的数据库。 当我运行php symfony doctrine:build --all时,我收到了以下错误:

  

SQLSTATE [42000]:语法错误或   访问冲突:1064你有一个   SQL语法错误;检查   与您的MySQL对应的手册   用于正确语法的服务器版本   在'order附近使用(id BIGINT   AUTO_INCREMENT,status VARCHAR(255),   colissimonumber VARCHAR(第1行25'。   失败的查询:“CREATE TABLE order(id   BIGINT AUTO_INCREMENT,状态   VARCHAR(255),colissimonumber   VARCHAR(255)NOT NULL,created_at   DATETIME NOT NULL,updated_at DATETIME   NOT NULL,PRIMARY KEY(id))ENGINE =   的MyISAM”。

问题很清楚,订单没有反引号(如果我在phpmyadmin中手动运行带有反引号的查询,它可以工作)

我如何告诉学说在表和字段名称周围添加反引号?任何解决方法都会重命名我的表格吗?

我使用doctrine 1.2运行symfony 1.4.9

2 个答案:

答案 0 :(得分:4)

您可以在Doctrine_Core::ATTR_QUOTE_IDENTIFIER上的学说配置中打开projectConfiguration,这将引用表和列名,但不推荐使用:

  

只是因为你可以使用分隔符   标识符,并不代表你   应该使用它们。一般来说,他们结束了   导致比他们更多的问题   解决。无论如何,它可能是必要的   当你有一个保留字作为   字段名称(在这种情况下,我们建议   如果可以的话,你可以改变它。

http://www.doctrine-project.org/projects/orm/1.2/docs/manual/configuration/en#identifier-quoting

答案 1 :(得分:3)

您可能希望将模型命名为Order,但这并不意味着必须将相应的RDBMS表命名为相同。

Order:
  tableName: project_order
  columns: ...