Backup site associados#
O repositório apyb/associados contém o código fonte do site legado de associados da APyB. Ele é um site Django que rodava no Heroku, mas foi descontinuado em 2025 e hoje todo o gerenciamento de associados é realizado via Stripe.
Caso seja necessário acessar o banco de dados do site legado, o backup mais recente está disponível no cofre. E você pode restaurá-lo localmente seguindo os passos abaixo:
Resumo rápido (TL;DR)
Instale o PostgreSQL (inclui
psqlepg_restore).Crie um banco vazio:
createdb associadosdb.Rode:
pg_restore --verbose --clean --no-acl --no-owner -h localhost -d associadosdb backup_banco_associados.dump.Valide com
psql -d associadosdb -c "\dt".
1) Pré‑requisitos#
PostgreSQL instalado localmente (versão igual ou mais nova que a do backup para evitar incompatibilidades - Versão 17.4).
macOS:
brew install postgresql(oupostgresql@<versão>)Ubuntu/Debian:
sudo apt-get install postgresql postgresql-clientWindows: instalar via PostgreSQL Installer
A ferramenta
pg_restore(vem junto com a instalação do PostgreSQL).O arquivo
backup_banco_associados.dumpbaixado do Heroku.Acesso ao usuário local do Postgres (ex.:
postgres) e sua senha, caso configurada.
Dica: Para conferir sua versão local:
psql --versionepg_restore --version.
2) Confirmar integridade (opcional, mas recomendado)#
No mesmo diretório do arquivo de dump (backup_banco_associados.dump):
# macOS/Linux
shasum -a 256 backup_banco_associados.dump
# Windows (PowerShell)
Get-FileHash .\backup_banco_associados.dump -Algorithm SHA256
Guarde o hash junto com o arquivo para auditoria.
3) Criar o banco de destino#
Crie um banco vazio onde o dump será restaurado.
# macOS/Linux
createdb -h localhost -U postgres associadosdb
# Windows (PowerShell / CMD)
createdb -h localhost -U postgres associadosdb
Se preferir criar via psql:
psql -h localhost -U postgres -c "CREATE DATABASE associadosdb;"
Se o usuário pedir senha, informe a senha do usuário do Postgres local (ex.:
postgres).
4) Restaurar com pg_restore (formato custom)#
O dump do Heroku normalmente é em formato custom (-Fc), ideal para pg_restore.
Comando recomendado (idempotente, sem restaurar ACLs/donos):
pg_restore \
--verbose \
--clean \
--no-acl \
--no-owner \
-h localhost \
-d associadosdb \
backup_banco_associados.dump
O que cada flag faz:
--verbose: imprime detalhes do progresso--clean: executaDROPantes deCREATE(útil para reimportar no mesmo DB)--no-acl: ignora permissões do dump--no-owner: não tenta recriar donos/roles do Heroku
Se precisar de schema específico: normalmente o Heroku usa
public. Se o seu dump tiver outro schema, você pode restringir com-n <schema>.
Se quiser restaurar só uma tabela: liste o conteúdo (
pg_restore -l backup_banco_associados.dump > toc.list), edite a lista e usepg_restore -L toc.list ....
O que você pode fazer com o banco restaurado?#
Consultar quando uma pessoa associada entrou na APyB#
Importante
Essa consulta só é válida se a pessoa associada tiver feito ao menos um pagamento registrado no sistema legado da APyB. Caso contrário, deverá ser consultado o sistema atual de associados via Stripe.
Rotineiramente recebemos pedidos de pessoas associadas solicitando um termo que comprove que elas são asssociadas, e nesse termo precisamos informar a data em que a pessoa se associou. Para isso, você pode rodar a seguinte query SQL no banco restaurado, substituindo o placeholder [USER-EMAIL] pelo email da pessoa associada:
SELECT
MIN(tb_transaction."date") AS first_payment
FROM (
SELECT id, email
FROM public.auth_user
WHERE email = '[USER-EMAIL]' -- substitua pelo email da pessoa associada
) AS tb_users
LEFT JOIN (
SELECT id AS member_id, user_id, cpf
FROM public.members_member
) AS tb_members ON tb_users.id = tb_members.user_id
LEFT JOIN (
SELECT id AS payment_id, member_id
FROM public.payment_payment
) AS tb_payment ON tb_members.member_id = tb_payment.member_id
LEFT JOIN (
SELECT payment_id, date
FROM public.payment_transaction
) AS tb_transaction ON tb_transaction.payment_id = tb_payment.payment_id