Saltar al contenido

Bases de datos ​

Add Service → Databases muestra PostgreSQL, MySQL, MariaDB, MongoDB, Redis y Valkey. Elige una versión en la fila y haz clic (o pulsa Enter): la base de datos se añade y se despliega.

Base de datosVersionesVolumen de datos
PostgreSQL18, 17, 16, 15, 14/var/lib/postgresql (18+) o /var/lib/postgresql/data
MySQL8.4 LTS, 9, 8.0/var/lib/mysql
MariaDB11.8 LTS, 11.4 LTS, 10.11 LTS/var/lib/mysql
MongoDB8.0, 7.0, 6.0/data/db
Redis8, 7.4, 7.2/data
Valkey8, 7.2/data

Cada base de datos recibe un volumen para sus datos, una contraseña generada y una comprobación de salud. La versión principal queda fijada: actualizarla más tarde requiere un volcado y una restauración.

Conéctate desde tu aplicación ​

Los demás servicios del proyecto llegan a la base de datos en <hostname>.zenavo.internal y reciben estas variables, con el nombre del nombre de host privado que tenía la base de datos al añadirla (postgresql → POSTGRESQL_…, postgresql-2 → POSTGRESQL_2_…). Su parte de host es ${CONTAINER_HOSTNAME}, así que sigue un cambio posterior del nombre de host:

VariableEjemplo
<NAME>_CONNECTION_STRINGpostgresql://postgres:…@postgresql.zenavo.internal:5432/zenavo
<NAME>_HOSTpostgresql.zenavo.internal
<NAME>_PORT5432
<NAME>_DB_PASSWORDla contraseña generada

La base de datos es privada para el proyecto. Para llegar a ella desde tu ordenador, publica un puerto TCP en Networking (Puertos TCP y UDP) o usa el panel Command del servicio.

Vista de base de datos ​

La pestaña Database de un servicio de base de datos muestra sus datos y ejecuta peticiones dentro del contenedor con el propio cliente de la base de datos, conectado por el socket local del contenedor o 127.0.0.1 con las credenciales de las variables del servicio. No se abre el puerto de la base de datos para ello, las credenciales nunca llegan al navegador y nada de lo que escribes pasa por un shell.

Quién puede ver datosLos miembros, administradores y propietarios del equipo. Los Viewer no pueden ver datos.
Quién puede cambiar datosLos administradores y propietarios del equipo.
Límites15 segundos, 2 MB de salida y dos peticiones a la vez por base de datos. Los resultados más largos se recortan y se indica.
Registro de auditoríaCada listado, página, consulta y comando se registra en el registro de auditoría del equipo con el servicio y el tipo de petición, nunca el SQL, las claves, los valores, los filtros ni los documentos, que pueden contener secretos.

El cliente se ejecuta como el usuario administrador de la base de datos, y los miembros del equipo ya pueden abrir un shell en el contenedor desde el panel Command, así que el modo de solo lectura de la vista protege contra cambios accidentales; no es un entorno aislado. Usa usuarios de base de datos con menos privilegios para lo que necesite una separación más estricta.

PostgreSQL, MySQL y MariaDB ​

La pestaña lista tablas y vistas con su número estimado de filas y sus columnas (las claves primarias están marcadas). Haz clic en una tabla para recorrer sus filas de 100 en 100, o cambia a SQL para ejecutar una sentencia y ver el resultado como tabla. Pulsa ⌘ Enter (Ctrl Enter) para ejecutarla; con texto seleccionado, solo se ejecuta la selección. Las consultas usan psql, o mysql / mariadb.

Solo lectura por defectoLas sentencias se ejecutan en una transacción de solo lectura y solo se aceptan SELECT, WITH, SHOW, EXPLAIN y DESCRIBE.
EscriturasUn administrador o propietario del equipo activa Allow writes para INSERT, UPDATE, DELETE y cambios de esquema. Se aplican de inmediato; haz antes una copia de seguridad.
Una sentencia cada vezSe rechazan los scripts con varias sentencias, los comandos del cliente (\!, source, system, …) y los comentarios ejecutables de MySQL (/*! … */).
Límites15 segundos de tiempo máximo por sentencia y 1.000 filas por consulta.

Redis y Valkey ​

Keys lista las claves con su tipo, tiempo de vida y tamaño en memoria. Elige la base de datos (db0, db1, …; la lista muestra cuántas claves tiene cada una) y escribe un patrón como user:*. Las claves se listan con SCAN, de 100 en 100, nunca con KEYS, que bloquea el servidor en bases de datos grandes; Scan more continúa. Haz clic en una clave para ver su valor:

TipoSe muestra como
stringEl valor, hasta 256 KB
hashCampos y valores, de 100 en 100 (HSCAN)
listElementos con su índice, de 100 en 100
setMiembros, de 100 en 100 (SSCAN)
sorted setMiembros y puntuaciones en orden, de 100 en 100
streamEntradas con sus campos, de 100 en 100

Los elementos se recortan a 4 KB. Los bytes que no son texto se muestran como \xHH. Los tipos de módulos (JSON, series temporales, …) muestran su tipo y tamaño; léelos con sus propios comandos.

Command ejecuta un comando, entrecomillado como en redis-cli: SET "my key" "a value". Pulsa Enter para ejecutarlo. Los comandos usan redis-cli o valkey-cli con la contraseña de REDIS_PASSWORD o VALKEY_PASSWORD.

Solo lectura por defectoSolo se aceptan comandos de lectura: GET, HGETALL, LRANGE, SCAN, TTL, INFO, …
EscriturasUn administrador o propietario del equipo activa Allow writes para los comandos que cambian claves y valores: SET, DEL, EXPIRE, HSET, LPUSH, ZADD, XADD, … Se aplican de inmediato.
Siempre rechazadosComandos que afectan a todo el servidor o a otros clientes: FLUSHALL, FLUSHDB, SWAPDB, CONFIG, SHUTDOWN, DEBUG, MODULE, ACL, CLIENT, MONITOR, SLOWLOG, REPLICAOF / SLAVEOF, MIGRATE, SAVE, BGSAVE, CLUSTER, FAILOVER; KEYS; scripts (EVAL, EVALSHA, SCRIPT, FUNCTION, FCALL); comandos bloqueantes (BLPOP, XREAD … BLOCK, WAIT, …); pub/sub, transacciones (MULTI, WATCH) y SELECT. También se rechazan los comandos que la vista no conoce.

Para cualquier otra cosa, ejecuta redis-cli o valkey-cli desde el panel Command.

MongoDB ​

La pestaña lista las bases de datos y sus colecciones con el número estimado de documentos (admin, config y local aparecen en System databases). Haz clic en una colección y escribe un filtro, un orden y una proyección en JSON, como {"status": "active"}, {"created": -1} y {"name": 1}; pulsa Enter para buscar. Los documentos se muestran de 50 en 50 como Extended JSON relajado: {"$oid": "…"} para los ObjectId, {"$date": "…"} para las fechas y {"$numberLong": "…"} para los enteros de 64 bits que un número de JavaScript no puede representar con exactitud. Usa las mismas formas en los filtros. Las peticiones usan mongosh, con MONGO_INITDB_ROOT_USERNAME y MONGO_INITDB_ROOT_PASSWORD.

BuscarUn filtro, un orden y una proyección de hasta 64 KB cada uno; como mucho 500 documentos por página. Los documentos de más de 256 KB solo muestran su _id; usa una proyección para ver una parte.
CambiosLos administradores y propietarios del equipo pueden hacer Insert de un documento, y actualizar o borrar un documento cada vez, buscado por su _id. Las actualizaciones usan operadores ($set, $unset, $inc, …); no se admite sustituir un documento entero. Las colecciones de sistema no se pueden cambiar.
RechazadoOperadores que ejecutan JavaScript en el servidor ($where, $function, $accumulator). No hay agregaciones ni runCommand; usa mongosh desde el panel Command para eso.

Sin relación con Zeabur.