Drivers de armazenamento
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 driversAqui <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ê.
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 settingsO 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:
- Defina
STORAGE_INSTALL=falseno backend. Ele passa a só conferir o esquema. Se ele falta ou está desatualizado, o backend não inicia e diz o que aplicar. - 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 installCom 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.sqlParte 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.