Rails的/红宝石/ Postgres的 - LoadError无法加载这样的文件 - pg_

2019-09-20 10:35发布

我想打电话给Ruby脚本使用下面的轨道控制器(它连接到一个Postgres数据库),但它似乎它在加载的PG宝石文件中的一个问题。 我已经把我的要求声明,要求“PG”,并试图绝对路径,以及(需要/usr/local/rvm/gems/ruby-1.9.3-p194@railsTest/gems/pg-0.14.0/lib/pg/ )。 文件“pg_ext”其实出现在目录中。 另外,我可以运行没有任何问题(dbrubyscript.rb),然而,当轨道被添加到这个方程式是胡扯出来用的Ruby脚本单机cannot load such file -- pg_ext错误。

这里的任何方向将不胜感激,因为我一直没能在网上找到任何解决这个问题

Rails的控制器:

class TestdlController < ApplicationController
def runmyscript
  load "/usr/local/rvm/my_app/ruby_scripts/reports/dbrubyscript.rb"
  send_file '/usr/local/rvm/tmp/failedtests.csv', :type => 'text/csv', :disposition => 'inline'
  flash[:notice] = "Reports are being processed..."
end
end

.RB文件(dbrubyscript.rb)有以下几点:

require 'rubygems'
require 'pg'

connects to (production) database
@conn = PGconn.connect("zzzzz.test.prod", 5432,"","","yyyyy_prod" ,"postgres", "xxxxxx")
.....

跟踪错误:LoadError在TestdlController#runmyscript

无法加载这样的文件 - pg_ext

Rails.root:在/ usr /本地/ RVM / my_app应用应用程序跟踪| 框架跟踪| 完整跟踪应用程序/控制器/ Testdl_controller.rb:3:`runmyscript”

同时加载下列文件时发生此错误:
/usr/local/rvm/my_app/ruby_scripts/reports/dbrubyscript.rb
/usr/local/rvm/gems/ruby-1.9.3-p194@railsTest/gems/pg-0.14.0/lib/pg/
pg_ext

Answer 1:

尝试运行红宝石/usr/local/rvm/gems/ruby-1.9.3-p194@railsTest/gems/pg-0.14.0/lib/pg/ext/extconf.rb,看看你会得到什么错误。 这帮助我确定在我的情况,我的PostgreSQL客户端太旧。 因为你似乎有电流ISH versioninstalled你的错误可能会有所不同。



Answer 2:

我有同样的问题。 我有一个独立的Ruby脚本。 它通过连接pgpostgres ,如果我直接从跑它的工作shell

如果我试图通过rspec的运行它,我得到的错误cannot load such file -- pg

解决 :对于rspec的问题是,在pg宝石未在规定Gemfile 。 放皮克进入后Gemfile ,并通过retestet RSpec的,它的工作。



Answer 3:

尝试添加一行到你的Gemfile:

gem "pg"

然后运行通过命令行捆扎机:

bundle install

Rails使用捆扎机来管理你的宝石和依赖性。 你可以阅读更多的背后捆扎机的想法在这里: http://gembundler.com/v1.2/rationale.html



文章来源: Rails/Ruby/Postgres - LoadError cannot load such file — pg_ext