2012-07-23 169 views
0

我有關安裝驗船師的寶石,我也跟着上的指示,但是當我執行 此行安裝寶石成分:衝突型號名稱

script/rails generate surveyor:install 

我得到了這些衝突

conflict db/migrate/20120716110951_create_questions.rb 
Overwrite /home/saka/modares/db/migrate/20120716110951_create_questions.rb? (enter "h" for help) [Ynaqdh] h 

我知道問題是這些衝突模型名稱在寶石和現有的應用程序,因爲我已經有一個名爲問題的模型。

如何解決此衝突?

回答

2

此行爲是驗船師設計決定的結果。我們希望允許人們在每次升級測量員時運行rails generate surveyor:install,並獲得新的遷移和更改的文件。 generator finds migrations with the same class name, preserves the timestamp, and presents the conflict to the user if it is different。有一件事可能會影響您向前邁進的決定,即如果您確實保留現有的create_questions遷移,則每次升級驗船師時都必須應對此衝突。有幾個解決方案:

  1. 測量師可以改變支持命名空間的,可配置的,或以其他方式修改型號名稱。這肯定需要時間,目前沒有issues這個功能(但隨意添加一個)。

  2. 您可以重命名您的遷移並生成器將運行。刪除create_questionsadd_correct_answer_id_to_questions遷移,並刪除add_api_ids遷移中的問題。確保您的問題模型與維基中記錄的驗船師問題模型相匹配(我們無法保證圖表保持同步)。更確切地說,您可以創建一個空欄項目,添加驗船師,運行生成器和遷移,然後查看db/schema.rb。您必須保持問題模型與驗船師手動同步。

  3. 您可以重命名您的模型。如果它除了驗船師之外還有現有的功能,你可能還是想要去這條路線。

2

如何重命名您的問題模型?您基本上必須創建用於重命名的遷移(或者如果您還沒有生產數據,則不需要遷移即可更改初始遷移),並在您的應用程序中查找所有出現的問題/問題並相應地重命名它們。這是一個工作,但不是一個真正的問題。