【问题标题】:How to use ActiveRecord for Multiple Environment outside Rails?如何在 Rails 之外的多个环境中使用 ActiveRecord?
【发布时间】:2016-05-26 10:36:06
【问题描述】:

我已经为单一环境创建了一个没有导轨的数据库连接,它工作正常。但想为多个环境(例如开发、生产、测试​​等)创建数据库配置

单一环境数据库连接代码(工作正常):

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)

建议接受...

【问题讨论】:

  • 您是在任何其他框架内工作,还是这一切都是定制的? (无论如何,该技术将几乎相同;我只是想知道是否已经预先定义了任何东西。)
  • 没有框架只有 ruby​​

标签: ruby activerecord


【解决方案1】:

rails 的作用可能看起来很神奇,但实际上非常简单(至少在这种情况下)。这是大纲:

在启动时,应用会加载所有可用的数据库配置。按照惯例,它们以 YAML 格式存储在 config/database.yml 中。

然后,确定当前环境。最简单的方法是环境变量。例如:

 MY_ENV=production ruby my_script.rb

然后,在脚本中,您获取当前环境,选择相应的连接配置并使用它进行连接。

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])

【讨论】:

  • 供参考:connection_configs = YAML.load(File.read('config/database.yml'))
  • @GaganGami:最好在答案中。谢谢你写出来?
猜你喜欢
  • 1970-01-01
  • 2010-12-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-05-07
  • 2018-04-26
  • 1970-01-01
相关资源
最近更新 更多