Docgine 2在Postgres表列上窒息

时间:2012-03-23 15:28:59

标签: postgresql orm doctrine-orm

我们正在使用Doctrine 2来处理一个新项目,并遇到了一个问题:Doctrine 2在Postgres表列名称上占用了空格。例如,假设有一个名为“Sales Person”的列。虽然你和我知道列名中不应该有空格,但它的存在方式是一样的。数据库是多年前设计的,关键业务系统在它们上运行,因此无法更改列名。有没有办法解决这个问题,而不是黑客攻击Doctrine来处理这种情况?如果没有,你会如何建议在Doctrine结束时解决这个问题?

1 个答案:

答案 0 :(得分:2)

看起来像另一个编码错误的ORM

http://docs.doctrine-project.org/projects/doctrine-orm/en/2.0.x/reference/limitations-and-known-issues.html

http://docs.doctrine-project.org/projects/doctrine-orm/en/2.0.x/reference/basic-mapping.html

说有用的东西,例如:“你不能使用非[a-zA-Z0-9 _] +字符,它们会破坏几个SQL语句”和“标识符引用不应该用于启用非标准字符这样的作为一个短划线“和”Schema-Tool可能会因为区分大小写的原因而使用引用时遇到麻烦“。

看起来这是另一个ORM,它是由不希望它与实际数据库一起工作的人构建的。在其中包含空格等列并不是一个好主意,但它在SQL中完全合法。

你真的有三个选择:

  1. 重命名所有列(或将所有列包装在视图中)。
  2. Hack doctrine
  3. 转储原则
  4. 它们都不理想,我不确定在你的情况下最简单的是什么。