2012-03-28 129 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迁移以更新数据库模式。

在导入或导出数据库之前是否运行迁移由您决定,并取决于您是否需要应用迁移。