“pg不是捆绑包的一部分。在不使用Postgres时将其添加到Gemfile”

时间:2012-05-16 23:54:45

标签: ruby-on-rails ruby

这是我的问题:

  • 我创建了一个新项目: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不是bundle的一部分。将它添加到Gemfile。)(LoadError)

  • 当我添加控制器和操作并尝试访问它时,我收到此错误:

      

    ActiveRecord :: ConnectionNotEstablished(ActiveRecord :: ConnectionNotEstablished)

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

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

PostgreSQL postgres pg pql 相关的 在我的代码中。没一句话。

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

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

谢谢!

1 个答案:

答案 0 :(得分:7)

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

感谢NARKOZ指出这一点。

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