Ruby on rails 如何让我的独立ActiveRecord::Base工具连接到生产数据库?
这是我创建的一个脚本,用于将用户添加到生产数据库中Ruby on rails 如何让我的独立ActiveRecord::Base工具连接到生产数据库?,ruby-on-rails,postgresql,activerecord,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: requi
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')
生产数据库的My database.yml文件条目如下所示
production:
db_host: host.company.com
db_name: production
db_pass: password
db_user: user
我试过这里找到的其他组合,但没有用。我正在运行rails 2.3.8。和ruby 2.0。非常感谢您的帮助。我将创建一个特殊的rake任务
manual
,任务的名称是create\u 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
ENV=生产rake手册:创建用户
如果没有帮助,请继续对答案进行评论:)我将创建一个特殊的rake任务
manual
,任务的名称是create\u 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
ENV=生产rake手册:创建用户
如果没有帮助,请继续评论答案:)您的
数据库.yml
文件是什么样子的?您的第一次尝试假定生产
数据库的条目有效。您随后的尝试无法正确命名数据库Postgresql
需要一个数据库名(而不是在SQLite中使用的文件路径名)。您在尝试4中传递了YAML配置文件,这是不正确的。如果存在与数据库关联的凭据,则还需要包含用户名和密码。尝试4在:database
之后也丢失了=>
。嘿,潜伏者,谢谢你的回复,我已经包含了我的yaml文件并尝试了一些其他尝试。最近的一次尝试是第5次尝试,但仍然不起作用。我一直得到一个错误,即存在未初始化的常量Rails(NameError)。你有没有其他的想法或者资源可以分享?你说这是我写的剧本。。。什么样的剧本?这是一个Rake任务吗?一个独立的Ruby脚本?如果你想在你的数据库上操作,你应该把它变成一个Rake任务,并包括Rails环境。我在lib目录中创建了一个名为account_creation.rb的文件,它通过简单地执行ruby account_creation.rb来运行,或者它应该是这样的。我要试试耙子任务。嘿,潜伏者,耙子任务是我问题的答案。一旦我创建了任务,我所需要做的就是RAILS_ENV=production,它就工作了。谢谢你的帮助。你的数据库.yml
文件是什么样子的?您的第一次尝试假定生产
数据库的条目有效。您随后的尝试无法正确命名数据库Postgresql
需要一个数据库名(而不是在SQLite中使用的文件路径名)。您在尝试4中传递了YAML配置文件,这是不正确的。如果存在与数据库关联的凭据,则还需要包含用户名和密码。尝试4在:database
之后也丢失了=>
。嘿,潜伏者,谢谢你的回复,我已经包含了我的yaml文件并尝试了一些其他尝试。最近的一次尝试是第5次尝试,但仍然不起作用。我一直得到一个错误,即存在未初始化的常量Rails(NameError)。你有没有其他的想法或者资源可以分享?你说这是我写的剧本。。。什么样的剧本?这是一个Rake任务吗?一个独立的Ruby脚本?如果你想在你的数据库上操作,你应该把它变成一个Rake任务,并包括Rails环境。我在lib目录中创建了一个名为account_creation.rb的文件,它通过简单地执行ruby account_creation.rb来运行,或者它应该是这样的。我要试试耙子任务。嘿,潜伏者,耙子任务是我问题的答案。一旦我创建了任务,我所需要做的就是RAILS_ENV=production,它就工作了。谢谢你的帮助。嘿,raviolicode,谢谢你的回复,我不认为这是我想要的。我不想在seeds.rb中添加数据。基本上,我的公司已暂停帐户创建,因此用户暂时必须通过电子邮件向管理员发送帐户凭据,因此我基本上是为他们创建帐户。我在lib目录下创建了一个名为account_creation的文件,然后我简单地用ruby account_creation.rb调用它。它应该可以工作,但也许rake任务可以工作。是的,种子任务对你来说似乎不是一个好的选择。为这个专门写你自己的任务怎么样?这样,您就可以直接使用Rails环境了。我不想在seeds.rb中添加数据。基本上,我的公司已暂停帐户创建,因此用户暂时必须通过电子邮件向管理员发送帐户凭据,因此我基本上是为他们创建帐户。我在lib目录下创建了一个名为account_creation的文件,然后我简单地用ruby account_creation.rb调用它。它应该可以工作,但也许rake任务可以工作。是的,种子任务对你来说似乎不是一个好的选择。为这个专门写你自己的任务怎么样?这样,就可以直接使用Rails环境。