🌱 Seed de Assets Principais - Wealth Tracker
Este documento explica como popular o banco de dados com os principais assets para o Wealth Tracker.
💡 Dica: Se o banco local foi deletado, veja o guia completo de setup em local-database-setup.md
📋 Conteúdo
Este seed inclui aproximadamente 80+ assets principais:
- 14 ETFs (SPY, QQQ, VTI, VOO, etc.)
- 35 Stocks (AAPL, MSFT, GOOGL, TSLA, ações brasileiras, etc.)
- 15 Cryptos (BTC, ETH, SOL, ADA, etc.)
- 9 Cash (moedas fiat: USD, EUR, BRL, etc.)
- 3 Real Estate (exemplos)
🚀 Como Usar
Opção 1: SQL Direto (PostgreSQL/MySQL)
Execute o arquivo SQL diretamente no banco:
# PostgreSQL
psql -U seu_usuario -d wealth_tracker -f docs/02-setup/apps/wealth-tracker/seed-assets.sql
# MySQL
mysql -u seu_usuario -p wealth_tracker < docs/02-setup/apps/wealth-tracker/seed-assets.sql
Opção 2: Script TypeScript (Recomendado)
Se você está usando Prisma:
- Certifique-se de que o Prisma está configurado:
npm install @prisma/client
npx prisma generate
- Execute o script:
# Usando ts-node
npx ts-node docs/02-setup/apps/wealth-tracker/seed-assets.ts
# Ou compile e execute
tsc docs/02-setup/apps/wealth-tracker/seed-assets.ts
node docs/02-setup/apps/wealth-tracker/seed-assets.js
- Ou adicione ao package.json:
{
"scripts": {
"seed:assets": "ts-node docs/02-setup/apps/wealth-tracker/seed-assets.ts"
}
}
Depois execute:
Opção 3: Via Prisma Seed
Adicione ao seu prisma/seed.ts:
import { seedAssets } from '../docs/02-setup/apps/wealth-tracker/seed-assets';
async function main() {
await seedAssets();
}
main()
.catch((e) => {
console.error(e);
process.exit(1);
})
.finally(async () => {
// await prisma.$disconnect();
});
Execute:
📝 Estrutura dos Assets
Cada asset possui:
- type:
STOCK, ETF, CRYPTO, CASH, ou REAL_ESTATE
- ticker: Código do ativo (ex: “AAPL”, “BTC”) - obrigatório para STOCK/ETF/CRYPTO, null para CASH/REAL_ESTATE
- name: Nome completo do ativo
- currency: Moeda base (“USD”, “BRL”, “EUR”, etc.)
- exchange: Bolsa/exchange (ex: “NYSE”, “NASDAQ”, “B3”, “Binance”) - pode ser null
⚠️ Importante
Desenvolvimento
- ✅ Execute o seed sempre que resetar o banco local
- ✅ Use para testes e desenvolvimento
- ✅ O script verifica duplicatas antes de inserir
Produção
- ⚠️ Execute apenas na primeira instalação
- ⚠️ Faça backup antes de executar
- ⚠️ Revise os assets antes de executar
- ⚠️ Considere criar um script de migração
Personalização
Você pode:
- Adicionar mais assets editando os arquivos
seed-assets.sql ou seed-assets.ts
- Remover assets que não são relevantes para seu caso
- Ajustar exchanges conforme sua preferência
- Adicionar metadata se necessário
🔄 Atualização
Para atualizar o seed:
- Edite os arquivos
seed-assets.sql ou seed-assets.ts
- Adicione novos assets à lista
- Execute novamente (o script pula duplicatas automaticamente)
📊 Assets Incluídos
ETFs Principais
- SPY (S&P 500)
- QQQ (Nasdaq 100)
- VTI (Total Stock Market)
- VOO (S&P 500 Vanguard)
- E mais…
Stocks Principais
- Tech: AAPL, MSFT, GOOGL, AMZN, META, TSLA, NVDA, NFLX
- Finance: JPM, BAC, WFC, GS
- Consumer: WMT, HD, MCD, NKE, SBUX
- Healthcare: JNJ, PFE, UNH, ABBV
- Energy: XOM, CVX
- Brasileiras: PETR4, VALE3, ITUB4, BBDC4, ABEV3
- E mais…
Cryptos Principais
- BTC, ETH, BNB, SOL, ADA, XRP, DOT, DOGE, MATIC, AVAX, LINK, UNI, ATOM, ALGO, LTC
Cash
- USD, EUR, GBP, BRL, JPY, CAD, AUD, CHF, CNY
Real Estate
- Exemplos de propriedades residenciais e comerciais
🐛 Troubleshooting
Erro: “Asset already exists”
- ✅ Normal! O script pula assets duplicados automaticamente
- Se quiser forçar, delete os assets existentes primeiro
Erro: “Ticker is required”
- ✅ Verifique se STOCK/ETF/CRYPTO têm ticker
- ✅ CASH/REAL_ESTATE devem ter ticker = null
Erro: “Cannot connect to database”
- ✅ Verifique as variáveis de ambiente (DATABASE_URL)
- ✅ Certifique-se de que o banco está rodando
- ✅ Verifique permissões do usuário
📚 Referências
🔗 Arquivos Relacionados
seed-assets.sql - Script SQL puro
seed-assets.ts - Script TypeScript com Prisma
- Wealth Tracker Docs - Documentação geral do Wealth Tracker
Última atualização: Dezembro 2024
Versão: 1.0.0