Fazer deploy ↗
docs

Bancos de Dados

Bancos de dados gerenciados na Veloz — PostgreSQL, MySQL e Redis com provisioning automático.

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: essencialturbo)
  • 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