2013-05-03 75 views
7

我有一个具有两种环境,分段和生产的rails弹性beanstalk应用程序。当我用eb init创建应用程序和分段环境时,我创建了一个数据库实例。我使用eb控制台创建生产环境,并创建了一个我认为显然是错误的举动的新数据库实例。如何使两个Elastic Beanstalk环境共享一个数据库实例

如何让我的两个环境共享相同的数据库实例?如果发生这种情况,当我更新应用程序中的数据库迁移并将其部署到分段时,该怎么办?这意味着我的用户会看到它,因为分段环境使用相同的数据库。

如何处理此问题?

我也注意到git aws.push不会覆盖我的数据库,但它不会删除回滚迁移。我错过了什么吗?

回答

4

我会向您推荐以下选项:在弹性beanstalk环境之外创建rds实例。为生产和分期创建单独的模式。将连接字符串传递给您的EBS应用程序。共享RDS EBS环境之间的情况下,将有助于你:

  1. 环境的降低成本,因为有几个RDS实例上运行的是昂贵的。

  2. 帮助您隔离生产和临时环境。

+0

如果我想同意你的看法,我该如何将本地数据库从localhost独立推送到新的RDS实例?记住它的导轨和git aws.push进行部署,但不再使用您的解决方案。又怎样? – Femi 2013-05-10 10:05:07

+1

您可以添加到您的应用程序文件夹.ebextentions与配置文件,其中将包含配置设置,如连接字符串数据库和脚本运行迁移。我会建议阅读文章:http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create_deploy_Ruby_custom_container.html – 2013-05-11 05:10:55

+1

我会尝试解释我的想法多一次是步骤:1.您可以手动创建RDS实例和生产和分期模式。 2.你可以在应用程序中添加弹性beanstalk配置文件,在这里你可以为当前数据库定义与分段或生产相关的连接字符串,也可以在这里定义运行迁移的命令。 3.做git aws.push :) – 2013-05-11 05:15:54

相关问题