【问题标题】:Elastic Beanstalk: how to roll back the RDS schema to a known good state?Elastic Beanstalk:如何将 RDS 模式回滚到已知的良好状态?
【发布时间】:2014-11-12 11:58:45
【问题描述】:

我对如何实现一个基于 Elastic Beanstalk 的系统感到有些困惑,该系统允许我在部署错误的情况下将我的服务器代码和 RDS 架构回滚到已知的良好状态。

我有一个应用程序在每次部署时处理前向/向上模式迁移(使用.ebextensions/)。但是,请考虑以下情况:

  1. Elastic Beanstalk 正在运行我的应用程序和数据库架构的版本 1。
  2. 我推送了我的应用程序的第 2 版,它将 RDS 架构迁移到第 2 版。
  3. 我重新部署了我的应用程序的版本 1,但是,RDS 架构仍然是版本 2

我认为我不能在第 3 步回滚迁移,因为从第 2 版开始的向后/向下迁移此时不存在。

那么,解决这个问题的最佳方法是什么?我是否应该使用 capistrano 之类的东西来代替 Elastic Beanstalk 部署来获得对流程的更多控制?

【问题讨论】:

    标签: database amazon-web-services capistrano amazon-elastic-beanstalk database-migration


    【解决方案1】:

    正如您所推测的那样,在 ElasticBeanstalk 中并没有很好的集成机制来回滚架构更改。如果部署失败,最好的情况是模式更改数据库事务将自动回滚。在这种情况下,您只需修复出错的迁移并将其重新推送到 EB。

    如果您不那么幸运(例如,运行多次迁移,但中途失败),并且您必须手动迁移您的架构,您可以:

    • 让您的本地应用程序使用 RDS 数据库(假设您已将防火墙配置为允许),然后运行迁移。

    (或)

    • SSH 进入您环境的一个 EC2 实例并从那里运行迁移。

    我很想知道是否有更好的自动方法。但是,当迁移失败(并且您需要回滚它们)时,您通常不得不手动修复它们。

    【讨论】:

      猜你喜欢
      • 2017-06-30
      • 1970-01-01
      • 2021-03-31
      • 2014-07-21
      • 2018-08-19
      • 2016-08-24
      • 2018-02-23
      • 2015-07-04
      • 2017-09-25
      相关资源
      最近更新 更多