首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >根据应用程序的启动方式设置数据库

根据应用程序的启动方式设置数据库
EN

Stack Overflow用户
提问于 2010-05-20 09:33:10
回答 1查看 100关注 0票数 1

我有两个Rails应用程序(让我们称它们为APP-1和APP-2),每个应用程序都依赖于第三个Rails应用程序(APP-3)。

我希望能够在CI服务器上并行运行APP-1和APP-2的测试。问题是,两者都需要启动APP-3并通过APP-3写入数据库。如果测试并行运行,则会导致冲突和失败。

我的解决方案是让APP-1和APP-2各自启动自己的APP-3实例,并让每个实例指向不同的DB。有没有办法在APP-3的database.yml中动态设置数据库,使其根据启动的应用程序连接到不同的数据库?

仅供参考。APP-1和APP-2目前通过rake任务启动APP-3。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-05-20 14:08:22

为App-3制作两个database.yml文件。你可以叫他们database_A.yml和database_B.yml或者其他任何你想要的名字。

在App-3的environment.rb文件中,在初始化程序块的末尾添加以下内容。

代码语言:javascript
运行
复制
Rails::Initializer.run do |config|
  # ...

  # Decide what database_FOO.yml file you care about.
  #
  db_config_file_name = "database_A.yml"  # Put your logic here for choosing which yml file you want.

  db_config_file_path = File.join("config", db_config_file_name)
  config.database_configuration_file = db_config_file_path if File.exists? db_config_file_path
end

我从我的博客中摘录了这篇文章,在博客中我描述了当我用JRuby启动我的应用程序时,我是如何使用不同的database.yml文件的。概念是相似的,所以希望这对您有所帮助。http://www.workingasintended.com/2010/05/03/choosing-a-different-rails-databaseyml-file-for-jruby/

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2870516

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档