2013-02-06 93 views
1

我想在數據庫優先實現上使用Doctrine 2.3.2來設置一個項目。生成xml和映射後,然後調用orm:validate-schema,它顯示映射正確但數據庫驗證失敗。在使用模式工具來找出我的問題,我發現2個問題是重複一遍又一遍:爲什麼複合主鍵中的列順序與Doctrine有關?

  1. 改變我所有的VARCHAR處理的已經不是在255 VARCHAR(255)
  2. 放棄我主鍵與例如列(A,B,C),然後以不同順序創建具有相同列的新主鍵(B,A,C)

這兩件事情似乎沒有任何意義。爲什麼教義會迫使我以一種毫無意義的方式改變自己的模式?

解決這兩種不改變數據庫模式是:

  1. 轉換映射不會出現length屬性添加到id字段 - 它添加到XML
  2. 這似乎是由表中列的順序與主鍵中列的順序之間的差異引起的。重新排序xml條目的順序以匹配主鍵的順序。

有2#1我假設是一個錯誤 - 我將很快報告。然而,#2是一個錯誤還是以某種方式改變了教條邏輯的秩序?

+0

列的任何索引的順序** **事項。特別是在一個主鍵。表中列的順序無關緊要。 – zerkms

+0

但是,它涉及到像教條這樣的ORM?它在抓我,因爲列的順序與主鍵中的順序不匹配。如果我改變了 - 它會停止抱怨。 – McAden

+0

這是一個問題,而不是支持請求。請考慮在http://www.doctrine-project.org/jira/上打開一個可重現的例子。 – Ocramius

回答