Sei que não sou o primeiro a enfrentar esse problema e que existem outras soluções viáveis. Eu olhei para vários deles e cheguei à conclusão de que eu queria lançar uma nova gem que pudesse ver a manutenção ativa e contar com o mínimo de dependências possível.
As mudanças recentes do Heroku em suas ofertas de banco de dados e pgbackups manuais vs. automatizados deixam duas coisas importantes a desejar:
- Os planos dev e basic não suportam pgbackups automatizados nativamente.
- Os pgbackups são armazenados e rotacionados pelo Heroku e muitos de nós deveríamos realmente arquivar esses backups em outro local.
A gem pgbackups-archive aborda esses dois pontos.
A gema pgbackups-archive
Veja o projeto no Github:
https://github.com/kjohnston/pgbackups-archive
A pgbackups:archive
tarefa de rake fornecida por esta gema irá capturar um pgbackup, esperar que ele seja concluído e, em seguida, armazená-lo no bucket do Amazon S3 que você especificar. Essa tarefa de rake pode ser agendada por meio do Agendador Heroku, produzindo backups automatizados externos.
A tarefa rake usará o --expire
sinalizador de pgbackups para remover o pgbackup mais antigo que o Heroku está armazenando quando não houver slots livres restantes.
Você pode definir as configurações de retenção no nível do bucket do Amazon S3 de dentro do AWS Console, se desejar.