繁体   English   中英

如何获得独立的ActiveRecord :: Base工具连接到生产数据库?

[英]How can I get my stand alone ActiveRecord::Base tool to connect to my production database?

这是我创建的用于将用户添加到生产数据库中的脚本。

puts "Name of the user"
name = gets.chomp

puts "Login of the user"
login = gets.chomp

等等等等.....

我要做的是连接到生产数据库,这样我就可以轻松管理新用户,而不必多次键入很多字段。

在文件的顶部,我尝试了几种连接数据库的方法,但无济于事。

尝试1:

require 'config/environment.rb'

这将我连接到开发数据库

尝试2:

require 'active_record'
ActiveRecord::Base.establish_connection(:production)

`establish_connection': production database is not configured (ActiveRecord::AdapterNotSpecified)

尝试3:

require 'active_record'
ActiveRecord::Base.establish_connection(:adapter => 'postgresql', :host => 'company_host')

load_missing_constant': uninitialized constant Rails (NameError)

尝试4:

  require 'active_record'
ActiveRecord::Base.establish_connection(:adapter => 'postgresql', :host => 'company_host', :database => '/var/local/config/database.yml')

  load_missing_constant': uninitialized constant Rails (NameError)

尝试5:

ActiveRecord::Base.establish_connection(:adapter => 'postgresql', :host => 'host.company.com',
                                    :database => 'production', :user => 'user', :password => 'password')

我的生产数据库的database.yml文件条目如下所示。

production:
  db_host: host.company.com
  db_name: production
  db_pass: password
  db_user: user

我尝试了在此处找到的其他组合API指南,但无济于事。 我正在运行Rails 2.3.8。 和ruby 2.0。 帮助将不胜感激。

我将创建一个特殊的耙任务。

  1. 假设我想要一个单独的名称空间manual并且任务的名称为create_user

     namespace manual task :create_user => :environment do puts "Name of the user" name = gets.chomp puts "Login of the user" login = gets.chomp end 
  2. 运行ENV=production rake manual:create_user

如果有帮助,您甚至可以将参数传递给rake任务。

不确定这是否是您要寻找的东西,但是也许这会为您要实现的目标提供更快的选择。

如果这没有帮助,请继续对答案发表评论:)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM