Я потратил несколько часов на то, чтобы понять, как запустить мою базу данных. Я создал новое приложение rails и хотел развернуть его на heroku. Я выполнил инструкции от heroku (чтобы переключиться с sqlite3 -> postgresql), но это просто не работает.
Это в моем файле database.yml:
default: &default
adapter: postgresql
pool: 5
timeout: 5000
development:
<<: *default
database: myapp_development
test:
<<: *default
database: myapp_test
production:
<<: *default
database: myapp_production
url: <%= ENV['DATABASE_URL'] %>
Я не могу создавать или заполнять какие-либо данные в базе данных. Иногда он выполняет команду db: migrate, но даже в этом случае ничего не создает. Вот что я получаю при беге:
heroku run rake db:create
FATAL: permission denied for database "postgres"
DETAIL: User does not have CONNECT privilege.
Кто-нибудь знает, как это решить? Я больше понятия не имею ...
Спасибо!
Да, я добавил аддон Postgres!
Вы выбрали Web Dyno (можно бесплатно) и активировали его?
Да. Я нашел решение, повторно добавив аддон Postgres на heroku. Теперь нормально работает. Спасибо за вашу помощь!





Вы не можете создать базу данных на Heroku с помощью db: create (вы также не можете ее отбросить). Ваша база данных создается при добавлении надстройки (например, Heroku Postgres). Вы можете только мигрировать и засеивать. И если вы хотите начать все сначала, вы можете использовать pg: reset (вместо drop and create)
Итак, правильная последовательность должна быть такой:
если вы хотите начать все сначала
Из документации Heroku: https://devcenter.heroku.com/articles/heroku-postgresql
The PostgreSQL user your database is assigned doesn’t have permission to create or drop databases. To drop and recreate your database use pg:reset.
Спасибо, я повторно добавил аддон postgres, и теперь он отлично работает! Ваше здоровье
По умолчанию вам не нужно создавать базу данных на heroku.
Просто запустите heroku run rails db:migrate, и все остальное будет обрабатывать сам heroku.
Также ваш database.yml должен быть изменен на следующий для Production env.
production:
<<: *default
database: myapp_production
username: myapp
password: <%= ENV['MYAPP_DATABASE_PASSWORD'] %>
Также вашему приложению rails по умолчанию назначен Postgres addon.
Вы можете проверить это, выполнив команду heroku addons в консоли.
Источник -
Согласно данной трассировке стека, похоже, что вы пытаетесь создать базу данных на heroku, которая, в свою очередь, дает вам ошибку Permission Denied.
Во-первых, не нужно запускать
heroku run rake db:create
Вместо этого беги
heroku run rake db:migrate
и он должен перенести миграции, которые не работают.
Для проверки текущего статуса миграций выполните следующую команду:
heroku run rake db:migrate:status
Другой момент, о котором вы упомянули:
-> Я не могу создавать или заполнять какие-либо данные в базе данных Как уже упоминалось выше, вы не можете создать базу данных, поскольку heroku делает это за вас. Для заполнения данных в базе выполните следующую команду:
heroku run rake db:seed
в панели управления Heroku. Ресурсы -> дополнения. Вы добавили надстройку Heroku Postgres :: Database?