Как я могу прикрепить базу данных к приложению в Heroku?

Я использую адроны Heroku Postgres, и я создал новую производственную базу данных на странице аддонов Heroku Postgres. Я не добавлял его прямо в свое приложение, используя страницу "Ресурсы" моего приложения.

Теперь я хочу привязать эту базу к моему приложению, чтобы она была распознана командой heroku pg.

Я могу использовать базу данных btw после установки DATABASE_URL config var моего приложения, чтобы указать на нее, но команда heroku pg еще не распознает ее.

Дополнительная информация: предыдущая база данных была Shared, а новая - Production.

Ответы

Ответ 1

Вы добавили базу данных с помощью независимого от приложения https://postgres.heroku.com/ сайта? Или вы просто создали базу данных postgresql в своей панели управления Heroku?

Если вы создали свою базу данных на https://postgres.heroku.com/, вы не увидите базу данных с помощью команды heroku pg:info. Однако вы можете добавить свою базу данных в свое приложение:

  • Войдите в https://postgres.heroku.com/.
  • Нажмите на базу данных, которую вы хотите прикрепить к своему приложению.
  • В разделе "Параметры подключения" нажмите кнопку конфигурации в правом верхнем углу.
  • Затем нажмите кнопку "URL".
  • Скопируйте URL своей базы данных, это должно быть что-то вроде "postgres://blah: [email protected]: 5432/omg".
  • В вашем приложении в командной строке запустите heroku config:set DATABASE_URL=postgres://blah:[email protected]:5432/omg

Что мы там делали, присваиваем вашу базу данных переменной среды DATABASE_URL в вашем приложении. Это переменная, которая используется по умолчанию при локальном размещении баз данных в вашем приложении, поэтому теоретически присвоение этого значения должно работать для вас отлично.

Ответ 2

Чтобы получить вашу базу данных, созданную в https://postgres.heroku.com/, прикрепленную к вашему фактическому приложению heroku, над которым вы работаете, не можете использовать из pg backup commands, и насколько я могу судить, нет поддерживаемого метода Heroku привязки базы данных к приложению heroku.

Однако вы можете создать резервную копию своей базы данных с помощью pg_dump, а затем использовать pg_restore для заполнения новой базы данных, прикрепленной к вашему приложению:

pg_dump -i -h hostname -p 5432 -U username -F c -b -v -f "backup-filename" database_name

Как только это будет завершено, вы можете заполнить свою новую базу данных:

pg_restore -i -h new_hostname -p 5432 -U new_username -d new_database_name -v "same_backup_filename"

Даже если вы обновляетесь с "базового плана" до "плана крана", вам все равно придется делать резервное копирование и восстановление, но поскольку db уже подключены к вашему приложению, у вас есть преимущество использования резервной копии heroku команды.

Ответ 3

Добавления Heroku теперь могут быть прикреплены к приложениям и несколько раз в одном приложении.

heroku addons:attach ADDON_NAME -a APP_NAME

Источник: https://devcenter.heroku.com/changelog-items/646


Чтобы узнать имя вашего аддона, выполните следующие действия:

heroku addons

Источник: https://devcenter.heroku.com/articles/managing-add-ons