MockzillaMockzilla

Drivers de armazenamento

Atualizado em 29 de set. de 2026·4 min de leitura

Um driver de armazenamento decide onde um backend self-hosted guarda o histórico de requisições, os replays e os dados de sandbox, como os pagamentos que os seus testes criam. O backend escolhe um ao iniciar, por STORAGE_TYPE. Sem nada definido, ele guarda tudo na memória.

Os drivers

  • Memory: o padrão. Nada para rodar, e nada fica quando o contêiner para.
  • Redis
  • SQLite: um arquivo num volume. Nada para rodar.
  • PostgreSQL
  • MySQL / MariaDB
  • SQL Server
  • Oracle
  • CockroachDB
  • MongoDB
  • DynamoDB: uma tabela na sua conta da AWS, sem nenhum servidor para rodar. O backend pega as credenciais da AWS dos lugares de sempre: variáveis de ambiente, um arquivo de configuração ou o papel da máquina onde ele roda.

Todos os drivers estão incluídos no preço.

Escolher quais drivers uma imagem tem

Abra as Configurações do backend e selecione os drivers em Drivers de armazenamento. Uma mudança vale a partir do próximo build.

  • Sem nenhum selecionado, a imagem tem todos os drivers.
  • Memory e Redis estão em todas as imagens.

Uma imagem pode ter vários drivers, por exemplo SQLite para um notebook e PostgreSQL para a CI. Para ver o que uma imagem tem:

docker run --rm <image> storage drivers

Aqui <image> é a sua imagem com a versão, como <sua-org>.registry.mockzilla.org/ci-payments:v2026.09.23.3.

Configurar um

Abra a aba Drivers de armazenamento do backend e escolha um driver. A aba mostra as versões em que ele foi testado, como conectar e cada variável que ele lê.

Drivers de armazenamento: PostgreSQL, as versões em que ele foi testado e como conectar.

Para PostgreSQL:

docker run -d --name ci-payments --restart unless-stopped -p 2200:2200 \
  -e STORAGE_TYPE=postgres \
  -e POSTGRES_URL=postgres://mockzilla:secret@db.internal:5432/mockzilla \
  <image>

A imagem lista as mesmas variáveis:

docker run --rm -e STORAGE_TYPE=postgres <image> storage settings

O esquema

Um driver de banco de dados precisa das tabelas dele. Memory e Redis não precisam de nenhuma.

Por padrão, o backend cria o esquema no primeiro início e atualiza quando você muda para uma versão nova. Isso é seguro a cada início, e também quando várias cópias iniciam ao mesmo tempo. Para isso ele precisa de permissão para criar as tabelas: um usuário de banco de dados que possa criar tabelas, ou credenciais da AWS que possam criar a tabela do DynamoDB.

Sem essa permissão, instale o esquema você mesmo:

  1. Defina STORAGE_INSTALL=false no backend. Ele passa a só conferir o esquema. Se ele falta ou está desatualizado, o backend não inicia e diz o que aplicar.
  2. Instale o esquema uma vez, como um usuário que pode criar o esquema. A imagem faz isso e termina.

Para o segundo passo, rode a imagem com storage install e as configurações do driver:

docker run --rm \
  -e STORAGE_TYPE=postgres \
  -e POSTGRES_URL=postgres://admin:secret@db.internal:5432/mockzilla \
  <image> storage install

Com um banco de dados SQL, você pode em vez disso entregar o SQL ao seu DBA. A imagem imprime o SQL:

docker run --rm -e STORAGE_TYPE=postgres <image> storage print > mockzilla-postgres.sql

Parte do SQL vale só para certas versões do servidor. Adicione --server-version com a sua ao storage print, e ele imprime só o que se aplica. Os mesmos arquivos SQL também ficam junto da imagem, na pasta storage dela.

A tabela do DynamoDB você também pode criar, por exemplo com Terraform. Dê a ela a chave de partição pk e a chave de classificação sk, as duas do tipo string, e ligue o TTL no atributo ttl. Depois defina STORAGE_INSTALL=false.

Quando você muda para uma versão nova, instale o esquema dela antes de trocar. Um backend com o esquema desatualizado não inicia.

Para onde ir agora

Esta página ajudou?