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

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

heroku restart --app=app_name 

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

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

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

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

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

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

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