Вчера я загрузил приложение Rails 5 с несколькими базами данных в Heroku. У меня есть надстройка postgres для разработчиков. Сегодня утром я успешно импортировал свои 7 баз данных Postgres, используя резервные копии pg_dump, созданные в соответствии с документацией Heroku.
PGPASSWORD=mypassword pg_dump -Fc --no-acl --no-owner -h localhost -U myuser mydb > mydb.dump
heroku pg:backups:restore 'https://s3.amazonaws.com/me/items/3H0q/mydb.dump' HEROKU_POSTGRESQL_COLOR_URL
Я несколько раз импортировал эти базы данных, потому что через несколько минут они исчезали. Я запустил свое приложение Heroku, и первая база данных была успешно доступна, но к тому времени, когда я попытался получить доступ ко второй, я получил сообщение «отношение« xxxx »не существует». Когда я вернулся в свое хранилище данных, баз данных уже не было. Когда я попытался запустить свое приложение во второй раз, я получил «отношение« xxxx »не существует» в первой таблице, к которой я успешно получил доступ в предыдущий раз, когда я запускал свое приложение.
Когда я смотрю на хранилище данных для базы данных, я не вижу никаких ошибок. Они просто исчезают. Я проверил, есть ли ограничение на количество баз данных, которое я мог бы иметь с помощью hobby-dev, но не увидел ни одного. Количество строк меньше 10 000. Каждый раз, когда я импортирую файлы pg_dump, я получаю письмо с предупреждением о количестве строк.
ОБНОВЛЕНИЕ 17.02.2017, 10:42. Центральное: единственное, что я нашел до сих пор, - это несколько сообщений, в которых говорится, что файловая система Heroku эфемерна и не сохраняется между перезапусками дино. Если это моя проблема:
- Как я узнаю о перезапуске дино, если я его не перезапускаю? Я не перезапускал свое приложение, когда мои базы данных исчезли.
- Как я могу постоянно хранить свои базы данных с помощью надстройки Postgres или мне нужно хранить свои базы данных в другом месте? Конечно, у надстройки есть способ постоянного хранения баз данных.
heroku addons:create heroku-postgresql:hobby-dev
. После каждого вызова запускайтеheroku pg:wait
, чтобы дождаться подготовки базы данных. Если базы данных не исчезают, попробуйте восстановить свои резервные копии. - person Greg Navis   schedule 18.02.2017