在heroku中使用Taps导入或导出数据库时,是否需要执行heroku run rake db:migrate命令?heroku push和heroku migrate之间有什么区别?有人能用这个清楚我吗?,谢谢。 。
答案 0 :(得分:1)
关于此的heroku文档非常好https://devcenter.heroku.com/articles/taps
但我可以看到,您是否需要运行迁移并不完全清楚。 你本质上是把你的本地数据库作为一个完整的替代品推出它,它会创建表并填充它们,所以不需要运行针对heroku的迁移。
我正在帮助某人在主要演示之前启动他们的应用程序分钟,我们遇到了在heroku上运行迁移失败的问题(他的代码/依赖关系),所以恢复到db:push允许我们获取db结构和演示中的本地数据。
试一试
答案 1 :(得分:0)
push
是一个Git命令。每个Heroku应用程序都是一个Git存储库,从本地存储库推送到它会触发部署。
db:migrate
是一项Rake任务。 Rails使用Rake来简化管理Rails应用程序的常见任务。这与Git无关或推向Heroku。当您运行heroku run [something]
时,您的Heroku应用程序会生成一次性过程以运行指定的命令。在这种情况下,它是耙子。 db:migrate
是运行Rails迁移以更新数据库架构的Rake任务。
在导入或导出数据库之前是否运行迁移取决于您是否需要应用迁移。