banco-dados-pralog/README.md

151 lines
3.7 KiB
Markdown

# Banco de Dados Pralog
Este repositório contém a configuração Docker para o banco de dados PostgreSQL do sistema Pralog.
## 📋 Visão Geral
- **Banco**: PostgreSQL 16 Alpine
- **Container**: `pralog-local-db`
- **Rede Docker**: `pralog-net`
- **Porta Externa**: `15432`
- **Porta Interna**: `5432`
## 🔐 Credenciais
### Ambiente Local (Docker)
| Campo | Valor |
|-------|-------|
| Host | `localhost` |
| Porta | `15432` |
| Usuário | `itguys` |
| Senha | `PralogLocal2026!Secure` |
| Database | `global` |
**Connection String:**
```
postgresql://itguys:PralogLocal2026!Secure@localhost:15432/global
```
### Ambiente de Produção (AWS RDS)
As credenciais de produção estão documentadas em [`chaves.md`](./chaves.md).
## 🚀 Como Usar
### Pré-requisitos
- Docker Desktop instalado e rodando
- PowerShell (Windows)
### Iniciando o Container
```powershell
docker-compose up -d
```
### Parando o Container
```powershell
docker-compose down
```
### Verificando Status
```powershell
docker ps -f name=pralog-local-db
```
## 🔄 Restaurando o Backup
O arquivo de backup está montado dentro do container em `/tmp/restore.sql`.
### Passo a Passo
1. **Acesse o container**:
```powershell
docker exec -it pralog-local-db sh
```
2. **Execute o restore**:
```bash
psql -U itguys -d global -f /tmp/restore.sql
```
3. **Verifique os dados**:
```bash
psql -U itguys -d global -c 'SELECT count(*) FROM "GlobalDriver"'
```
## 📁 Estrutura do Projeto
```
banco-pralog/
├── docker-compose.yml # Configuração do container
├── backup_global_*.sql # Backup do banco de dados
├── chaves.md # Credenciais (produção e local)
├── local_credentials.md # Credenciais do ambiente local
├── init-scripts/
│ └── 01-create-role.sql # Script de criação de roles
├── pg_data/ # Volume de dados (gitignore)
└── README.md # Este arquivo
```
## 🐳 Configuração Docker
### docker-compose.yml
O arquivo `docker-compose.yml` define:
- **Imagem**: `postgres:16-alpine` (leve e compatível com o backup)
- **Volumes**:
- `./pg_data``/var/lib/postgresql/data` (persistência de dados)
- `./backup_*.sql``/tmp/restore.sql` (arquivo de backup)
- `./init-scripts/*.sql``/docker-entrypoint-initdb.d/` (scripts de inicialização)
- **Rede**: `pralog-net` (bridge isolada)
- **Porta**: `15432:5432`
### Persistência de Dados
Os dados do PostgreSQL são armazenados em `./pg_data/`. Este diretório:
- ✅ Persiste entre restarts do container
- ✅ Persiste após `docker-compose down`
- ✅ Persiste após redeploy/pull
-**Não** é enviado ao Git (está no `.gitignore`)
Para resetar o banco completamente:
```powershell
docker-compose down
Remove-Item -Recurse -Force .\pg_data\*
docker-compose up -d
```
## 📊 Tabelas Principais
| Tabela | Descrição |
|--------|-----------|
| `GlobalDriver` | Motoristas globais |
| `GlobalDriverTenant` | Relação motorista-tenant |
| `Tenant` | Tenants/empresas |
| `TenantDomain` | Domínios dos tenants |
| `global_driver_bank_account` | Contas bancárias dos motoristas |
| `global_integration` | Integrações (Planner, IdWall) |
| `request_log` | Log de requisições da API |
## 🛠️ Manutenção
### Fazer Backup
```powershell
.\backup.ps1
```
### Exportar para CSV
```powershell
.\export_csv.ps1
```
## ⚠️ Notas Importantes
1. **Porta 15432**: Usamos porta não-padrão para evitar conflitos com PostgreSQL local.
2. **Rede isolada**: O container roda em rede `pralog-net` para compatibilidade com Portainer.
3. **Restore manual**: O backup não é restaurado automaticamente ao iniciar o container.