首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rails -具有单个源和database.yml文件的多个开发实例

Rails -具有单个源和database.yml文件的多个开发实例
EN

Stack Overflow用户
提问于 2014-01-29 09:33:42
回答 2查看 692关注 0票数 3

我们能用一个multiple development instances单一的源和一个database.yml文件连接到database.yml吗?我的意思是,我需要有4个来自同一个源的开发实例,它连接了4个不同的MySQL数据库。我可以使用不同的PORT ID启动服务器吗?

示例:

代码语言:javascript
复制
development:
  adapter: mysql2
  database: TEST1_development
  host: localhost
  username: root
  password: password
  encoding: utf8
  pool: 30

development-2:
  adapter: mysql2
  database: TEST2_development
  host: localhost
  username: root
  password: password
  encoding: utf8
  pool: 30

development-3:
  adapter: mysql2
  database: TEST3_development
  host: localhost
  username: root
  password: password
  encoding: utf8
  pool: 30

development-4:
  adapter: mysql2
  database: TEST4_development
  host: localhost
  username: root
  password: password
  encoding: utf8
  pool: 30

那么,我们如何能够启动4个不同的服务器(在本地主机)连接这4个数据库?(我们通常将rails server用于开发中的单个实例。)

谢谢:)-

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-01-29 10:58:01

这太容易了。

只需按问题中提供的方式更新database.yml文件即可。假设我们的开发实例是developmentdevelopment-2development-3development-4

首先,您只需创建3份环境文件development.rb (可以在config/environments/中找到)并将其重命名为development-2.rbdevelopment-3.rbdevelopment-4.rb

然后,只需在启动服务器之前运行以下步骤即可。

代码语言:javascript
复制
RAILS_ENV=development rake db:create (OR just rake db:create as it defaults to development)
RAILS_ENV=development-2 rake db:create
RAILS_ENV=development-3 rake db:create
RAILS_ENV=development-4 rake db:create

RAILS_ENV=development rake db:schema:load (OR just rake db:schema:load as it defaults to development)
RAILS_ENV=development-2 rake db:schema:load
RAILS_ENV=development-3 rake db:schema:load
RAILS_ENV=development-4 rake db:schema:load

RAILS_ENV=development rake db:seed (OR just rake db:seed as it defaults to development)
RAILS_ENV=development-2 rake db:seed
RAILS_ENV=development-3 rake db:seed
RAILS_ENV=development-4 rake db:seed

然后,以不同的服务器pid启动所有实例,如下所示。

代码语言:javascript
复制
rails s -p 3000 -e development --pid tmp/pids/server.pid (OR rails s by default)
rails s -p 3002 -e development-2 --pid tmp/pids/server.2.pid
rails s -p 3003 -e development-3 --pid tmp/pids/server.3.pid
rails s -p 3004 -e development-4 --pid tmp/pids/server.4.pid

这将从同一个source和一个database.yml文件同时启动所有实例。谢谢大家的回复和帮助:)

票数 2
EN

Stack Overflow用户

发布于 2014-01-29 09:38:33

  • 您不限于默认的rails环境。您可以只使用development-2development-3环境。读取这篇文章发表在37 talks博客上,其中DHH谈到了这一点。
  • database.yml可以读取环境变量。 开发:适配器: postgresql主机:本地主机数据库:<%= ENV‘’POSTGRES_DATABASE‘%>用户名:<%= ENV’‘POSTGRES_USER’%>密码:<%= ENV‘’POSTGRES_密码‘%> 然后确保在启动服务器时设置了这些内容。
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21427008

复制
相关文章

相似问题

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