Ответ 1
Проблема не в том, что кто-то написал. Проблема в том, что имя адаптера базы данных postgresql является "postgresql", а не "postgres", хотя имя GEM "pg".
Определение в файле database.yml должно включать
adapter: postgresql
Запуск приложения Ruby on Rails (RoR) или Ruby, использующего структуру ActiveRecord, вы получите сообщение об ошибке:
Установите адаптер postgresql:
gem install activerecord-postgresql-adapter
Попытка запуска:
gem install activerecord-postgresql-adapter
также терпит неудачу, оставляя вас в недоумении.
Проблема не в том, что кто-то написал. Проблема в том, что имя адаптера базы данных postgresql является "postgresql", а не "postgres", хотя имя GEM "pg".
Определение в файле database.yml должно включать
adapter: postgresql
Вот ответ, который я получил от Heroku, и это сработало для меня (после того, как вы попробовали разные pg gems, адаптеры и все остальное на 10 других сообщениях об этом)
1) добавьте строку: gem 'pg' в ваш Gemfile.
2) Запустите установку пакета команд, чтобы установить драгоценный камень в ваш комплект.
3) Сцена изменения Gemfile и Gemfile.lock: git добавить Gemfile Gemfile.lock
4) Зафиксируйте изменения: git commit -m "Установите pg gem"
5) Переустановить на герою: git нажать мастер героя
Это означает, что у вас нет новой библиотеки pg postgresql. Это легко фиксируется с помощью:
sudo gem install pg
I (Dov) нашел другие решения в сети, которые описывали настройку GEM_HOME и добавление ~/.gem/ruby /vers/bin в ваш PATH, но они не работали. Это решение было обеспечено Марк Мансур в своем блоге State of Flux: http://stateofflux.com/2008/7/13/activerecord-postgresql-adapter-in-rails-2-1/
Есть еще одно глубоко скрытое условие, которое также вызовет эту ошибку.
Если у вас есть переменная локальной среды DATABASE_URL = postgres://mehmehmeh, то какой-то жемчуг (я подозреваю, что Heroku) заставляет приложение думать, что Postgres требуется, даже если он нигде в ваших конфигурациях, Убейте эту переменную env, и вы должны быть в порядке.
sudo apt-get install ruby1.8-dev
то...
gem install pg
Работал для меня!
Вы можете попробовать это
В debian (сжатие):
aptitude install libdbd-pg-ruby
Проверьте правильность базы данных database.yml db. Если это postgresql, вам может потребоваться изменить его, чтобы ссылаться на mysql2 или что-то другое, что вы использовали для данной среды.
Я сделал небольшой обзор текущего состояния драйверов базы данных Ruby + PostgreSQL на railsonpostgresql.com; Я думаю, что sudo gem install pg
, вероятно, тот, который вам нужен.
При проверке различных результатов поиска я установил связку. Что, наконец, заставило мою среду перестать жаловаться на это сообщение: "Пожалуйста, установите адаптер postgresql: gem install activerecord-postgresql-adapter" был:
Я удалил все драгоценные камни, относящиеся к адаптеру, такие как: sudo gem uninstall activerecord-jdbc-adapter; sudo gem uninstall activerecord-jdbcpostgresql-адаптер; sudo gem uninstall activerecord-postgresql-адаптер; sudo gem удалить jdbc-postgres;
Я также удалил ссылки на адаптер, как и в моем Gemfile: gem 'activerecord-jdbcpostgresql-adapter'
Оставьте только установленный pg (0.15.1) (чтобы проверить наличие pg, do "gem list" )
Затем запускается "rake db: create". Итак, я думаю, что pg является последним и работает. Тем не менее, он не используется, когда другие сломанные кристаллы адаптера находятся вокруг.