jpa*_*dvo 1 migration postgresql ruby-on-rails
我有一个简单的rails支持的应用程序,每天从Heroku Ronin数据库运行2-3百万次网页浏览.但是,数据库上的负载非常轻,而且它可以处理的比我们投入的要多得多.
在不进入维护模式的情况下运行迁移以将表添加到此数据库是否安全?另外,运行迁移是否可以安全地将几列添加到核心表中,几乎所有的读写操作都是如此?
停机是不可接受的,即使是几分钟.
如果不建议实时运行迁移,我可能会做的是设置一个新数据库,对其进行迁移,编写脚本以同步两个数据库,然后将应用程序指向新数据库.
但如果可能的话,我宁愿避免这样做.:)
听起来您的迁移包括:
建议您通过以下方式衡量您的更改对Prod环境的影响:
在您预期运行时(02:00,对吧?),将上面的2点与典型的读写负载进行平衡.
通过禁用(以某种方式)对正在执行的表的写操作来考虑"软"停机时间.
总体而言(或者一般而言),可以在没有任何停机时间或性能影响的情况下,将n个表和新的可空列添加到现有表中.
始终衡量您的更改对Prod副本的影响.在对此副本应用更改时测量"响应性".当然这也意味着要部署Prod应用程序的另一个副本,但这样做是值得的.
| 归档时间: |
|
| 查看次数: |
749 次 |
| 最近记录: |