Как я могу прикрепить базу данных к приложению в 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