簡體   English   中英

在 GIT 中處理 Rails db/schema.rb 文件的正確方法是什么?

[英]What is the right approach to deal with Rails db/schema.rb file in GIT?

我們應該在提交給 GIT 時包含schema.rb嗎? 還是我們應該忽略它? 什么是正確的方法?

那么 Rails 2 的標准schema.rb文件在文件頂部的注釋塊的末尾有這個:

# It's strongly recommended to check this file into your version control system.

我所討論的 Rails 3 schema.rb也說了同樣的話。 我認為評論說明了一切。


針對評論進行更新:是的,可能會犯錯誤,並且您可能會在修改schema.rb遇到沖突的更改和錯誤,但這就是您希望將其置於修訂控制之下的原因,修訂控制允許您跟蹤所有內容並在需要時進行備份。 在您的整個源代碼樹中,只有一件事指定了您的數據庫架構,那就是schema.rb 您的數據庫架構絕對是一個關鍵工件,任何重要的東西都需要在修訂控制中進行跟蹤。

schema.rb任何更新/合並問題都應該通過整理沖突的遷移來解決,這樣schema.rb將作為解決實際問題的副作用得到修復。

是的, schema.rb是生成的文件,但它僅在文本編輯器生成pancake.rb模型文件或生成未經編輯的腳手架文件的意義上生成。

是的,您可以通過構建新數據庫然后運行所有遷移來重建您的schema.rb文件。 但是,您應該不時清除舊的遷移,以避免每次rake db:migrate都必須檢查數百個遷移文件,因此“重建並運行所有遷移”在高度活躍的項目中通常不是一個選項。

是的。 模式文件用於在使用 rake db:reset 和其他命令時配置數據庫。 遷移僅應在更改數據庫架構時使用,並且將始終產生新的架構文件。

嗯,默認情況下它不包含在 .gitignore 中。 所以,我認為包括它在內你不會有問題(我在我的項目中這樣做,沒有任何問題)。

我不將此文件提交給 Git,因為它在我啟動rake db:migrate時創建。

如果我將此文件提交到 Git,則無法在每次db:migrate后從服務器中提取新更改。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM