2012-03-24 44 views
6

heroku run rake db:migrate正常工作,以改變生產數據庫的結構:如何用開發數據填充生產數據庫(heroku)? (Rails)的

Migrating to CreateUsers (20120318090252) 
Migrating to AddIndexToUsersEmail (20120319191315) 
Migrating to AddPasswordDigestToUsers (20120319194632) 
Migrating to AddRememberTokenToUsers (20120323142854) 

,我已經加入到我的地方發展數據庫中的數據沒有被上傳到Heroku的生產數據庫。

這是正常的,還是有辦法使兩個數據庫匹配?

在此先感謝。

+0

你的意思是說你在本地盒子上有你想要的數據嗎?它有多少數據?填寫查找表? – natedavisolds 2012-03-24 00:21:21

回答

6

遷移可以同時處理結構(模式)和數據,但一旦滾動,假設是在大多數情況下,您的生產數據是規範的信息來源。如果需要設置數據庫的數據,例如列表(「Mastercard,Visa,Amex)」或引導數據(例如設置管理員用戶)等,則可以在「種子.rb」文件中找到。它會複製數據庫(模式和內容)並自動應用它 - 這通常是一次性的事情。

(進入其他方向 - 將生產數據庫複製到QA或開發實例首先,你可能會認爲:Rails應該可以做到這一點,但是複製一個典型的生產數據庫可能會帶來很多問題,最重要的是:複製包含用戶信息的生產數據庫是一個重大的安全風險;任何複製操作至少應使用戶匿名;第二個問題是數據庫大小:生產數據庫對於複製實際性能問題或其他邊緣情況通常很有用,甚至是必要的,但是任何大型數據庫最終都需要很長時間進行復制,並且高度依賴於所使用的特定數據庫以及權限)

簡而言之,Rails在遷移方面做了正確的事情:假設結構更新正常,但需要您填充數據。希望這可以幫助!

8

這是正常的行爲。 rake db:migrate只會創建你的數據庫結構。如果您想複製您在Heroku開發中已有的數據,請使用heroku db:push命令,或者如果要用某些固定記錄初始化數據庫,則只需使用seeds.rb。

相關問題