每次迁移后你需要重启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
这取决于我猜。 一般来说,答案是否定的 。 如果您在每次迁移后在本地重新启动应用程序,那么它是必需的,否则我认为不需要。
这不是必需的,因为在迁移中我们只对数据库进行了更改。
- 缺少必需的参数:ras测试中的aws_access_key_id,aws_secret_access_key
- Ruby 2.2在Heroku上有内存问题吗?
- Heroku * .js不是预编译错误
- Rails&Heroku:我们很抱歉,但出了点问题
- Rails 4 – 如何在开发中使用sqlite3和使用Heroku生成PostgreSQL
- Hartl的导轨教程在当地完成了作品。 Heroku坚持“我们很抱歉,但出了点问题。”
- 一个Heroku dyno上有多少个Rails应用程序?
- Heroku worker dyno上的进程之间的TCP套接字通信
- 带有@global gem的Ruby / RVM – bundle运行失败并带有`require’:无法加载这样的文件 – bundler(LoadError)