2017-10-12 25 views
0

我覺得這是一個超級簡單的問題,但我環顧四周,找不到答案。 我有一個我非常喜歡的跑軌應用程序。它有3或4個模型,我不想擦除或替換數據。非常簡單的導軌遷移概念

在構建應用程序,當我添加了新功能,我只想做一個:

git push heroku 
heroku pg:reset DATABASE 
heroku run rails db:migrate 
heroku run rails db:seed 

顯然我不想這樣做,因爲它會抹去我的數據。

我確實有一個新的表格/模型現在我想添加。它不會與其他模型進行交互。

請問我只是做:

git push heroku 
heroku run rails db:migrate 

我的其餘數據是好的?

回答

2

第一件事:如果您有重要數據,一如既往,在部署之前進行備份。確保這些備份存儲在服務器的某個地方,以防您真的弄髒東西並將機器完全垃圾丟失。確保這些備份工作幷包含您所期望的所有數據。準備最糟糕的結果:您部署的每個系統都要爆炸。

現在,假設你正在做正確的事情,這意味着一旦應用遷移不再使你的源代碼給他們的任何變化,那麼你應該能夠乾淨的應用遷移與db:migrate

你會想要測試,這預先工作。如果您已經對生產模式進行了備份,則應該首先進行測試,以便在部署時沒有難以預料的驚喜。如果一切都檢查出來,你可以去住。

pg:reset決不能在生產系統上使用。它可以並且會垃圾你的所有數據。這對您的開發系統來說只是一個清理測試數據和重建乾淨的數據庫的快速方法。