From 4d9d4e259262538b4ab3be9aa6d514924418ae66 Mon Sep 17 00:00:00 2001 From: naanadr Date: Thu, 2 Oct 2025 21:56:39 -0300 Subject: [PATCH 1/2] =?UTF-8?q?Adiciona=20p=C3=A1gina=20com=20descri=C3=A7?= =?UTF-8?q?=C3=A3o=20sobre=20o=20backup=20do=20banco?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- source/infraestrutura/backup-associados.md | 100 +++++++++++++++++++++ 1 file changed, 100 insertions(+) create mode 100644 source/infraestrutura/backup-associados.md diff --git a/source/infraestrutura/backup-associados.md b/source/infraestrutura/backup-associados.md new file mode 100644 index 0000000..e1a456c --- /dev/null +++ b/source/infraestrutura/backup-associados.md @@ -0,0 +1,100 @@ +# Backup site associados + +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). + +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: + +> **Resumo rápido (TL;DR)** +> +> 1. Instale o PostgreSQL (inclui `psql` e `pg_restore`). +> +> 2. Crie um banco vazio: `createdb associadosdb`. +> +> 3. Rode: `pg_restore --verbose --clean --no-acl --no-owner -h localhost -d associadosdb backup_banco_associados.dump`. +> +> 4. 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` (ou `postgresql@`) + * Ubuntu/Debian: `sudo apt-get install postgresql postgresql-client` + * Windows: instalar via [PostgreSQL Installer](https://www.postgresql.org/download/windows/) +* A ferramenta **`pg_restore`** (vem junto com a instalação do PostgreSQL). +* O arquivo `backup_banco_associados.dump` baixado do Heroku. +* Acesso ao usuário local do Postgres (ex.: `postgres`) e sua senha, caso configurada. + +> **Dica:** Para conferir sua versão local: `psql --version` e `pg_restore --version`. + +--- + +### 2) Confirmar integridade (opcional, mas recomendado) + +No mesmo diretório do arquivo de dump (`backup_banco_associados.dump`): + +```bash +# 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. + +```bash +# macOS/Linux +createdb -h localhost -U postgres associadosdb + +# Windows (PowerShell / CMD) +createdb -h localhost -U postgres associadosdb +``` + +Se preferir criar via `psql`: + +```bash +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): + +```bash +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`: executa `DROP` antes de `CREATE` (ú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 `. + +> **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 ...`. + +--- From 823ffb1615e9c76199b630263b472b438afdf55c Mon Sep 17 00:00:00 2001 From: naanadr Date: Thu, 2 Oct 2025 21:56:55 -0300 Subject: [PATCH 2/2] =?UTF-8?q?Adiciona=20nova=20p=C3=A1gina=20no=20index?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- source/index.md | 1 + 1 file changed, 1 insertion(+) diff --git a/source/index.md b/source/index.md index b081839..aabb281 100644 --- a/source/index.md +++ b/source/index.md @@ -59,4 +59,5 @@ pythonbrasil/cdc infraestrutura/domínios infraestrutura/repositórios infraestrutura/cofre +infraestrutura/backup-associados ``` \ No newline at end of file