Correcao Sidebar Classico e Rail, Correcao Layout, Ajuste de Breakpoint para Tailwind, Ajuste AppTopbar, Ajuste Menu PopOver, Recriado Paleta de Cores, Inserido algumas animações leves, Reajuste Cor items NOVOS da tabela, Drawer Ajuda Corrigido no Logout, Whatsapp, sms, email, recursos extras
This commit is contained in:
297
database-novo/docs/setup_guide.md
Normal file
297
database-novo/docs/setup_guide.md
Normal file
@@ -0,0 +1,297 @@
|
||||
# Guia de Instalação e Uso — AgenciaPsi Database
|
||||
|
||||
## Pré-requisitos
|
||||
|
||||
1. **Docker Desktop** instalado e rodando
|
||||
2. **Node.js** 18+ instalado
|
||||
3. **Supabase CLI** instalado (`npm install -g supabase`)
|
||||
|
||||
## Instalação do Zero (banco vazio)
|
||||
|
||||
### 1. Iniciar o Supabase
|
||||
|
||||
```bash
|
||||
# Na raiz do projeto (agenciapsi-primesakai/)
|
||||
npx supabase start
|
||||
```
|
||||
|
||||
Aguarde até o container `supabase_db_agenciapsi-primesakai` estar rodando.
|
||||
|
||||
### 2. Verificar se o container está ok
|
||||
|
||||
```bash
|
||||
docker ps | grep supabase_db
|
||||
```
|
||||
|
||||
Deve mostrar o container com status `Up`.
|
||||
|
||||
### 3. Instalar o banco completo
|
||||
|
||||
```bash
|
||||
cd database-novo
|
||||
node db.cjs setup
|
||||
```
|
||||
|
||||
Isso faz tudo automaticamente:
|
||||
- Aplica o schema completo (84 tabelas, funções, triggers, policies)
|
||||
- Aplica os 7 fixes conhecidos
|
||||
- Cria os 11 usuários de teste
|
||||
- Cria os 7 planos + 4 preços
|
||||
- Cria as 26 features + 85 vínculos plano↔feature
|
||||
- Cria as 9 subscriptions + compromissos determinados
|
||||
- Cria os templates de email, notificação e carousel
|
||||
- Cria backup automático pós-instalação
|
||||
- Verifica integridade no final
|
||||
|
||||
### 4. Verificar
|
||||
|
||||
```bash
|
||||
node db.cjs status
|
||||
```
|
||||
|
||||
Deve mostrar todos os counts verdes.
|
||||
|
||||
## Backup
|
||||
|
||||
### Criar backup manual
|
||||
|
||||
```bash
|
||||
node db.cjs backup
|
||||
```
|
||||
|
||||
Salva em `backups/YYYY-MM-DD/` com 3 arquivos:
|
||||
- `schema.sql` — estrutura do banco
|
||||
- `data.sql` — dados (sem schemas de infra)
|
||||
- `full_dump.sql` — tudo junto
|
||||
|
||||
### Backup automático
|
||||
|
||||
O backup é feito automaticamente:
|
||||
- Após o `setup`
|
||||
- Antes de cada `migrate`
|
||||
- Antes de cada `restore`
|
||||
- Antes de cada `reset`
|
||||
|
||||
### Retenção
|
||||
|
||||
Backups com mais de 30 dias são removidos automaticamente. Para alterar, edite `backupRetentionDays` no `db.config.json`.
|
||||
|
||||
## Restaurar o Banco
|
||||
|
||||
### Restaurar do último backup
|
||||
|
||||
```bash
|
||||
node db.cjs restore
|
||||
```
|
||||
|
||||
### Restaurar de uma data específica
|
||||
|
||||
```bash
|
||||
node db.cjs restore 2026-03-23
|
||||
```
|
||||
|
||||
O restore:
|
||||
1. Cria backup de segurança do estado atual
|
||||
2. Limpa o schema public
|
||||
3. Aplica o full_dump.sql do backup
|
||||
4. Verifica integridade
|
||||
|
||||
## Migrations (alterações no banco)
|
||||
|
||||
### Criar uma migration
|
||||
|
||||
Crie um arquivo SQL na pasta `migrations/` com nome sequencial:
|
||||
|
||||
```
|
||||
migrations/
|
||||
├── 001_add_column_x.sql
|
||||
├── 002_create_table_y.sql
|
||||
└── 003_fix_something.sql
|
||||
```
|
||||
|
||||
O nome deve começar com número para garantir a ordem.
|
||||
|
||||
### Aplicar migrations pendentes
|
||||
|
||||
```bash
|
||||
node db.cjs migrate
|
||||
```
|
||||
|
||||
O CLI:
|
||||
1. Cria backup automático
|
||||
2. Compara com a tabela `_db_migrations` no banco
|
||||
3. Aplica apenas as que ainda não foram executadas
|
||||
4. Registra cada migration aplicada
|
||||
5. Se uma falhar, para imediatamente (use `restore` para voltar)
|
||||
|
||||
### Ver migrations aplicadas
|
||||
|
||||
```bash
|
||||
node db.cjs status
|
||||
```
|
||||
|
||||
## Seeds (dados de teste)
|
||||
|
||||
### Rodar todos os seeds
|
||||
|
||||
```bash
|
||||
node db.cjs seed all # ou simplesmente: node db.cjs seed
|
||||
```
|
||||
|
||||
### Rodar grupo específico
|
||||
|
||||
```bash
|
||||
node db.cjs seed users # Apenas usuários (seed_001 a 003)
|
||||
node db.cjs seed system # Apenas sistema (seed_010 a 014)
|
||||
node db.cjs seed test_data # Dados de teste (seed_020)
|
||||
```
|
||||
|
||||
### Ordem dos seeds
|
||||
|
||||
| # | Arquivo | O que faz |
|
||||
|---|---------|-----------|
|
||||
| 1 | `seed_001_fixed.sql` | 6 usuários base + tenants |
|
||||
| 2 | `seed_002.sql` | Supervisor + Editor |
|
||||
| 3 | `seed_003.sql` | Therapist2, Therapist3, Secretary |
|
||||
| 4 | `seed_010_plans.sql` | 7 planos + 4 preços |
|
||||
| 5 | `seed_011_features.sql` | 26 features |
|
||||
| 6 | `seed_012_plan_features.sql` | 85 vínculos plano↔feature |
|
||||
| 7 | `seed_013_subscriptions.sql` | 9 subscriptions + compromissos |
|
||||
| 8 | `seed_014_global_data.sql` | Templates + carousel |
|
||||
|
||||
## Outros Comandos
|
||||
|
||||
### Ver status
|
||||
|
||||
```bash
|
||||
node db.cjs status
|
||||
```
|
||||
|
||||
Mostra: container, backups, migrations aplicadas/pendentes, counts de todas as tabelas.
|
||||
|
||||
### Comparar mudanças
|
||||
|
||||
```bash
|
||||
node db.cjs diff
|
||||
```
|
||||
|
||||
Compara o schema atual no banco com o último backup. Mostra tabelas adicionadas, removidas ou alteradas.
|
||||
|
||||
### Verificar integridade
|
||||
|
||||
```bash
|
||||
node db.cjs verify
|
||||
```
|
||||
|
||||
Checa se os dados essenciais existem (plans, features, subscriptions, etc).
|
||||
|
||||
### Reset completo
|
||||
|
||||
```bash
|
||||
node db.cjs reset
|
||||
```
|
||||
|
||||
**⚠ CUIDADO**: Apaga tudo e reinstala do zero. Cria backup antes.
|
||||
|
||||
## Estrutura de Pastas
|
||||
|
||||
```
|
||||
database-novo/
|
||||
├── db.js ← CLI principal
|
||||
├── db.config.json ← Configuração (container, seeds, fixes)
|
||||
│
|
||||
├── schema/ ← Schema SQL separado por seção
|
||||
│ ├── 00_full/ ← Schema completo (referência)
|
||||
│ ├── 01_extensions/ ← Extensões PostgreSQL
|
||||
│ ├── 02_types/ ← Enums e tipos
|
||||
│ ├── 03_functions/ ← Funções (11 arquivos por domínio)
|
||||
│ ├── 04_tables/ ← Tabelas (10 arquivos por domínio)
|
||||
│ ├── 05_views/ ← 24 views
|
||||
│ ├── 06_indexes/ ← Índices
|
||||
│ ├── 07_foreign_keys/ ← PKs, FKs, constraints
|
||||
│ ├── 08_triggers/ ← Triggers
|
||||
│ ├── 09_policies/ ← 217 RLS policies
|
||||
│ └── 10_grants/ ← Grants
|
||||
│
|
||||
├── seeds/ ← Seeds de dados
|
||||
│ ├── seed_001_fixed.sql
|
||||
│ ├── ...
|
||||
│ └── run_all_seeds.sh
|
||||
│
|
||||
├── migrations/ ← Migrations (alterações incrementais)
|
||||
│
|
||||
├── fixes/ ← Correções aplicadas
|
||||
│
|
||||
├── backups/ ← Backups com data
|
||||
│ ├── 2026-03-23/
|
||||
│ └── ...
|
||||
│
|
||||
└── docs/ ← Documentação
|
||||
├── setup_guide.md ← Este arquivo
|
||||
├── schema_map.md ← Mapa de 84 tabelas
|
||||
├── business_rules.md ← Regras de negócio
|
||||
└── users_test.md ← Usuários de teste
|
||||
```
|
||||
|
||||
## Credenciais de Teste
|
||||
|
||||
| Email | Senha | Tipo |
|
||||
|-------|-------|------|
|
||||
| paciente@agenciapsi.com.br | Teste@123 | Paciente |
|
||||
| terapeuta@agenciapsi.com.br | Teste@123 | Terapeuta solo |
|
||||
| clinica1@agenciapsi.com.br | Teste@123 | Clínica coworking |
|
||||
| clinica2@agenciapsi.com.br | Teste@123 | Clínica recepção |
|
||||
| clinica3@agenciapsi.com.br | Teste@123 | Clínica full |
|
||||
| saas@agenciapsi.com.br | Teste@123 | Admin plataforma |
|
||||
| supervisor@agenciapsi.com.br | Teste@123 | Supervisor |
|
||||
| editor@agenciapsi.com.br | Teste@123 | Editor |
|
||||
| therapist2@agenciapsi.com.br | Teste@123 | Terapeuta |
|
||||
| therapist3@agenciapsi.com.br | Teste@123 | Terapeuta |
|
||||
| secretary@agenciapsi.com.br | Teste@123 | Secretária |
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### "Container não está rodando"
|
||||
|
||||
```bash
|
||||
# Verificar
|
||||
docker ps | grep supabase
|
||||
|
||||
# Reiniciar
|
||||
npx supabase stop
|
||||
npx supabase start
|
||||
```
|
||||
|
||||
### "Tabela não existe" após setup
|
||||
|
||||
O schema pode não ter sido aplicado corretamente. Rode:
|
||||
|
||||
```bash
|
||||
node db.cjs reset
|
||||
```
|
||||
|
||||
### "Permission denied" / RLS bloqueando
|
||||
|
||||
Se features/plan_features estiverem vazios, o RLS bloqueia tudo. Rode:
|
||||
|
||||
```bash
|
||||
node db.cjs seed system
|
||||
```
|
||||
|
||||
### Migration falhou no meio
|
||||
|
||||
```bash
|
||||
# Voltar ao estado anterior
|
||||
node db.cjs restore
|
||||
|
||||
# Corrigir o SQL da migration, depois tentar de novo
|
||||
node db.cjs migrate
|
||||
```
|
||||
|
||||
### Quero começar do zero
|
||||
|
||||
```bash
|
||||
node db.cjs reset
|
||||
```
|
||||
|
||||
Isso apaga tudo, reaplica schema, fixes, seeds, e verifica.
|
||||
Reference in New Issue
Block a user