Вопрос:

Rails & Postgresql в AWS Cloud 9: роль "ec2-user" не существует

ruby-on-rails postgresql aws-cloud9

1587 просмотра

1 ответ

535 Репутация автора

Я пытаюсь настроить и запустить мою среду Rails с базой данных Postgres с помощью AWS Cloud9 и столкнулся с проблемой при попытке запустить rails db:migrate.

Первоначально я создал проект, запустив:

  1. rails new app_name -d postgresql
  2. комплектация

У Бандлера была проблема с поиском, gem 'pg'поэтому я запустил:

  1. sudo yum установить postgresql-devel
  2. sudo yum установить postgresql-сервер
  3. sudo postgresql initdb
  4. sudo service postgresql start

После этого сервер работал нормально, и я подумал, что все было хорошо, пока он не запустился, rails db:migrateчто вернуло ошибку:

PG :: ConnectionBad: FATAL: роль "ec2-user" не существует

Я не уверен, как это исправить.

Было высказано предположение, что мне может понадобиться войти в мою оболочку psql и изменить или создать новую роль, но я не уверен, как изменить ec2-user.

Также было высказано предположение, что мой pg_hba.confфайл может потребовать некоторые изменения. У меня есть путь к этому файлу, но я не уверен, как его отредактировать или я действительно хочу это сделать.

Какие-либо предложения? Я в том числе мои database.ymlниже:

default: &default
  adapter: postgresql
  encoding: unicode
  pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>

development:
  <<: *default
  database: my_app_development

test:
  <<: *default
  database: my_app_test

production:
  <<: *default
  database: my_app_production
  username: my_app
  password: <%= ENV['MY_APP_DATABASE_PASSWORD'] %>
Автор: Belder Источник Размещён: 11.01.2018 03:36

Ответы (1)


4 плюса

318 Репутация автора

Решение

Каждому пользователю psqlтакже нужна соответствующая база данных, которая соответствует его имени.

В командной строке bash:

sudo -u postgres createuser -s ec2-user
sudo -u postgres createdb ec2-user

Вышесказанное должно позволить вашему пользователю получить доступ psql, но это еще не позволит рельсам выполнить миграцию. Сначала вы должны будете сделать следующее:

sudo su postgres
psql
ALTER USER "ec2-user" WITH SUPERUSER;
\q
exit

Я собрал это довольно быстро, так что дайте мне знать, если у вас возникнут какие-либо проблемы.

Если вы config/database.ymlиспользуете другого пользователя для входа в систему, чем ваш пользователь bash, вам следует повторить все вышеописанные шаги и для этого пользователя.

И наконец, хотя вы находитесь на Cloud9, это всего лишь простая проблема Rails / Postgres, а не проблема AWS.

Автор: FelixFortis Размещён: 09.02.2018 12:19
Вопросы из категории :
32x32