Делаем downgrade базы данных Postgres на Heroku

Для экономии средств было решено перейти на бесплатный план PG на Heroku (hobby-dev).

hobby-dev предоставляет 10 000 записей в БД, чего вполне хватает для простых задач (собственно, название намекает :)). Поэтому было решено перейти с hobby-basic (9 usd в месяц) на hobby-dev (бесплатный).

Вот пошаговая инструкция по понижению плана Postgres на Heroku:

Для начала нужно создать базу данных с планом hobby-dev. Сделать это можно из Web-интерфейса Heroku, либо же через CLI:

heroku addons:create heroku-postgresql:hobby-dev --app=your_app

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

У меня была создана БД с именем SILVER. Текущая база именовалась просто DATABASE.

Значит переносим данные из DATABASE в SILVER:

heroku pg:copy DATABASE_URL HEROKU_POSTGRESQL_SILVER_URL --app=your_app

Теперь, когда данные из старой базы данных скопированы в новую - начинаем использовать нужную БД:

heroku pg:promote HEROKU_POSTGRESQL_SILVER_URL

Когда наше приложение перепрыгнет на новую БД - старую можно удалить.

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

Чтобы сообщить посетителям сайта о проводимых работах и предотвратить создание новых записей в базу во время переноса - нужно включить maintenance страницу-заглушку:

Включить maintenance:
heroku maintenance:on

Выключить maintenance:
heroku maintenance:off