将heroku数据库从一个竹子应用程序转移到另一个雪松应用程序

时间:2012-08-08 02:01:57

标签: ruby database heroku bamboo cedar

是否有更快的方法将数据库在一个应用程序上传输到另一个应用程序,而不使用捕获和恢复过程,这在我的情况下需要3小时。

我们正在尝试迁移到Cedar应用程序,并且无法承受3小时的停机时间。

是否有可能: 1.在当前的prod app上创建一个关注者 2.容许赶上。 3.维护 4.取消关注我在步骤1中创建的当前prod应用程序的关注者 5.将该关注者推广到另一个应用程序。 6.维持关闭

与此链接类似:https://devcenter.heroku.com/articles/fast-database-changeovers 但试图将它推广到另一个应用程序。

有可能吗?

此致

1 个答案:

答案 0 :(得分:4)

如果您使用的是数据库的某个生产计划,那么您很幸运。你可以使用一个秘密旗帜。它不适用于开发计划,只适用于起重机及以上。如果您的Bamboo应用程序有一个起重机或更好的数据库,您可以通过抓取DATABASE_URL然后运行来创建它的分支:

heroku addons:add heroku-postgresql:crane --fork="<PASTE DATABASE_URL HERE>" --app your-cedar-app

或者,如果您愿意,可以使用与fast changeover类似的程序实现最短的停机时间:

heroku addons:add heroku-postgresql:crane --follow="<PASTE DATABASE_URL HERE>" --app your-cedar-app
heroku pg:wait --app your-cedar-app # let the new database boot
heroku pg:info --app your-cedar-app # Make sure it's caught up, Behind By should be =~ 0.
heroku maintenance:on --app your-cedar-app
heroku pg:unfollow HEROKU_POSTGRESQL_<color of new database> --app your-cedar-app
heroku pg:promote HEROKU_POSTGRESQL_<color of new database> --app your-cedar-app # make it the primary
heroku maintenance:off --app your-cedar-app