Bases de datos
PostgreSQL, MySQL y MariaDB en Joppa: una base de datos por proyecto, las extensiones (pgvector, PostGIS…), las URL de conexión, TablePlus, la importación y exportación, las copias y las instantáneas.
Joppa ejecuta un servidor por motor en un puerto fijo; cada proyecto tiene en él su propia base de datos. Es más ligero que un contenedor por proyecto, y tus herramientas siempre se conectan al mismo sitio.
PostgreSQL, MySQL y MariaDB están en la versión gratuita, un servidor de cada uno. Varios servidores del mismo motor (dos PostgreSQL en dos versiones, por ejemplo) requieren Joppa Pro. Consulta Licencia y planes.
Crear una base de datos
En la página del servicio, sección Bases de datos: + Nueva base de datos. Ponle un nombre, elige el proyecto que quieres conectar y, para PostgreSQL, sus extensiones.
Por lo general ni siquiera tienes que hacerlo: conectar el servicio a un proyecto en la pestaña Entorno crea la base de datos del proyecto si no existe.
La tabla de bases de datos muestra su tamaño, sus extensiones y su proyecto. El menú de cada base: Extensiones…, Copiar URL, Exportar…, Importar en esta base…, Duplicar…, Instantáneas…, Eliminar….
Conectarse
| Motor | URL |
|---|---|
| PostgreSQL | postgresql://postgres:[email protected]:5432/<base> |
| MySQL, MariaDB | mysql://root:[email protected]:3306/<base> |
Son credenciales de desarrollo, en un servidor que solo escucha en tu equipo.
TablePlus
Abrir en TablePlus (en el servicio o en una base de datos) abre la conexión ya llamada «Joppa · base» y marcada en verde como entorno local.
Desde la terminal
joppa dbs postgres # las bases de datos y sus URL
joppa dbs postgres --json # para un script
Las extensiones de PostgreSQL
Instaladas en el servidor
Algunas extensiones necesitan archivos en el servidor. Elígelas en Versión, puerto y extensiones…: Joppa construye una imagen local de PostgreSQL que las contiene, en el próximo inicio (unos minutos la primera vez). Las bases de datos existentes se conservan.
| Extensión | Uso |
|---|---|
pgvector (vector) |
Embeddings y búsqueda por similitud |
| PostGIS | Datos geográficos |
| pgRouting | Cálculo de rutas (con PostGIS) |
| HypoPG | Índices hipotéticos |
| pg_partman | Particionado |
| pg_stat_statements | Estadísticas de consultas (precargada) |
Siempre disponibles
pg_trgm, uuid-ossp, pgcrypto, citext, hstore, unaccent, fuzzystrmatch.
Por base de datos
Extensiones… en una base de datos las activa o las quita. Desmarcar una extensión la elimina de la base de datos junto con lo que depende de ella (columnas vector, geometrías…).
Activadas por defecto en las bases de datos nuevas elige las que aparecen marcadas al crear una base de datos, y presentes en las bases creadas por una herramienta externa (una migración, createdb).
MySQL y MariaDB
MySQL es la imagen oficial (versiones LTS e innovation), MariaDB su fork comunitario, compatible con los mismos clientes. Ambos usan el puerto 3306 por defecto: si ejecutas los dos, el segundo toma el 3307.
Exportar una base de datos
Exportar…, en el menú de una base, la guarda en un archivo, donde elijas:
| Formato | Contenido |
|---|---|
.sql.gz (propuesto) |
SQL comprimido con gzip |
.sql |
SQL legible |
.dump (PostgreSQL) |
El archivo de pg_dump -Fc, que lee pg_restore |
El archivo no contiene propietarios ni permisos (pg_dump --no-owner --no-acl), ni CREATE DATABASE (mysqldump --single-transaction --routines --triggers --events): se vuelve a cargar con cualquier nombre, aquí o en otro sitio.
Importar un archivo
Importar…, encima de la tabla de bases, carga un archivo en el servidor. Importar en esta base…, en el menú de una base, hace lo mismo apuntando a esa base. Joppa lee:

- un archivo
.sqlo.sql.gz, de PostgreSQL, MySQL o MariaDB; - un archivo
.dumpde PostgreSQL (pg_dump -Fc); - la exportación de un servidor entero: la de Exportar las bases de datos (.sql)…, de
pg_dumpallo demysqldump --all-databases.
Antes de ejecutar nada, Joppa lee el archivo y muestra:
- la base a la que va, con el nombre del archivo (
acme-2026-10-23.sql.gzdaacme) y editable. Si existe, marca Reemplazar acme o toma el nombre propuesto (Importar como acme_import); - para la exportación de un servidor entero, las bases que crea, y las que ya existen y se reemplazarán: marca Reemplazar estas bases;
- las extensiones de PostgreSQL del archivo: disponible, actívala antes en el servidor (en Versión, puerto y extensiones…) o Joppa no la ofrece. Lo que depende de una extensión ausente no se carga.
Durante la importación, una barra sigue la lectura del archivo. Al final, Joppa resume los errores omitidos por el camino (un rol desconocido, una extensión ausente). Si la restauración falla, se muestra el mensaje del cliente (psql, pg_restore, mysql) y se elimina la base creada por la importación.
Joppa adapta el archivo al leerlo: quita los OWNER TO y DEFINER= que nombran cuentas de otro servidor, sustituye las collations utf8mb4_0900_* de MySQL 8 por utf8mb4_unicode_ci para MariaDB y, en la exportación de un servidor entero, deja fuera las bases del sistema (mysql, sys…) y la cuenta de Joppa.
Duplicar una base de datos
Duplicar… crea una copia en el mismo servidor, con sus tablas, datos y extensiones (acme_copy por defecto). PostgreSQL copia los archivos de la base (CREATE DATABASE … TEMPLATE) cuando nadie está conectado a ella y, si no, pasa por una exportación y una restauración; MySQL y MariaDB siempre pasan por una exportación.
Instantáneas
Con Joppa Pro, Instantáneas…, en el menú de una base, abre sus instantáneas: copias de la base que guarda Joppa, restauradas con un clic.

- Tomar una instantánea, con un nombre si quieres («antes de la migración»).
- Restaurar… devuelve la base a esa instantánea. Lo que contenía se guarda antes en una nueva instantánea, «Antes de una restauración».
- La papelera elimina una instantánea.
- Guardadas por base: por encima de este número (10 por defecto), se eliminan las más antiguas.
Instantáneas automáticas
Con Joppa Pro, Joppa toma una instantánea antes de cada operación que borra datos. Si falla, la operación no se realiza.
| Operación | Etiqueta de la instantánea |
|---|---|
| Eliminar una base | Antes de eliminar |
| Importar un archivo que reemplaza una base | Antes de una importación |
| Importar desde Docker Compose reemplazando una base | Antes de una importación de Compose |
| Restaurar una instantánea | Antes de una restauración |
Las instantáneas de una base eliminada se conservan: aparecen bajo la tabla, en Bases eliminadas, y restaurar una vuelve a crear la base.
Las instantáneas están en la carpeta snapshots/ de Joppa (consulta Archivos y carpetas): un .dump (PostgreSQL) o un .sql.gz (MySQL, MariaDB) por instantánea, con un .json que la describe. Sin Joppa Pro, la lista sigue visible y sus instantáneas se pueden eliminar, pero no tomar ni restaurar.
Desde la terminal
joppa db export postgres acme # ./acme-2026-10-23.sql.gz
joppa db export postgres acme ~/acme.dump # archivo de PostgreSQL
joppa db import postgres ~/acme.sql.gz --into acme_test
joppa db import postgres ~/acme.sql.gz --replace # reemplaza acme
joppa db clone postgres acme acme_feature
joppa db snapshot postgres acme --name "antes de la migración"
joppa db snapshots postgres acme
joppa db restore postgres acme 20261023-142501
Consulta El comando joppa.
Exportar las bases de datos
Exportar las bases de datos (.sql)…, en el menú ⋯ de un servidor PostgreSQL, MySQL o MariaDB, guarda todas sus bases de datos en un solo archivo SQL (pg_dumpall, o mysqldump --all-databases) donde elijas. Un servidor detenido se inicia durante la exportación y luego se vuelve a detener.
La exportación sigue siendo posible para un servidor bloqueado por la versión gratuita (consulta Licencia y planes): tus datos siguen siendo tuyos. Para volver a poner un archivo así en un servidor: Importar un archivo.