Bases de datos
PostgreSQL, MySQL y MariaDB en Joppa: una base de datos por proyecto, las extensiones (pgvector, PostGIS…), las URL de conexión y TablePlus.
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.
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, 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.