Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何让我的独立ActiveRecord::Base工具连接到生产数据库?_Ruby On Rails_Postgresql_Activerecord - Fatal编程技术网

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

    不确定这是否是你想要的,但也许这是你想要实现的更快的选择


    如果没有帮助,请继续对答案进行评论:)

    我将创建一个特殊的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任务

    不确定这是否是你想要的,但也许这是你想要实现的更快的选择


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

    您的
    数据库.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环境。