Carlos Eduardo Gatti Ferreira

🗄️ Configuração do Banco de Dados Local - Wealth Tracker

Este guia explica como configurar o banco de dados local quando as tabelas foram deletadas ou quando você está configurando o ambiente pela primeira vez.

⚠️ IMPORTANTE: Onde Executar os Comandos

Os comandos do Prisma DEVEM ser executados no diretório do BACKEND, não no frontend!

Como Navegar para o Backend

Se você está no diretório do frontend (carlosgatti.github.io), navegue para o backend:

# Assumindo que o backend está no mesmo nível do frontend
cd ../boxhub-nest-api

# OU se o backend está em outro local, ajuste o caminho:
cd /caminho/para/boxhub-nest-api

O Prisma schema (schema.prisma) está apenas no backend, não no frontend!

📋 Pré-requisitos

🔧 Passo a Passo

1. Verificar Conexão com o Banco

Certifique-se de que o banco de dados está rodando:

# PostgreSQL
psql -U seu_usuario -d seu_banco

# MySQL
mysql -u seu_usuario -p seu_banco

2. Executar Migrações do Prisma

⚠️ CRÍTICO: Você DEVE estar no diretório do backend para executar estes comandos!

# 1. Navegar para o diretório do backend
cd ../boxhub-nest-api
# OU ajuste o caminho conforme sua estrutura de diretórios

# 2. Verificar se o schema.prisma existe
ls prisma/schema.prisma
# Se não existir, você está no diretório errado!

# 3. Gerar o Prisma Client
npx prisma generate

# 4. Aplicar todas as migrações
npx prisma migrate deploy

# OU criar uma nova migração se necessário
npx prisma migrate dev

⚠️ IMPORTANTE: Execute primeiro a seed de Apps, depois a seed de Assets!

Passo 3.1: Seed de Apps (OBRIGATÓRIO)

Os apps são necessários para o sistema de controle de acesso funcionar. Execute ANTES de criar usuários:

Opção A: Script TypeScript (Recomendado)

# No diretório do backend
npx ts-node ../carlosgatti.github.io/docs/02-setup/platform/seed-apps.ts

# OU se estiver no diretório do frontend
cd docs/02-setup/platform
npx ts-node seed-apps.ts

Opção B: SQL Direto

# PostgreSQL
psql -U seu_usuario -d seu_banco -f docs/02-setup/platform/seed-apps.sql

# MySQL
mysql -u seu_usuario -p seu_banco < docs/02-setup/platform/seed-apps.sql

Apps que serão criados:

Passo 3.2: Seed de Assets (Opcional mas Recomendado)

Execute o seed de assets principais:

Opção A: Script TypeScript (Recomendado)

# No diretório do backend
npx ts-node ../carlosgatti.github.io/docs/02-setup/apps/wealth-tracker/seed-assets.ts

# OU se estiver no diretório do frontend
cd docs/02-setup/apps/wealth-tracker
npx ts-node seed-assets.ts

Opção B: SQL Direto

# PostgreSQL
psql -U seu_usuario -d seu_banco -f docs/02-setup/apps/wealth-tracker/seed-assets.sql

# MySQL
mysql -u seu_usuario -p seu_banco < docs/02-setup/apps/wealth-tracker/seed-assets.sql

4. Verificar Tabelas Criadas

Verifique se as tabelas foram criadas corretamente:

-- PostgreSQL
\dt

-- MySQL
SHOW TABLES;

Você deve ver tabelas como:

5. Verificar Dados

Verifique se os apps e assets foram inseridos:

-- Verificar apps (deve ter pelo menos 3: WEALTH_TRACKER, DISCARD_ME, QRACK)
SELECT code, name FROM "App" ORDER BY code;

-- Verificar assets
SELECT COUNT(*) FROM "Asset";

-- Verificar categorias de cashflow
SELECT COUNT(*) FROM "CashflowCategory";

🔄 Recriar Banco do Zero

Se você precisa recriar o banco completamente:

Passo 1: Resetar o Banco (CUIDADO!)

# No diretório do backend
npx prisma migrate reset

# Isso vai:
# 1. Deletar todas as tabelas
# 2. Recriar o schema
# 3. Aplicar todas as migrações
# 4. Executar o seed (se configurado)

Passo 2: Executar Seed de Apps

# No diretório do backend
npx ts-node ../carlosgatti.github.io/docs/02-setup/platform/seed-apps.ts

Passo 3: Executar Seed de Assets

# No diretório do backend
npx ts-node ../carlosgatti.github.io/docs/02-setup/apps/wealth-tracker/seed-assets.ts

📝 Variáveis de Ambiente

Certifique-se de que o .env do backend está configurado:

DATABASE_URL="postgresql://usuario:senha@localhost:5432/wealth_tracker"
# OU
DATABASE_URL="mysql://usuario:senha@localhost:3306/wealth_tracker"

🐛 Troubleshooting

Erro: “Could not find Prisma schema” ou “schema.prisma: file not found”

Causa: Você está tentando executar comandos Prisma no diretório errado (frontend).

Solução:

  1. Verifique em qual diretório você está:
    pwd
    
  2. Se você estiver em carlosgatti.github.io (frontend), navegue para o backend:
    cd ../boxhub-nest-api
    # OU ajuste o caminho conforme necessário
    
  3. Verifique se o schema existe:
    ls prisma/schema.prisma
    
  4. Se o arquivo existir, você está no lugar certo. Execute os comandos Prisma novamente.

Erro: “Cannot connect to database”

  1. Verifique se o banco está rodando:
    # PostgreSQL
    pg_isready
       
    # MySQL
    mysqladmin ping
    
  2. Verifique a DATABASE_URL no .env do backend
  3. Verifique se o usuário tem permissões

Erro: “Table already exists”

Erro: “Migration failed”

  1. Verifique o log de migração
  2. Verifique se há conflitos de schema
  3. Tente fazer rollback e reaplicar:
    # No diretório do backend
    npx prisma migrate resolve --rolled-back <migration_name>
    

📚 Comandos Úteis

⚠️ Todos estes comandos devem ser executados no diretório do backend (boxhub-nest-api)!

# 1. Navegar para o backend
cd ../boxhub-nest-api

# 2. Ver status das migrações
npx prisma migrate status

# 3. Ver schema atual
npx prisma db pull

# 4. Gerar Prisma Client
npx prisma generate

# 5. Abrir Prisma Studio (GUI)
npx prisma studio

✅ Checklist de Verificação

Após configurar o banco, verifique:

🔗 Referências


Nota: Este guia assume que você está usando Prisma no backend. Se estiver usando outro ORM, ajuste os comandos conforme necessário.