1

这是我的问题:

  • 我创建了一个新项目: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相关的内容。一个字都没有。

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

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

谢谢!

4

1 回答 1

7

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

感谢 NARKOZ 指出这一点。

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

于 2012-05-17T15:35:57.800 回答