ruby-on-rails - 如何让我的独立 ActiveRecord::Base 工具连接到我的生产数据库?

标签 ruby-on-rails postgresql activerecord

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

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 guide但无济于事。我正在运行 rails 2.3.8。和 ruby 2.0。非常感谢您的帮助。

最佳答案

我会创建一个特殊的 rake 任务。

  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 任务。

不确定这是否是您正在寻找的东西,但也许这是您想要实现的目标的更快替代方案。

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

关于ruby-on-rails - 如何让我的独立 ActiveRecord::Base 工具连接到我的生产数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31600350/

相关文章:

sql - 如果值与之前的行匹配,PostgreSQL 会减少行

ruby-on-rails - 在生成模型时指定限制的语法

sqlite - Sinatra + SQLite + ActiveRecord(不能保存字符串)

ruby - 如何拥有允许重复的有序模型关联

ruby-on-rails - 如何检查类或模块是否已命名空间?

ruby-on-rails - UserMailer :Class 的未定义方法 `with'

sql - 使用动态文件名将 sql 函数的输出保存到 csv 文件(COPY)

sql - 将带有时区的时间戳转换为星期几

ruby-on-rails - 尝试安装 rubber gem,Nokogiri 把它搞砸了?

ruby-on-rails - 代理选择 : mod_proxy_balancer, nginx + 代理平衡器,haproxy?