【问题标题】:"pg is not part of the bundle. Add it to Gemfile" when not using Postgres不使用 Postgres 时,“pg 不是捆绑包的一部分。将其添加到 Gemfile”
【发布时间】:2023-03-12 01:29:01
【问题描述】:

这是我的问题:

  • 我创建了一个新项目:rails new myapp
    Rails 应用程序默认配置为使用 SQLite3 数据库。

  • 我执行bundle exec rake db:create。它工作并创建了 SQLite3 数据库。

  • 我尝试创建一个新模型(或与数据库相关的任何其他内容),并得到以下错误:

    /home/dinduks/.rvm/gems/ruby-1.9.3-p194/gems/bundler-1.1.3/lib/bundler/rubygems_integration.rb:147:in block in replace_gem': Please install the postgresql adapter:gem install activerecord-postgresql-adapter `(pg 不是包的一部分。将它添加到 Gemfile。)(LoadError)

  • 当我添加一个控制器和一个动作,并尝试访问它时,我得到这个错误:

    ActiveRecord::ConnectionNotEstablished (ActiveRecord::ConnectionNotEstablished)

    完整的堆栈跟踪可以在这里找到:https://gist.github.com/2717365
    WEBrick 服务器显然没有抱怨就启动了。

我重新安装了 Rails,重新安装了 Ruby,使用了另一个 Ruby 版本,重新安装了 RVM...并不断收到同样的错误。

PostgreSQLpostgrespgpql 没有nothing在我的代码中。一个字都没有。

我不想做异常提示的事情。我想了解为什么我有这个错误并修复它。

那么:为什么 Rails 要求我安装一些 Postgres 的东西,而 我不使用 Postgres

谢谢!

【问题讨论】:

  • database.yml的内容是什么? echo $DATABASE_URL 在 shell 中的输出是什么?你能启动 Rails 服务器吗?
  • 你能把你的 Gemfile 粘贴到这里吗?另外,您是否尝试过运行bundle install
  • 也粘贴 Gemfile.lock,以防万一那些鬼鬼祟祟的 gem 将其添加为依赖项。
  • @NARKOZ:我的本地 $DATABASE_URL 中有一些东西,但我删除了它,但仍然出现同样的错误。 -- 我用文件内容更新了我的问题。
  • @NARKOZ 感谢您指出$DATABASE_URL。当我第一次尝试删除它时,我只是从 .bash_env (我的自定义 bash 配置文件之一)和 source ~/.bash_rb (也打开了一个新终端)中删除了它。我应该覆盖它。我做到了,现在它可以工作了。

标签: ruby-on-rails ruby


【解决方案1】:

问题出在DATABASE_URL 环境变量上。
当 ActiveRecord 找到 $DATABASE_URL 时,它会自动使用它的信息,并忽略 config/database.yml

感谢 NARKOZ 指出这一点。

(顺便说一句,我在发现foreman之前已经设置了这个环境变量,这是一个管理环境变量的好工具)

【讨论】:

  • 谢谢!!完全节省了几个小时!
猜你喜欢
  • 2016-06-24
  • 2023-03-29
  • 2017-04-12
  • 2015-11-19
  • 1970-01-01
  • 1970-01-01
  • 2020-07-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多