A Veloz oferece bancos de dados gerenciados como serviços de primeira classe. Cada engine é provisionado automaticamente, com backups, variáveis de ambiente injetadas nos seus serviços e acesso local pela CLI.
Engines disponíveis
| Engine | Para quê | Versões | Documentação |
|---|---|---|---|
| PostgreSQL | Banco relacional principal, com PgBouncer e suporte a Prisma/Drizzle | 17, 16, 15, 14 | PostgreSQL |
| MySQL | Banco relacional alternativo, compatível com aplicações legadas | 8.4, 8.0 | MySQL |
| Redis | Cache, sessões, filas e pub/sub em memória | 7, 6 | Redis |
Se nenhuma versão for especificada, a Veloz usa a mais recente (PostgreSQL 17, MySQL 8.4, Redis 7).
Conceitos comuns
Os pontos abaixo valem para qualquer engine. As páginas específicas (acima) entram nas particularidades de cada um.
Tamanhos (size)
Os tamanhos seguem os mesmos nomes em todos os engines (basico, essencial, turbo, turbo-plus, nitro, nitro-plus), mas os recursos por tier mudam por engine. As tabelas exatas estão na página de cada banco.
O tamanho padrão é essencial. Você pode mudar com --size no veloz db create ou via databases.<nome>.size no veloz.json.
Status do banco
| Status | Descrição |
|---|---|
PENDING |
Aguardando deploy |
PROVISIONING |
Recursos sendo criados |
WAITING_ON_PROVIDER |
Aguardando engine ficar pronto (> 1 min) |
LIVE |
Pronto para uso |
FAILED |
Falha no provisionamento |
STOPPED |
Parado manualmente |
Variáveis de ambiente só são injetadas nos serviços quando o banco está em LIVE.
Variáveis de ambiente auto-injetadas
Quando um banco está LIVE, connection strings são injetadas automaticamente em todos os serviços do projeto.
Banco único de um tipo
Se existe apenas um banco de um engine no projeto, variáveis genéricas são injetadas:
DATABASE_URL, URL de conexão (PostgreSQL/MySQL)REDIS_URL, URL de conexão (Redis)
Variáveis com prefixo
Sempre injetadas, usando o nome do banco em UPPER_SNAKE_CASE como prefixo:
| Variável | Descrição |
|---|---|
{NOME}_DATABASE_URL |
URL de conexão direta |
{NOME}_HOST |
Hostname interno |
{NOME}_PORT |
Porta do engine |
{NOME}_USERNAME |
Usuário do banco |
{NOME}_PASSWORD |
Senha gerada automaticamente |
{NOME}_DATABASE |
Nome do database |
{NOME}_POOLER_URL |
URL via PgBouncer (PostgreSQL com pooler) |
{NOME}_POOLER_PORT |
Porta do pooler (6432) |
Exemplo: banco chamado postgres gera POSTGRES_DATABASE_URL, POSTGRES_HOST, etc.
Deploy atualiza bancos existentes
Ao rodar veloz deploy, se a configuração no veloz.json mudou em relação ao banco existente, o CLI aplica as alterações automaticamente:
- Tamanho (size), altera CPU/memória se o tier mudou (ex:
essencial→turbo) - Pooler, ativa/desativa PgBouncer ou altera o pool mode (apenas PostgreSQL)
- Storage, redimensiona o volume se o novo tamanho é maior (volumes só crescem, nunca diminuem)
O banco precisa estar LIVE para aceitar alterações de tamanho e pooler.
Acesso local
Todos os engines suportam dois modos de acesso a partir da sua máquina:
- Túnel local com
veloz db tunnel <nome>, abre uma porta local que você conecta com qualquer GUI (DBeaver, pgAdmin, TablePlus, RedisInsight, etc.) - Query rápida com
veloz db query <nome>, executa SQL ou comandos Redis sem abrir túnel
Os exemplos completos estão na página de cada engine.
Limites
- Máximo de 5 bancos por projeto
- Armazenamento mínimo: 10 GB
- Volumes só crescem, não é possível reduzir o tamanho do disco
Próximos passos
- PostgreSQL, tamanhos, PgBouncer, Prisma/Drizzle, túnel
- MySQL, tamanhos, conexão e migrations
- Redis, tamanhos, key patterns, dashboard
- Variáveis de Ambiente, como referenciar e compor connection strings
- veloz.json, seção
databasescompleta