Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

rake about database adapter inconsistent with database.yml

In database.yml (rails-generated default file):

default: &default
    adapter: sqlite3
    pool: 5
    timeout: 5000

development:
  <<: *default
  database: db/development.sqlite3

test:
  <<: *default
  database: db/test.sqlite3

production:
  <<: *default
  database: db/production.sqlite3

When running rake about, I have this error:

Gem::LoadError: Specified 'postgresql' for database adapter, but the gem is not loaded.    
Add `gem 'pg'` to your Gemfile (and ensure its version is at the minimum required by    
ActiveRecord).

If I add the pg gem, then rake about gives this output:

About your application's environment
Ruby version              2.1.0-p0 (x86_64-darwin13.0)
RubyGems version          2.2.2
Rack version              1.5
Rails version             4.1.0
JavaScript Runtime        Node.js (V8)
Active Record version     4.1.0
Action Pack version       4.1.0
Action View version       4.1.0
Action Mailer version     4.1.0
Active Support version    4.1.0
Middleware                Rack::Sendfile, ActionDispatch::Static, Rack::Lock, #   <ActiveSupport::Cache::Strategy::LocalCache::Middleware:0x007f8043154a30>, Rack::Runtime, Rack::MethodOverride, ActionDispatch::RequestId, Rails::Rack::Logger, ActionDispatch::ShowExceptions, ActionDispatch::DebugExceptions, ActionDispatch::RemoteIp, ActionDispatch::Reloader, ActionDispatch::Callbacks, ActiveRecord::Migration::CheckPending, ActiveRecord::ConnectionAdapters::ConnectionManagement, ActiveRecord::QueryCache, ActionDispatch::Cookies, ActionDispatch::Session::CookieStore, ActionDispatch::Flash, ActionDispatch::ParamsParser, Rack::Head, Rack::ConditionalGet, Rack::ETag
Environment               development
Database adapter          postgresql
Database schema version   0

Any idea why this is happening? I want to use the sqlite3 adapter.

like image 962
sysofwan Avatar asked Apr 09 '14 13:04

sysofwan


1 Answers

I found the problem. Apparently Rake was looking for an environment variable DATABASE_URL (which I had set to postgres) and this takes precedence over the database.yml file. Once I deleted the environment variable, everything works fine.

like image 89
sysofwan Avatar answered Oct 21 '22 11:10

sysofwan