will
will

Reputation: 3191

rails connect to database

I'm trying to open by my rails console in my newsly created app, but I can't connect to a database. It looks like there might be a problem with sqlite3-1.3.3 vs 1.3.4

$ rails c
/Library/Ruby/Gems/1.8/gems/activerecord-3.1.1/lib/active_record/connection_adapters/abstract/connection_specification.rb:71:in `establish_connection': Please install the sqlite3 adapter: `gem install activerecord-sqlite3-adapter` (can't activate sqlite3 (~> 1.3.4, runtime), already activated sqlite3-1.3.3. Make sure all dependencies are added to Gemfile.) (RuntimeError)

Install

$sudo gem install 
ERROR:  could not find gem activerecord-sqlite3-adapter locally or in a repository

What gems I have installed

$gem list

*** LOCAL GEMS ***
...
sqlite3 (1.3.3)
sqlite3-ruby (1.3.3, 1.3.2, 1.2.5)

I'm using rails 3.1.1

EDIT:

Here is my gemfile source 'http://rubygems.org' gem 'rails', '3.1.1'

# Bundle edge Rails instead:
# gem 'rails',     :git => 'git://github.com/rails/rails.git'

gem 'sqlite3'
gem 'json'

# Gems used only for assets and not required
# in production environments by default.
group :assets do
  gem 'sass-rails',   '~> 3.1.4'
  gem 'coffee-rails', '~> 3.1.1'
  gem 'uglifier', '>= 1.0.3'
end

gem 'jquery-rails'

Running bundle install produces this $sudo bundle install using rake (0.9.2.2) ... Using sqlite3 (1.3.3) Your bundle is complete! Use bundle show [gemname] to see where a bundled gem is installed.

$ bundle show sqlite3
/Library/Ruby/Gems/1.8/gems/sqlite3-1.3.3

Upvotes: 1

Views: 591

Answers (2)

edk750
edk750

Reputation: 1110

I've seen similar situations in the past because of missing/bad shared libraries. Gems install ruby code, native bindings to libraries, but they do not install the external libraries themselves.

The dependency for sqlite on Ubuntu, for example, is libsqlite3-dev.

$ sudo apt-get install libsqlite3-dev

For OSX:

Install sqlite3 on mac osx?

Upvotes: 0

David Sulc
David Sulc

Reputation: 25994

You're using Rails 3.1, which uses bundler to manage gems.

  1. Add gem 'sqlite3' to your Gemfile
  2. run bundle form the command line

This will install the gems your app needs. You should then be able to launch the console.

Upvotes: 1

Related Questions