Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何使两个弹性Beanstalk环境共享一个数据库实例_Ruby On Rails_Amazon Web Services_Amazon Elastic Beanstalk - Fatal编程技术网

Ruby on rails 如何使两个弹性Beanstalk环境共享一个数据库实例

Ruby on rails 如何使两个弹性Beanstalk环境共享一个数据库实例,ruby-on-rails,amazon-web-services,amazon-elastic-beanstalk,Ruby On Rails,Amazon Web Services,Amazon Elastic Beanstalk,我有一个rails elastic beanstalk应用程序,它有两个环境:暂存环境和生产环境。使用eb init创建应用程序和登台环境时,我创建了一个数据库实例。我使用eb控制台创建了生产环境,并创建了一个新的数据库实例,我认为这显然是一个错误的举动 如何使两个环境共享同一个数据库实例?如果发生这种情况,那么在我的应用程序中更新数据库迁移并部署到暂存时如何;这意味着我的用户会看到它,因为登台环境使用的是同一个数据库 我如何处理这个问题 我还注意到,git aws.push不会覆盖我的数据库,

我有一个rails elastic beanstalk应用程序,它有两个环境:暂存环境和生产环境。使用
eb init
创建应用程序和登台环境时,我创建了一个数据库实例。我使用eb控制台创建了生产环境,并创建了一个新的数据库实例,我认为这显然是一个错误的举动

如何使两个环境共享同一个数据库实例?如果发生这种情况,那么在我的应用程序中更新数据库迁移并部署到暂存时如何;这意味着我的用户会看到它,因为登台环境使用的是同一个数据库

我如何处理这个问题


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

我向您推荐以下选项:在elastic beanstalk环境之外创建rds实例。为生产和暂存创建单独的架构。将连接字符串传递到EBS应用程序。EBS环境之间的共享rds实例将有助于您:

  • 降低您的环境成本,因为运行多个rds实例的成本很高

  • 帮助您隔离生产和暂存环境


  • 如果我想同意您的意见,我如何将我的数据库从localhost独立推送到新的RDS实例?记住它的rails和一个
    git aws.push执行部署,但不再使用您的解决方案。那么如何添加呢?您可以使用配置文件向应用程序文件夹中添加.ebextentions,这些配置文件将包含配置设置,如数据库的连接字符串和运行迁移的脚本。我建议读一读这篇文章:我将尝试再次解释我的想法,步骤如下:1。您可以为生产和登台手动创建rds实例和模式。2.您可以将elastic beanstalk配置文件添加到您的应用程序中,您可以在其中为与登台或生产相关的当前数据库定义连接字符串,也可以在此处定义用于运行迁移的命令。3.要执行git aws.push:)