Установка PostgreSQL с Ruby on Rails в Mac OS X - PullRequest
9 голосов
/ 02 марта 2011

У меня все установлено. Но когда я запускаю "rake db: create", я получаю следующее:

Ken-Vogts-MacBook:sixmonths ken$ rake db:create
(in /Users/ken/sixmonths)
rake aborted!
no such file to load -- pg

Вот мой database.yml:

development:
  adapter: postgresql
  encoding: unicode
  database: sixmonths_development
  pool: 5
  username: postgres
  password: xxxxxxxx

test:
    adapter: postgresql
    encoding: unicode
    database: sixmonths_test
    pool: 5
    username: sixmonths
    password: xxxxxxxx

production:
    adapter: postgresql
    encoding: unicode
    database: sixmonths_production
    pool: 5
    username: sixmonths
    password: xxxxxxxx

Я вижу, что pg установлен при запуске: список gem

Я пытался заменить "postgresql" на "pg" для другого сообщения в stackoverflow, но это привело к следующему:

Ken-Vogts-MacBook:sixmonths ken$ rake db:create
(in /Users/ken/sixmonths)

Кажется, круто, верно?

Неа. Затем я пытаюсь "rake db: schema: dump" и получаю это:

Ken-Vogts-MacBook:sixmonths ken$ rake db:schema:dump
(in /Users/ken/sixmonths)
rake aborted!
Please install the pg adapter: `gem install activerecord-pg-adapter` (no such file to load -- active_record/connection_adapters/pg_adapter)

Конечно, нет "activerecord-pg-adapter". Что я должен сделать, чтобы сделать эту работу?

Содержимое Gemfile:

source 'rubygems.org'
gem 'rails', '3.0.0' 
# Bundle edge Rails instead: 
# gem 'rails', :git => 'git://github.com/rails/rails.git' 
gem 'sqlite3-ruby', :require => 'sqlite3' 
# gem 'unicorn' 
# gem 'capistrano'
# gem 'ruby-debug'
# Bundle the extra gems: 
# gem 'bj' 
# gem 'nokogiri' 
# gem 'sqlite3-ruby', :require => 'sqlite3' 
# gem 'aws-s3', :require => 'aws/s3' 
# Bundle gems for the local environment. Make sure to 
# put test-only gems in this group so their generators 
# and rake tasks are available in development mode: 
# group :development, :test do 
  # gem 'webrat' 
# end

Ответы [ 2 ]

12 голосов
/ 02 марта 2011

Rails 3 только позволит вам получить доступ к гемам, указанным в вашем Gemfile, поэтому даже если вы установили его в общесистемных гемах, выполнив gem install pg, он не сможет найти его.

Добавьте gem 'pg' к вашему Gemfile, запустите bundle install, и все будет хорошо.

0 голосов
/ 19 мая 2011

Я перепробовал многие вещи, которые я видел в качестве решений в других местах, но единственное, что мне помогло, это заменить

gem 'sqlite3'

с

gem 'pg'

в Gemfile. Мой database.yml выглядит так же, как ваш.

Теперь и >rake db:create, и >rake db:migrate работают.

Это на OSX Snow Lepoard, Rails 3.0.7, Postgres 9.0.

И вывод:

gem list --local

есть

pg (0.11.0)
polyglot (0.3.1)
postgres-pr (0.6.3)
rack (1.2.2, 1.0.1)
rack-mount (0.7.2, 0.7.1, 0.6.14)
rack-test (0.6.0, 0.5.7)
rails (3.0.7, 3.0.5, 2.3.5, 2.2.2, 1.2.6)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...