每次迁移后你需要重启Heroku吗?

时间:2014-05-23 19:12:01

标签: ruby-on-rails heroku migration

最近我遇到了一个问题,我的数据库方案改变并没有反映在Heroku PG上。我仔细检查看到迁移和种子都成功了。甚至更奇怪的是db方案更改在暂存heroku部署(在完全相同的迁移/种子之后)上工作正常。经过一番搜索后,我了解到你应该在迁移后重启heroku:

heroku restart --app=app_name

我从来没有这样做过(我不是一个老手,但我之前已经进行了大量的迁移,并且从来没有因为这个特殊原因而重启heroku)。

每次迁移后我是否真的需要重新启动heroku?或者这更像是一个案例的事情?

4 个答案:

答案 0 :(得分:14)

如果您通过迁移对数据库进行更改,则需要在Heroku上重新启动应用程序。当Rails在生产模式下启动时,它会缓存数据库模式。迁移在一个正在运行的Web进程不知道的关闭进程中运行。因此,要获取所需的更改,您至少需要重新启动Web进程。如果您的应用程序在部署并且运行迁移时处于空闲状态,则会在应用程序启动时选择新架构。

答案 1 :(得分:2)

您需要让您的应用程序获取新的迁移。重新启动应用程序就可以了。或者您可以清除架构缓存:

heroku run rake db:schema:cache:clear --app=app_name

答案 2 :(得分:0)

这取决于我猜。一般来说,答案是 NO 。如果您在每次迁移后在本地重新启动应用程序,那么它是必需的,我不认为这是必需的。

答案 3 :(得分:-1)

这不是必需的,因为在迁移中我们只对数据库进行了更改。