Подтвердить что ты не робот

Как обращаться с ошибкой Ruby on Rails: "Пожалуйста, установите адаптер postgresql:` gem install activerecord-postgresql-adapter '"

Запуск приложения Ruby on Rails (RoR) или Ruby, использующего структуру ActiveRecord, вы получите сообщение об ошибке:

Установите адаптер postgresql: gem install activerecord-postgresql-adapter

Попытка запуска:

gem install activerecord-postgresql-adapter

также терпит неудачу, оставляя вас в недоумении.

4b9b3361

Ответ 1

Проблема не в том, что кто-то написал. Проблема в том, что имя адаптера базы данных postgresql является "postgresql", а не "postgres", хотя имя GEM "pg".

Определение в файле database.yml должно включать

  adapter: postgresql

Ответ 2

Вот ответ, который я получил от 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 нажать мастер героя

Ответ 3

Это означает, что у вас нет новой библиотеки 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/

Ответ 4

Есть еще одно глубоко скрытое условие, которое также вызовет эту ошибку.

Если у вас есть переменная локальной среды DATABASE_URL = postgres://mehmehmeh, то какой-то жемчуг (я подозреваю, что Heroku) заставляет приложение думать, что Postgres требуется, даже если он нигде в ваших конфигурациях, Убейте эту переменную env, и вы должны быть в порядке.

Ответ 5

sudo apt-get install ruby1.8-dev

то...

gem install pg

Работал для меня!

Ответ 6

Вы можете попробовать это

В debian (сжатие):

aptitude install libdbd-pg-ruby

Ответ 7

Проверьте правильность базы данных database.yml db. Если это postgresql, вам может потребоваться изменить его, чтобы ссылаться на mysql2 или что-то другое, что вы использовали для данной среды.

Ответ 8

Я сделал небольшой обзор текущего состояния драйверов базы данных Ruby + PostgreSQL на railsonpostgresql.com; Я думаю, что sudo gem install pg, вероятно, тот, который вам нужен.

Ответ 9

При проверке различных результатов поиска я установил связку. Что, наконец, заставило мою среду перестать жаловаться на это сообщение: "Пожалуйста, установите адаптер 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 является последним и работает. Тем не менее, он не используется, когда другие сломанные кристаллы адаптера находятся вокруг.