Rails/Ruby/Postgres - LoadError无法加载此类文件-- pg_ext

xwmevbvl  于 2022-12-26  发布在  Ruby
关注(0)|答案(3)|浏览(134)

我正在尝试调用Ruby脚本(连接到postgres数据库),但是似乎在加载PG gem文件时出现问题。我已经将require语句设置为require 'pg',并尝试了绝对路径(需要/usr/local/rvm/gems/ruby-1.9.3-p194@railsTest/gems/pg-0.14.0/lib/pg/)。文件'pg_ext'实际上存在于目录中。另外,我可以独立运行ruby脚本,没有任何问题(dbrubyscript.rb),但是当将rails添加到这个等式中时,它会出现cannot load such file -- pg_ext错误。
任何方向在这里将不胜感激,因为我还没有能够找到任何在线修复这个问题

轨道控制器:

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")
.....

**跟踪错误:**TestdlController#runmyscript中的加载错误

无法装入这样的文件-- pg_ext
Rails根目录:/usr/local/rvm/my_app应用程序跟踪|框架跟踪|完整跟踪应用程序/控制器/Testdl_controller.rb:3:在'runmyscript'中
加载下列文件时发生此错误:
/usr/本地/rvm/我的应用程序/ruby脚本/报告/dbrubyscript.rb
/usr/本地/rvm/gems/ruby-1.9.3-p194@rails测试/gems/pg-0.14.0/库文件/pg/
页码_文本

ddhy6vgd

ddhy6vgd1#

试着运行ruby /usr/local/rvm/gems/ruby-1.9.3-p194@railsTest/gems/pg-0.14.0/lib/pg/ext/extconf.rb看看你得到了什么错误。这帮助我确定在我的情况下,我的PostgreSQL客户端太旧了。你的错误可能不同,因为你似乎安装了最新版本。

xdyibdwo

xdyibdwo2#

我也遇到过同样的问题。我有一个独立的Ruby脚本。它通过pg连接到postgres,如果我直接从shell运行它,它就能工作。
如果我尝试通过rspec运行它,我会得到错误cannot load such file -- pg

已解决:rspec的问题是,Gemfile中没有定义pg gem。将pg放入Gemfile中,并通过rspec重新测试后,可以工作。

vxqlmq5t

vxqlmq5t3#

尝试添加一行到您的宝石文件:

gem "pg"

然后通过命令行运行bundler:

bundle install

Rails使用Bundler来管理gem和依赖项。你可以在这里读到更多关于Bundler背后的想法:http://gembundler.com/v1.2/rationale.html

相关问题