最近我遇到了一个问题,我的数据库方案改变并没有反映在Heroku PG上。我仔细检查看到迁移和种子都成功了。甚至更奇怪的是db方案更改在暂存heroku部署(在完全相同的迁移/种子之后)上工作正常。经过一番搜索后,我了解到你应该在迁移后重启heroku:
heroku restart --app=app_name
我从来没有这样做过(我不是一个老手,但我之前已经进行了大量的迁移,并且从来没有因为这个特殊原因而重启heroku)。
每次迁移后我是否真的需要重新启动heroku?或者这更像是一个案例的事情?
答案 0 :(得分:14)
如果您通过迁移对数据库进行更改,则需要在Heroku上重新启动应用程序。当Rails在生产模式下启动时,它会缓存数据库模式。迁移在一个正在运行的Web进程不知道的关闭进程中运行。因此,要获取所需的更改,您至少需要重新启动Web进程。如果您的应用程序在部署并且运行迁移时处于空闲状态,则会在应用程序启动时选择新架构。
答案 1 :(得分:2)
您需要让您的应用程序获取新的迁移。重新启动应用程序就可以了。或者您可以清除架构缓存:
heroku run rake db:schema:cache:clear --app=app_name
答案 2 :(得分:0)
这取决于我猜。一般来说,答案是 NO 。如果您在每次迁移后在本地重新启动应用程序,那么它是必需的,我不认为这是必需的。
答案 3 :(得分:-1)
这不是必需的,因为在迁移中我们只对数据库进行了更改。