Почему после перезапуска дино Heroku удаляет всё из БД (Postgres)?

При перезапуске дино в Heroku может происходить удаление данных из БД (PostgreSQL) по нескольким причинам.

1) Временный файловый система: В Heroku каждый дин снабжен временной файловой системой, которая по умолчанию считается несохранной. Это означает, что все изменения, включая данные в БД, хранятся только в памяти дина и не сохраняются после перезапуска. Поэтому, при каждом перезапуске дино, БД будет создаваться заново без сохранения предыдущего состояния.

2) Ограниченное хранение данных: Heroku предлагает несколько планов, каждый из которых обладает ограниченным пространством хранения для БД. Если ваша БД превышает ограничение хранения, то Heroku может удалить предыдущие данные для освобождения места для новых данных.

3) Функция автоматического масштабирования: Если ваше приложение настроено на автоматическое масштабирование, Heroku может добавить или удалить динамические динозавры в зависимости от нагрузки. При добавлении нового дина, все данные будут потеряны, так как новый дин будет начинать с чистой установкой PostgreSQL.

4) Миграции: Если вы выполнили миграции БД после развертывания приложения на Heroku, эти миграции регистрируются в метаданных дино. При перезапуске дино Heroku может сбросить метаданные, что приведет к потере данных.

Рекомендации:

- Чтобы сохранить данные БД после перезапуска дино, вам нужно использовать внешнее хранилище данных, такое как Heroku Postgres, Amazon RDS или другие управляемые базы данных. Это позволяет восстановить данные после перезапуска дино.

- Для решения проблемы ограниченного пространства хранения вам следует мониторинг заполнения БД и уведомлять администраторов о необходимости увеличения пространства хранения.

- Если вы использовали миграции БД, рекомендуется внимательно следить за изменениями в метаданных и делать резервные копии данных перед перезапуском дино.

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

В целом, перезапуск дино в Heroku может потенциально привести к потере данных из-за особенностей временной файловой системы и ограничений хранения. Чтобы избежать потери данных, рекомендуется использовать внешнее хранилище данных и следить за метаданными БД.