Skip to content

Commit 18dc2c0

Browse files
authored
Adiciona página sobre backup do associados (#45)
* Adiciona página com descrição sobre o backup do banco * Adiciona nova página no index
1 parent 979cca5 commit 18dc2c0

2 files changed

Lines changed: 101 additions & 0 deletions

File tree

source/index.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,4 +59,5 @@ pythonbrasil/cdc
5959
infraestrutura/domínios
6060
infraestrutura/repositórios
6161
infraestrutura/cofre
62+
infraestrutura/backup-associados
6263
```
Lines changed: 100 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,100 @@
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

Comments
 (0)