不使用 Postgres 时的"pg is not part of the bundle. Add it to Gemfile"



这是我的问题:

  • 我创建了一个新项目: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 不是捆绑包的一部分。将其添加到宝石文件。(加载错误(

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

    ActiveRecord::

    ConnectionNotBuilt(ActiveRecord::ConnectionNotBuilt(

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

我重新安装了Rails,重新安装了Ruby,

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

在我的代码中,没有任何PostgreSQL,postgres,pgpql相关的内容。 一个字都没有。

我不想按照例外的建议去做。我想了解为什么会出现此错误并修复它。

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

谢谢!

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

感谢NARKOZ指出这一点。

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

最新更新