Я пытаюсь развернуть приложение Rails 5 с помощью Capistrano, и я повесил трубку на шаге db: migrate.Rails - подключение к postgres с url, роль не существует
В частности, когда мои скрипты пытаются запустить БД: мигрировать я получаю ошибку:
ActiveRecord::NoDatabaseError: FATAL: role "admin" does not exist
Мой файл database.yml выглядит следующим образом для производства блока:
production:
adapter: postgresql
encoding: unicode
# For details on connection pooling, see rails configuration guide
# http://guides.rubyonrails.org/configuring.html#database-pooling
pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
url: <%= ENV['DATABASE_URL'] %>
и my database_url имеет вид:
postgresql:://mydb_user:[email protected]/db_name
С myd b_user, mydbuser_pass и db_name заменены моими правильными значениями.
Внутри Postgres я могу видеть эти разрешения на моей базе данных:
db_name | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =Tc/postgres + postgres=CTc/postgres + mydb_user=CTc/postgres
который я думаю, означает, что mydb_user имеет разрешение, необходимое для использования моей базы данных.
Теперь пользователь я вошел, как во время Capistrano развертывания имеет имя пользователя «администратор», что приводит меня к мысли, что я принципиально не понимаю, что-то о Postgres ролях. Почему мой зарегистрированный в настоящее время пользователь имеет какое-либо отношение к соединению postgres, когда я дал свое имя пользователя и пароль через URL-адрес базы данных для определенного пользователя postgres, который я уже создал? Является ли это заявлением, что мое имя пользователя ubuntu должно соответствовать mydb_user для входа? Как исправить эту ошибку, специфичную для рельсов и URL-адресов базы данных с помощью postgres?
У вас есть db: create, db: create: all или db: setup? NoDatabaseError говорит, что вы не создали необходимую базу данных. http://stackoverflow.com/questions/25611004/rake-dbcreate-throws-database-does-not-exist-error-with-postgresql также имеет некоторые опции. Я не использовал Капистрано, поэтому я не знаю, как это взаимодействует. –
Запуск db: создают результат с подобной ошибкой. PG :: ConnectionBad: FATAL: роль «admin» не существует – Msencenb
Вы пытались создать администратора? В postgres \ du отобразит пользователей/роли. (Пользователи и роли теперь одно и то же.) Затем создайте роль admin с Superuser Createrole CreateDB Replication BypassRLS; Ну, вот что я использовал. –