【问题标题】:How do I copy a Postgres database from one Elastic Beanstalk environment to another? I'm using Rails 5如何将 Postgres 数据库从一个 Elastic Beanstalk 环境复制到另一个环境?我正在使用 Rails 5
【发布时间】:2018-01-25 18:33:06
【问题描述】:

我有一对 Elastic Beanstalk 环境,称为“开发”和“生产”。我想将数据从“生产”环境复制到“开发”环境,以便有合理的数据进行测试和使用。

每个环境都在运行一个 Rails 5 项目(具有几乎相同的代码库)并有一个“关联”的 RDS 实例。

我已尝试查看 AWS 控制台,但只能找到从同一数据库上的快照恢复的选项。 (我很容易遗漏一些东西,控制台很复杂。)

我还尝试在 Web 服务器实例上更新 Postgres 工具(至 9.6),以便可以使用 pg_dump 和 pg_restore。但是,操作失败,因为有两个当前连接(在这种情况下我尝试了rake db:drop,但我认为使用 psql 的更直接的方法会产生同样的问题)。

是否有其他方法可以复制数据库,或者我可以安全地终止连接以执行恢复?如果有,怎么做?

【问题讨论】:

    标签: ruby-on-rails postgresql amazon-web-services amazon-elastic-beanstalk amazon-rds


    【解决方案1】:

    我只能找到从同一快照中恢复的选项 数据库

    您误解了 RDS 中恢复的工作方式。当您恢复快照时,它始终会从快照创建一个全新的 RDS 实例。要执行您要求的操作,您将首先创建要复制的数据库的 RDS 快照,然后还原该快照,这将创建一个新的 RDS 实例。然后将您的 EB 环境指向新的 RDS 实例。最后删除不再使用的旧 RDS 实例。

    【讨论】:

    • 很好的解释!谢谢你。 :) 我认为是“恢复到某个时间点”菜单项让我认为数据库实例将就地“恢复”。我现在可以看到该选项创建了一个新实例。这看起来很有希望......不过,我可能需要做更多的配置,因为目前 RDS 实例是通过 EB 控制台设置的,因此是自动配置的。我猜想通过这个过程需要设置额外的用户权限、环境变量等。
    猜你喜欢
    • 1970-01-01
    • 2018-05-30
    • 1970-01-01
    • 2013-04-28
    • 2023-02-08
    • 2021-07-05
    • 2022-06-14
    • 1970-01-01
    • 2018-05-02
    相关资源
    最近更新 更多