Saltar al contenido principal
En un stack, conectas una app a una base de datos leyendo variables de entorno: la plataforma inyecta la URL de conexión y escribe los certificados de cliente de la base de datos en la carpeta /app/.vertra/certs/<database_id>/ de la app. Postgres y MongoDB llevan las rutas de los certificados dentro de la URL, así que la mayoría de los drivers no necesitan código adicional. Redis y MySQL necesitan unas pocas líneas que lean las rutas de los certificados desde variables. Esta página cubre la conexión propia del stack. Para los detalles de conexión de una base de datos a la que accedes desde fuera (tu ordenador, otro servicio), consulta ¿Cómo me conecto a cada motor? y la guía de conexión.

Variables que inyecta la plataforma

Cada conexión entre una app y una base de datos crea variables gestionadas en la app. Los nombres por defecto:
  • Postgres: la URL ya lleva sslmode, sslrootcert, sslcert y sslkey. Pasa siempre la URL al driver: las variables PG* por sí solas no bastan para algunos drivers, como pg de Node.js.
  • MongoDB: la URI lleva tls=true, el archivo de la CA (ca.pem) y el archivo del certificado de cliente (client.pem, certificado y clave juntos).
  • Redis y MySQL: la URL no lleva archivos, así que las rutas llegan en sus propias variables. Léelas en el código.
Los archivos están en /app/.vertra/certs/<database_id>/ como ca.pem, client.crt y client.key, además de client.pem (certificado y clave en un solo archivo, usado por MongoDB) y client.p12 (para Prisma 6) cuando la conexión los necesita. Son de solo lectura y propiedad de la plataforma, y las variables contienen rutas absolutas. El proceso de tu app los lee con normalidad. La carpeta está reservada: tus despliegues, restauraciones y rollbacks no eliminan ni recuperan certificados antiguos, queda fuera de las descargas y de los snapshots, y la plataforma reescribe los archivos en cada arranque. Puedes editar los nombres de las variables antes de crear una conexión.

Variables gestionadas

Una variable creada por una conexión muestra gestionada por el stack en la app y se actualiza sola cuando la base de datos cambia su contraseña o su certificado. Reinicia la app después de un cambio así; la plataforma te indica qué apps lo necesitan. Si editas a mano una variable gestionada, deja de estar gestionada y pasa a ser una variable normal, con una advertencia. Cuando restableces los certificados de una base de datos, la plataforma reescribe los archivos en las apps conectadas y pide un reinicio.

Más de una base de datos del mismo tipo

Un stack puede tener varias bases de datos del mismo motor, por ejemplo un Redis para caché y otro para una cola. Cada una es una base de datos normal con su propia memoria. La primera de cada motor recibe el nombre por defecto (REDIS_URL); las demás toman el nombre del servicio como prefijo (QUEUE_REDIS_URL, ANALYTICS_DATABASE_URL), y puedes editar los nombres antes de crear. Una base de datos puede conectarse a varias apps del stack (por ejemplo una API y un worker sobre el mismo Postgres), pero una base de datos pertenece a un solo stack.

Código por lenguaje

Los nombres de abajo son los predeterminados; si renombraste una variable, usa tu nombre. El panel Cómo conectar del panel de control (y get_connection_info con app_id en el servidor MCP, o la ruta de conexión del stack) muestra el mismo código con los nombres reales de tus variables, en el lenguaje de la app.
Postgres (pg)
MongoDB (mongodb)
Redis (ioredis)
Para MySQL (mysql2), lee MYSQL_URL y pasa ssl: { ca, cert, key } con los archivos MYSQL_SSL_*; mysql2 no comprueba que el nombre del host coincida con el certificado. Prisma 7 usa el adaptador pg, así que sirve la misma DATABASE_URL. Para los demás drivers, consulta ¿Cómo me conecto a cada motor?.
Otros lenguajes reciben un panel genérico que lista los nombres de las variables. La lista de drivers cubre las opciones propias de cada motor.

Si la conexión falla

  • Fallo de handshake o de autenticación: falta el certificado de cliente. Confirma que la app pasa la URL (Postgres, MongoDB) o lee las variables de certificado (Redis, MySQL).
  • La variable está vacía o desactualizada: reinicia la app después de un cambio de contraseña o de certificado en la base de datos.
  • Faltan los archivos de certificado en /app/.vertra/certs/: la plataforma los reescribe en cada arranque. Reinicia la app; no crees la carpeta tú mismo.

Relacionado

Stacks

Añade o quita una base de datos en un stack.

Bases de datos

Motores, certificados, restablecimientos y límites.
Última modificación el 30 de octubre de 2026