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
| Motor | Aislamiento | Notas |
|---|---|---|
| postgres | Compartida o dedicada | El motor con mejor soporte y el único con explorador de tablas. Postgres compartida permite hacer y restaurar copias de seguridad por tu cuenta. |
| redis | Compartida o dedicada | Caché, colas y sesiones. Redis compartida no tiene copias de seguridad; Redis dedicada permite hacerlas y restaurarlas por tu cuenta. |
| mariadb | Solo dedicada | Compatible con MySQL. |
| mysql | Solo dedicada | |
| mongodb | Solo 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
| Nivel | Aislamiento | Almacenamiento máximo |
|---|---|---|
| starter | Compartida por defecto | 10 GiB |
| standard | Dedicada | 20 GiB |
| pro | Dedicada | 100 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
Crear una base de datos
Desde la consola, abre el lienzo del entorno y añade una base de datos. Desde la CLI:
$ codaracloud databases create main-db \ --engine postgres \ --tier standard \ --client my-workspace \ --project website \ --env production $ codaracloud databases list --client my-workspaceAlgunas decisiones son permanentes
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.
$ 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-workspaceQué se inyecta
Postgres:
| Variable | Contiene |
|---|---|
| DATABASE_URL | La URL de conexión que debe usar tu app. |
| DATABASE_DIRECT_URL | Una conexión directa, sin pasar por ningún pooler. Suele ser la que piden las herramientas de migración. |
| DATABASE_HOST / PORT / NAME / USER / PASSWORD | Los 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
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:
# 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:
# 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 --revealUn 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.
| Motor | Copias de seguridad | Restauración |
|---|---|---|
| Postgres (compartida) | Volcado diario, si lo activas | Por tu cuenta |
| Postgres (dedicada) | Siempre activas: copia base semanal más archivado continuo de WAL | La hace Codara: pídela a soporte |
| Redis (compartida) | Ninguna: las claves pueden desalojarse | Ninguna |
| Redis (dedicada) | Volcado diario, si lo activas | Por tu cuenta |
| MariaDB, MySQL, MongoDB | Volcado diario, si lo activas | La 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 todas las bases de datos las puedes restaurar tú
Hacer una copia de seguridad a demanda
$ codaracloud databases backup main-db --wait --client my-workspaceDisponible 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.
$ 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-workspaceAmpliar una base de datos
$ codaracloud databases upgrade main-db \ --tier pro \ --storage-size 50Gi \ --client my-workspaceEl 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
# 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-dbAl 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
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:
