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

Rails + Postgres fe_sendauth: пароль не указан

Привет, я пытаюсь подключить postgresql к моему проекту rails. Я изучаю тестирование, но мои тесты не выполняются из-за ошибки postgresql о некорректном пароле:
Edmunds-MacBook-Pro:langexchange edmundmai$ rake test:units
rake aborted!
fe_sendauth: no password supplied

Я уже читал, и мой файл pg_hba.conf изначально был уже таким:

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             all                                     trust
# IPv4 local connections:
host    all             all             127.0.0.1/32            trust
# IPv6 local connections:
host    all             all             ::1/128                 trust
# Allow replication connections from localhost, by a user with the
# replication privilege.
#local   replication     edmundmai  

вот мой файл database.yml в моем проекте rails

default: &default
  adapter: postgresql
  encoding: utf8
  pool: 5
  username: edmundmai
  password: 

development:
  <<: *default
  database: project_development

test:
  <<: *default
  database: project_test

production:
  <<: *default
  database: project_production

Кто-нибудь знает, как я могу это исправить? Мы можем общаться, если это проще.

4b9b3361

Ответ 1

Сначала вы должны изменить:

local   all             all                                     trust

в

local   all             all                                     md5

Затем вы должны создать super_user в PostgreSQL с username и password, после чего добавив username и password нового пользователя в ваш файл database.yml.

Чтобы создать новый super_user, откройте Pg Admin III и щелкните правой кнопкой мыши внизу Login Roles, чтобы создать нового суперпользователя.

Ответ 2

Убедитесь, что вы определили оба RAILS_ENV и RACK_ENV на вашем сервере хостинга. У меня была аналогичная проблема, когда все работало, кроме rake, и решение заключалось в том, чтобы добавить RACK_ENV = production в мою среду. RAILS_ENV уже был готов к производству.

export RACK_ENV=production

bundle exec rake db:version

Вы должны увидеть какой-то вывод, например:

Current version: 20121126151935

Решение. Убедитесь, что ваше приложение Rails имеет доступ к переменным окружения RAILS_ENV и RACK_ENV. Кроме того, убедитесь, что они имеют одинаковое значение.

Ответ 3

На вашей локальной машине в разделах test и development файла database.yml вы должны изменить username на свое имя пользователя. Генератор рельсов делает его таким же, как ваше имя приложения, и это не сработает. Раздел production будет зависеть от вашей производственной настройки. Если вы используете героку, вам ничего не нужно менять.

Ответ 4

Вам нужно только создать user/passw и схему (db) в postgres с помощью pgadmin и поместить user/passw в database.yml. Когда я попытался создать базу данных с rake db: создайте в текущей папке проекта rails, она не удалась, и я потрошился, чтобы ошибка не могла создать для postgreSQL-адаптера. После этого я создал схему для проекта rails с pgadmin, все в порядке, без каких-либо изменений в pg_hba.conf.