Guías

Bases de datos

Las bases de datos gestionadas viven dentro de un entorno, junto a las apps que las usan. Al conectar una a una app, sus credenciales se inyectan automáticamente.

Motores compatibles

MotorAislamientoNotas
postgresCompartida o dedicadaEl motor con mejor soporte y el único con explorador de tablas. Postgres compartida permite hacer y restaurar copias de seguridad por tu cuenta.
redisCompartida o dedicadaCaché, colas y sesiones. Redis compartida no tiene copias de seguridad; Redis dedicada permite hacerlas y restaurarlas por tu cuenta.
mariadbSolo dedicadaCompatible con MySQL.
mysqlSolo dedicada 
mongodbSolo dedicada 

Compartida frente a dedicada

Una base de datos compartida es un inquilino dentro de una instancia común: más barata, rápida de crear y adecuada para desarrollo y cargas pequeñas. Una base de datos dedicada tiene su propia instancia, con su propia CPU, memoria y disco.

El nivel starter es compartido por defecto; standard y pro son siempre dedicados.

Niveles

NivelAislamientoAlmacenamiento máximo
starterCompartida por defecto10 GiB
standardDedicada20 GiB
proDedicada100 GiB

Todas las bases de datos empiezan con 10 GiB de almacenamiento, sea cual sea su nivel; el nivel fija hasta dónde pueden crecer.

Los niveles son tamaños de base de datos, no planes

El almacenamiento de una base de datos cuenta para el almacenamiento persistente de tu plan: 10 GiB en Starter, 20 GiB en Standard, 50 GiB en Pro y 150 GiB en Scale, más el almacenamiento adicional que compres. El máximo de un nivel puede ser mayor que lo que le queda a tu plan, así que revisa los límites de tu plan antes de elegirlo.

Crear una base de datos

Desde la consola, abre el lienzo del entorno y añade una base de datos. Desde la CLI:

bash
$ codaracloud databases create main-db \    --engine postgres \    --tier standard \    --client my-workspace \    --project website \    --env production $ codaracloud databases list --client my-workspace

Algunas decisiones son permanentes

El motor, la versión, el aislamiento y la región no se pueden cambiar después de crear la base de datos. El nivel, las réplicas, el tamaño del almacenamiento y el pooling de conexiones sí se pueden cambiar más tarde con codaracloud databases upgrade. Si necesitas otro motor u otro aislamiento, crea una base de datos nueva y migra los datos.

Conectarla a una app

Al conectar una base de datos, sus credenciales se añaden a la app como variables de entorno y la app se reinicia para cargarlas. Nunca tienes que copiar una contraseña a mano.

bash
$ codaracloud apps connections add my-api main-db --client my-workspace # Rename the injected variables with a prefix$ codaracloud apps connections add my-api cache-db --as CACHE --client my-workspace $ codaracloud apps connections list my-api --client my-workspace

Qué se inyecta

Postgres:

VariableContiene
DATABASE_URLLa URL de conexión que debe usar tu app.
DATABASE_DIRECT_URLUna conexión directa, sin pasar por ningún pooler. Suele ser la que piden las herramientas de migración.
DATABASE_HOST / PORT / NAME / USER / PASSWORDLos mismos datos por separado.

Redis proporciona REDIS_URL y sus componentes; MySQL y MariaDB, MYSQL_URL; MongoDB, MONGODB_URL. Sin --as, el prefijo es el nombre de la base de datos; si ya coincide con el prefijo de un motor, claves como DATABASE_URL y REDIS_URL no se duplican. Un --as CACHE explícito añade el prefijo a todas las claves, por ejemplo CACHE_REDIS_URL y CACHE_PASSWORD.

Pooling de conexiones

Las bases de datos Postgres compartidas se sirven a través de un pooler de conexiones. Postgres dedicada se conecta de momento directamente, así que ahí la URL con pooler y la directa tienen el mismo valor. En cualquier caso, usa DATABASE_URL para tu aplicación y DATABASE_DIRECT_URL para las migraciones.

Conectarte desde tu máquina

Para inspeccionar una base de datos en local, abre un túnel a través de la plataforma. No necesitas ningún tipo de acceso al clúster:

bash
# Opens a local tunnel; Ctrl-C to stop$ codaracloud databases proxy main-db --client my-workspace --local-port 5432 # In another terminal$ psql "postgresql://user:pass@127.0.0.1:5432/main-db"

Para ver las credenciales:

bash
# Masked by default$ codaracloud databases connection main-db --client my-workspace # Show the password and full URL$ codaracloud databases connection main-db --client my-workspace --reveal

Un token de API necesita el scope db:connect para abrir un túnel. Puedes elegirlo tanto en la pantalla de tokens de la consola como en la CLI.

Explorador de tablas

La consola incluye un explorador de tablas de solo lectura para las bases de datos Postgres: abre la base de datos y elige Abrir DB Studio. Muestra las tablas y recorre las filas por páginas. Es de solo lectura a propósito y no acepta SQL arbitrario; para eso, usa un túnel y tu propio cliente.

Copias de seguridad

Comprueba la protección de cada recurso: que un motor sea compatible no demuestra que exista una copia de seguridad reciente y utilizable. La protección depende del motor, del modo de aislamiento y de la configuración de copias que tengas activada. Antes de confiar en ella, verifica la última copia correcta y si se puede restaurar.

Las copias programadas activadas siguen la expresión cron configurada en la base de datos; por defecto, la plataforma las hace a diario a las 03:00. Se guardan en almacenamiento de objetos de otro proveedor.

MotorCopias de seguridadRestauración
Postgres (compartida)Volcado diario, si lo activasPor tu cuenta
Postgres (dedicada)Siempre activas: copia base semanal más archivado continuo de WALLa hace Codara: pídela a soporte
Redis (compartida)Ninguna: las claves pueden desalojarseNinguna
Redis (dedicada)Volcado diario, si lo activasPor tu cuenta
MariaDB, MySQL, MongoDBVolcado diario, si lo activasLa hace Codara: pídela a soporte

En los planes de autoservicio, las copias de seguridad se conservan como máximo 7 días. Cada restauración crea una base de datos nueva.

Postgres dedicada siempre tiene copias de seguridad

No puedes desactivar las copias de seguridad de una base de datos Postgres dedicada. Es así a propósito.

No todas las bases de datos las puedes restaurar tú

No des por hecho que todos los motores o modos de aislamiento están protegidos. Puedes restaurar tú Postgres compartida y Redis dedicada. Las restauraciones de Postgres dedicada, MariaDB, MySQL y MongoDB las hace Codara cuando las pides. Redis compartida no tiene copias de seguridad. Los volcados de MariaDB, MySQL y MongoDB no aparecen en la lista de copias de la CLI ni de la API, aunque se estén haciendo. Si cuentas con poder restaurar rápido por tu cuenta, usa Postgres compartida.

Hacer una copia de seguridad a demanda

bash
$ codaracloud databases backup main-db --wait --client my-workspace

Disponible para Postgres (compartida y dedicada) y Redis dedicada, una vez por base de datos y día UTC. Con --wait, el comando termina cuando la copia es un punto de recuperación completo.

Restaurar

Una restauración siempre crea una base de datos nueva: nunca sobrescribe la original. Mientras existen las dos copias, la restauración necesita capacidad temporal. Cuando hayas comprobado los datos restaurados, apunta tu app a la base de datos nueva. Los comandos de abajo sirven para Postgres compartida y Redis dedicada.

bash
$ codaracloud databases restore main-db \    --from <backup-name> \    --as main-db-recovered \    --client my-workspace # Then repoint the app$ codaracloud apps connections rm my-api main-db --client my-workspace$ codaracloud apps connections add my-api main-db-recovered --client my-workspace

Ampliar una base de datos

bash
$ codaracloud databases upgrade main-db \    --tier pro \    --storage-size 50Gi \    --client my-workspace

El almacenamiento solo puede crecer, nunca reducirse. Las bases de datos también pueden ampliar su propio disco automáticamente cuando se acercan a su capacidad, hasta el máximo del nivel.

Eliminar una base de datos

bash
# Shared Postgres: take it offline and retain its data$ codaracloud databases delete main-db --client my-workspace --confirm main-db # Bring the same data back with a fresh credential$ codaracloud databases reactivate main-db --client my-workspace # Permanent shared-Postgres purge (irreversible)$ codaracloud databases delete main-db --client my-workspace --purge --confirm main-db

Al eliminar de forma normal una Postgres compartida, se revocan sus credenciales y se conserva un registro visible y recuperable. La reactivación usa la misma base de datos lógica y siempre genera una contraseña nueva. El borrado permanente exige confirmar con el nombre exacto y borra también las copias de seguridad de la base de datos.

Eliminar una base de datos dedicada destruye sus datos

En los motores dedicados, el disco y las copias de seguridad de la base de datos se borran con ella, y soporte no puede deshacerlo. Si hay alguna posibilidad de que vuelvas a necesitar los datos, restaura una copia o expórtalos antes de eliminarla.

Importar datos existentes

Las bases de datos Postgres y MariaDB se pueden cargar desde un archivo de volcado accesible por HTTPS. La importación se ejecuta como una tarea puntual dentro de la plataforma. Está disponible a través de la API y de las herramientas MCP, no desde la CLI.

Métricas

Las bases de datos dedicadas muestran la CPU, la memoria y el almacenamiento en su página. Las compartidas solo muestran el almacenamiento: la CPU y la memoria pertenecen a la instancia común y no se pueden atribuir a un solo inquilino, así que esos gráficos aparecen vacíos en lugar de mostrar un cero engañoso.

Última actualización: