Access pg: резервные копии из Heroku Scheduler

Я хочу отправить свою последнюю резервную копию postgres heroku на S3, чтобы она хранилась вне инфраструктуры heroku, на случай, если я нажму «удалить» в неправильной БД.

Для этого мне нужен URL-адрес резервной копии. Я пробовал запустить heroku pg:backups public-url -q, но он не работает на одноразовых динамометрических станциях (я пробовал на heroku run bash динамометрическом стенде). Whe Кажется, что инструмент heroku toolbelt недоступен на dynos.

Я думал, что могу использовать гем платформенного api, но, похоже, он не поддерживает pg: backups.

Вы знаете, как я могу получить данные резервных копий pg в планировщике heroku? Или, может быть, у вас есть лучший способ отправки резервных копий БД на S3?


person mrzasa    schedule 17.08.2016    source источник


Ответы (1)


Немного поздно, отвечу тем, у кого этот вопрос возникнет в будущем.

В платформу Heroku нет ничего, что позволяло бы прямой автоматический экспорт ваших резервных копий Postgres во внеплатформенное хранилище. Есть довольно простой способ справиться с этим без особых усилий.

Представьте, что приложение, в котором есть указанная база данных, называется foo, и у вас есть запланированное ежедневное резервное копирование этой базы данных. Периодически вы хотите экспортировать резервную копию на S3, как описано в вопросе. Сначала создайте фиктивное приложение, которое будет работать аналогично учетной записи службы. Мы назовем это пока bar.

Теперь обязательно включите пакет сборки Heroku CLI с этим приложением и следуйте инструкциям по установке. . Таким образом, вы можете авторизовать и получить доступ к интерфейсу командной строки прямо из кода приложения bar. Теперь вы можете добавить надстройку Heroku Scheduler в bar и написать код приложения (например, rake задача, раз уж мы говорим о рубине) для завершения загрузки и резервного копирования. После того, как вы запланируете выполнение этой задачи с желаемым интервалом, у вас будет приложение, которое может архивировать резервные копии Postgres за вас.

person RangerRanger    schedule 14.10.2018