MockzillaMockzilla

Drivers de almacenamiento

Actualizado el 29 sept 2026·4 min de lectura

Un driver de almacenamiento decide dónde guarda un backend self-hosted su historial de solicitudes, sus replays y sus datos de sandbox, como los pagos que crean tus pruebas. El backend elige uno al arrancar, según STORAGE_TYPE. Sin nada definido, guarda todo en memoria.

Los drivers

  • Memory: el predeterminado. Nada que correr, y no queda nada cuando el contenedor se detiene.
  • Redis
  • SQLite: un archivo en un volumen. Nada que correr.
  • PostgreSQL
  • MySQL / MariaDB
  • SQL Server
  • Oracle
  • CockroachDB
  • MongoDB
  • DynamoDB: una tabla en tu cuenta de AWS, sin ningún servidor que correr. El backend toma sus credenciales de AWS de los lugares de siempre: variables de entorno, un archivo de configuración o el rol de la máquina donde corre.

Todos los drivers están incluidos en el precio.

Elegir qué drivers tiene una imagen

Abre la Configuración del backend y selecciona los drivers en Drivers de almacenamiento. Un cambio vale desde el próximo build.

  • Sin ninguno seleccionado, la imagen tiene todos los drivers.
  • Memory y Redis están en todas las imágenes.

Una imagen puede tener varios drivers, por ejemplo SQLite para una laptop y PostgreSQL para CI. Para ver lo que tiene una imagen:

docker run --rm <image> storage drivers

Aquí <image> es tu imagen con su versión, como <tu-org>.registry.mockzilla.org/ci-payments:v2026.09.23.3.

Configurar uno

Abre la pestaña Drivers de almacenamiento del backend y elige un driver. La pestaña muestra las versiones en las que se probó, cómo conectarse y cada variable que lee.

Drivers de almacenamiento: PostgreSQL, las versiones en las que se probó y cómo conectarse.

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>

La imagen lista las mismas variables:

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

El esquema

Un driver de base de datos necesita sus tablas. Memory y Redis no necesitan ninguna.

De forma predeterminada, el backend crea el esquema en su primer arranque y lo actualiza cuando pasas a una versión nueva. Es seguro en cada arranque, y también cuando varias copias arrancan a la vez. Para eso necesita permiso para crearlas: un usuario de base de datos que pueda crear tablas, o credenciales de AWS que puedan crear la tabla de DynamoDB.

Sin ese permiso, instala el esquema tú mismo:

  1. Define STORAGE_INSTALL=false en el backend. Entonces solo revisa el esquema. Si falta o está desactualizado, el backend no arranca y dice qué aplicar.
  2. Instala el esquema una vez, como un usuario que puede crearlo. La imagen lo hace y termina.

Para el segundo paso, corre la imagen con storage install y la configuración del driver:

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

Con una base de datos SQL, en cambio puedes pasarle el SQL a tu DBA. La imagen lo imprime:

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

Parte del SQL es solo para ciertas versiones del servidor. Agrega --server-version con la tuya a storage print, y solo imprime lo que corresponde. Los mismos archivos SQL también van junto a la imagen, en su carpeta storage.

La tabla de DynamoDB también la puedes crear tú, por ejemplo con Terraform. Dale la clave de partición pk y la clave de ordenación sk, las dos de tipo string, y activa el TTL en el atributo ttl. Después define STORAGE_INSTALL=false.

Cuando pasas a una versión nueva, instala su esquema antes de cambiar. Un backend con el esquema desactualizado no arranca.

A dónde ir después

¿Te sirvió esta página?