|
| 1 | +# Backup site associados |
| 2 | + |
| 3 | +O repositório [apyb/associados](https://github.com/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](../associados/associe-se.rst). |
| 4 | + |
| 5 | +Caso seja necessário acessar o banco de dados do site legado, o backup mais recente está disponível no [cofre](./cofre.md). E você pode restaurá-lo localmente seguindo os passos abaixo: |
| 6 | + |
| 7 | +> **Resumo rápido (TL;DR)** |
| 8 | +> |
| 9 | +> 1. Instale o PostgreSQL (inclui `psql` e `pg_restore`). |
| 10 | +> |
| 11 | +> 2. Crie um banco vazio: `createdb associadosdb`. |
| 12 | +> |
| 13 | +> 3. Rode: `pg_restore --verbose --clean --no-acl --no-owner -h localhost -d associadosdb backup_banco_associados.dump`. |
| 14 | +> |
| 15 | +> 4. Valide com `psql -d associadosdb -c "\dt"`. |
| 16 | +
|
| 17 | +--- |
| 18 | + |
| 19 | +### 1) Pré‑requisitos |
| 20 | + |
| 21 | +* **PostgreSQL** instalado localmente (versão igual ou mais nova que a do backup para evitar incompatibilidades - Versão 17.4). |
| 22 | + |
| 23 | + * macOS: `brew install postgresql` (ou `postgresql@<versão>`) |
| 24 | + * Ubuntu/Debian: `sudo apt-get install postgresql postgresql-client` |
| 25 | + * Windows: instalar via [PostgreSQL Installer](https://www.postgresql.org/download/windows/) |
| 26 | +* A ferramenta **`pg_restore`** (vem junto com a instalação do PostgreSQL). |
| 27 | +* O arquivo `backup_banco_associados.dump` baixado do Heroku. |
| 28 | +* Acesso ao usuário local do Postgres (ex.: `postgres`) e sua senha, caso configurada. |
| 29 | + |
| 30 | +> **Dica:** Para conferir sua versão local: `psql --version` e `pg_restore --version`. |
| 31 | +
|
| 32 | +--- |
| 33 | + |
| 34 | +### 2) Confirmar integridade (opcional, mas recomendado) |
| 35 | + |
| 36 | +No mesmo diretório do arquivo de dump (`backup_banco_associados.dump`): |
| 37 | + |
| 38 | +```bash |
| 39 | +# macOS/Linux |
| 40 | +shasum -a 256 backup_banco_associados.dump |
| 41 | + |
| 42 | +# Windows (PowerShell) |
| 43 | +Get-FileHash .\backup_banco_associados.dump -Algorithm SHA256 |
| 44 | +``` |
| 45 | + |
| 46 | +Guarde o hash junto com o arquivo para auditoria. |
| 47 | + |
| 48 | +--- |
| 49 | + |
| 50 | +### 3) Criar o banco de destino |
| 51 | + |
| 52 | +Crie um banco **vazio** onde o dump será restaurado. |
| 53 | + |
| 54 | +```bash |
| 55 | +# macOS/Linux |
| 56 | +createdb -h localhost -U postgres associadosdb |
| 57 | + |
| 58 | +# Windows (PowerShell / CMD) |
| 59 | +createdb -h localhost -U postgres associadosdb |
| 60 | +``` |
| 61 | + |
| 62 | +Se preferir criar via `psql`: |
| 63 | + |
| 64 | +```bash |
| 65 | +psql -h localhost -U postgres -c "CREATE DATABASE associadosdb;" |
| 66 | +``` |
| 67 | + |
| 68 | +> Se o usuário pedir senha, informe a senha do usuário do Postgres local (ex.: `postgres`). |
| 69 | +
|
| 70 | +--- |
| 71 | + |
| 72 | +### 4) Restaurar com `pg_restore` (formato custom) |
| 73 | + |
| 74 | +O dump do Heroku normalmente é em **formato custom** (`-Fc`), ideal para `pg_restore`. |
| 75 | + |
| 76 | +Comando recomendado (idempotente, sem restaurar ACLs/donos): |
| 77 | + |
| 78 | +```bash |
| 79 | +pg_restore \ |
| 80 | + --verbose \ |
| 81 | + --clean \ |
| 82 | + --no-acl \ |
| 83 | + --no-owner \ |
| 84 | + -h localhost \ |
| 85 | + -d associadosdb \ |
| 86 | + backup_banco_associados.dump |
| 87 | +``` |
| 88 | + |
| 89 | +**O que cada flag faz:** |
| 90 | + |
| 91 | +* `--verbose`: imprime detalhes do progresso |
| 92 | +* `--clean`: executa `DROP` antes de `CREATE` (útil para reimportar no mesmo DB) |
| 93 | +* `--no-acl`: ignora permissões do dump |
| 94 | +* `--no-owner`: não tenta recriar donos/roles do Heroku |
| 95 | + |
| 96 | +> **Se precisar de schema específico**: normalmente o Heroku usa `public`. Se o seu dump tiver outro schema, você pode restringir com `-n <schema>`. |
| 97 | +
|
| 98 | +> **Se quiser restaurar só uma tabela**: liste o conteúdo (`pg_restore -l backup_banco_associados.dump > toc.list`), edite a lista e use `pg_restore -L toc.list ...`. |
| 99 | +
|
| 100 | +--- |
0 commit comments