2012-03-23 41 views
0

我們對一個新項目使用Doctrine 2並遇到了一個問題:Doctrine 2在Postgres表列名稱上扼流,並在其中包含空格。例如,假設有一個名爲「Sales Person」的列。雖然你和我知道列名中不應該有空格,但它的存在方式是一樣的。這些數據庫是很多年前設計的,關鍵的業務系統運行在這些數據庫上,所以列名不能更改。有沒有解決這個問題的方法,而不違反教條來處理這種情況?如果不是的話,你會如何提出解決這個問題的教條?Docgine 2在Postgres表列上窒息

回答

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語句「和」標識符引用不應該用於啓用諸如短劃線之類的非標準字符「,並且」當引用用於區分大小寫的原因時,「架構工具可能會遇到麻煩。

看起來這是另一個ORM,它是由不希望它與實際數據庫一起工作的人構建的。在這些列中包含空格等並不是一個好主意,但它在SQL中完全合法。

你只有真正有三種選擇:

  1. 重命名所有列(或意見包裹一切)。
  2. 黑客主義
  3. 自卸學說他們的

沒有理想,我不知道發生了什麼,以你的情況最容易的。

+0

偉大的鏈接!這個項目中有幾個人試圖實施黑客攻擊,但這很麻煩。必須使用這個功能令人沮喪,但它甚至不能與我們的數據庫正常工作。 – 2012-03-23 18:13:55

+0

根據這些問題的廣泛程度,可能會使用視圖。但我懷疑你已經考慮過了。 – Cerad 2012-03-24 14:52:28