我为单个环境创建了一个没有rails的数据库连接,它运行正常。但是想要为多种环境创建数据库配置(例如开发,生产,测试等)。
单一环境数据库连接代码(工作正常):
require 'mysql2'
require "active_record"
# Using ActiveRecord
ActiveRecord::Base.establish_connection(
:adapter=> 'mysql2',
:database=> 'dev_db',
:username=> 'root',
:password=>'root'
)
class Planning < ActiveRecord::Base
end
p Planning.find(1)
建议被接受......
答案 0 :(得分:5)
什么轨道可能看起来像魔术,但它实际上非常简单(好吧,这种情况至少)。这是大纲:
启动时,app会加载所有可用的数据库配置。按照惯例,它们以config/database.yml
中的YAML格式存储。
然后,确定当前环境。最简单的方法是环境变量。例如:
MY_ENV=production ruby my_script.rb
然后,在脚本中,您获取当前的env,选择相应的连接配置并使用它进行连接。
connection_configs = connection_configs = YAML.load(File.read('config/database.yml'))
current_env = ENV['MY_ENV'] || 'development' # if no value, assume development mode
ActiveRecord::Base.establish_connection(connection_configs[current_env])