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

Sam*_*ane 1 ruby ruby-on-rails

这是我的问题:

  • 我创建了一个新项目: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 ......并且继续得到同样的错误.

没有什么相关的PostgreSQL,Postgres的,PGPQL在我的代码.没一句话.

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

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

谢谢!

Sam*_*ane 7

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

感谢NARKOZ指出这一点.

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