2012-03-28 120 views
1

在heroku中使用Taps導入或導出數據庫時,是否需要執行heroku運行rake db:migrate命令?heroku push和heroku migrate有什麼區別?任何人都可以用這個清除我嗎,謝謝。 。 。導入和導出數據庫

回答

1

這個Heroku的文檔是相當不錯的https://devcenter.heroku.com/articles/taps

,但我可以看到,它不是完全清楚是否需要運行遷移。 你基本上把你的本地數據庫作爲一個完整的替代品推出來,它會創建表並填充它們,所以不需要對heroku運行遷移。

我正在幫助某人在主要演示前啓動應用程序分鐘,並且我們遇到了在heroku上運行遷移失敗(代碼/依賴關係)的問題,因此恢復爲db:push允許我們獲取db結構和本地數據及時提供給演示。

試一試

+0

注意這不適用於多模式數據庫。看來它只需要公衆。 – baash05 2012-06-04 01:22:45

0

push是一個Git命令。每個Heroku應用程序都是一個Git存儲庫,從本地存儲庫推送到它會觸發部署。

db:migrate是一個Rake任務。 Rails使用Rake來簡化管理Rails應用程序的常見任務。這與Git或推向Heroku無關。當您運行heroku run [something]時,您的Heroku應用程序會產生一次性進程來運行指定的命令。在這種情況下,它是Rake。 db:migrate是Rake任務,用於運行Rails遷移以更新數據庫模式。

在導入或導出數據庫之前是否運行遷移由您決定,並取決於您是否需要應用遷移。