我们正在使用Doctrine 2来处理一个新项目,并遇到了一个问题:Doctrine 2在Postgres表列名称上占用了空格。例如,假设有一个名为“Sales Person”的列。虽然你和我知道列名中不应该有空格,但它的存在方式是一样的。数据库是多年前设计的,关键业务系统在它们上运行,因此无法更改列名。有没有办法解决这个问题,而不是黑客攻击Doctrine来处理这种情况?如果没有,你会如何建议在Doctrine结束时解决这个问题?
答案 0 :(得分:2)
看起来像另一个编码错误的ORM
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中完全合法。
你真的有三个选择:
它们都不理想,我不确定在你的情况下最简单的是什么。