Services

Bases de données

PostgreSQL, MySQL et MariaDB dans Joppa : une base par projet, les extensions (pgvector, PostGIS…), les URL de connexion, TablePlus, l'import et l'export, les copies et les instantanés.

Joppa fait tourner un serveur par moteur sur un port fixe ; chaque projet y a sa propre base. C’est plus léger qu’un conteneur par projet, et vos outils se connectent toujours au même endroit.

PostgreSQL, MySQL et MariaDB sont dans la version gratuite, un serveur de chaque. Plusieurs serveurs d’un même moteur (deux PostgreSQL dans deux versions, par exemple) demandent Joppa Pro. Voir Licence et offres.

Créer une base

Sur la page du service, section Bases : + Nouvelle base. Donnez-lui un nom, choisissez le projet à connecter et, pour PostgreSQL, ses extensions.

En général vous n’avez même pas à le faire : brancher le service sur un projet dans l’onglet Environnement crée la base du projet si elle n’existe pas.

Le tableau des bases montre leur taille, leurs extensions et leur projet. Le menu de chaque base : Extensions…, Copier l’URL, Exporter…, Importer dans cette base…, Dupliquer…, Instantanés…, Supprimer….

Se connecter

Moteur URL
PostgreSQL postgresql://postgres:[email protected]:5432/<base>
MySQL, MariaDB mysql://root:[email protected]:3306/<base>

Ce sont des identifiants de développement, sur un serveur qui n’écoute que sur votre machine.

TablePlus

Ouvrir dans TablePlus (sur le service ou sur une base) ouvre la connexion déjà nommée « Joppa · base » et marquée en vert comme environnement local.

Depuis le terminal

joppa dbs postgres          # les bases et leurs URL
joppa dbs postgres --json   # pour un script

Les extensions PostgreSQL

Installées sur le serveur

Certaines extensions demandent des fichiers sur le serveur. Choisissez-les dans Version, port et extensions… : Joppa construit une image locale de PostgreSQL qui les contient, au prochain démarrage (quelques minutes la première fois). Les bases existantes sont gardées.

Extension Usage
pgvector (vector) Embeddings et recherche par similarité
PostGIS Données géographiques
pgRouting Calcul d’itinéraires (avec PostGIS)
HypoPG Index hypothétiques
pg_partman Partitionnement
pg_stat_statements Statistiques des requêtes (préchargée)

Toujours disponibles

pg_trgm, uuid-ossp, pgcrypto, citext, hstore, unaccent, fuzzystrmatch.

Par base

Extensions… sur une base les active ou les retire. Décocher une extension la supprime de la base avec ce qui en dépend (colonnes vector, géométries…).

Activées par défaut dans les nouvelles bases choisit celles qui sont pré-cochées à la création d’une base, et présentes dans les bases créées par un outil externe (une migration, createdb).

MySQL et MariaDB

MySQL est l’image officielle (versions LTS et innovation), MariaDB son fork communautaire, compatible avec les mêmes clients. Les deux utilisent le port 3306 par défaut : si vous faites tourner les deux, le second prend 3307.

Exporter une base

Exporter…, dans le menu d’une base, l’enregistre dans un fichier, à l’endroit choisi :

Format Contenu
.sql.gz (proposé) SQL compressé avec gzip
.sql SQL lisible
.dump (PostgreSQL) L’archive de pg_dump -Fc, relue par pg_restore

Le fichier ne contient ni propriétaires ni droits (pg_dump --no-owner --no-acl), ni CREATE DATABASE (mysqldump --single-transaction --routines --triggers --events) : il se recharge sous n’importe quel nom, ici ou ailleurs.

Importer un fichier

Importer…, au-dessus du tableau des bases, charge un fichier dans le serveur. Importer dans cette base…, dans le menu d’une base, fait de même en visant cette base. Joppa lit :

Importer un fichier : la base acme existe déjà, Joppa demande avant de la remplacer

  • un fichier .sql ou .sql.gz, de PostgreSQL, MySQL ou MariaDB ;
  • une archive .dump de PostgreSQL (pg_dump -Fc) ;
  • l’export d’un serveur entier : celui de Exporter les bases (.sql)…, de pg_dumpall ou de mysqldump --all-databases.

Avant de lancer quoi que ce soit, Joppa lit le fichier et montre :

  • la base où il va, nommée d’après le fichier (acme-2026-10-23.sql.gz donne acme) et modifiable. Si elle existe, cochez Remplacer acme ou prenez le nom proposé (Importer sous acme_import) ;
  • pour l’export d’un serveur entier, les bases qu’il crée, et celles qui existent déjà et seront remplacées : cochez Remplacer ces bases ;
  • les extensions PostgreSQL du fichier : disponible, à activer d’abord sur le serveur (dans Version, port et extensions…), ou non proposée par Joppa. Ce qui dépend d’une extension absente n’est pas chargé.

Pendant l’import, une barre suit la lecture du fichier. À la fin, Joppa résume les erreurs ignorées en route (un rôle inconnu, une extension absente). Si la restauration échoue, le message du client (psql, pg_restore, mysql) s’affiche et la base créée par l’import est retirée.

Joppa adapte le fichier en le lisant : il retire les OWNER TO et les DEFINER= qui nomment les comptes d’un autre serveur, remplace les collations utf8mb4_0900_* de MySQL 8 par utf8mb4_unicode_ci pour MariaDB, et laisse de côté, dans l’export d’un serveur entier, les bases système (mysql, sys…) et le compte de Joppa.

Dupliquer une base

Dupliquer… crée une copie sur le même serveur, avec ses tables, ses données et ses extensions (acme_copy par défaut). PostgreSQL copie les fichiers de la base (CREATE DATABASE … TEMPLATE) quand personne n’y est connecté, et passe sinon par un export et une restauration ; MySQL et MariaDB passent toujours par un export.

Instantanés

Avec Joppa Pro, Instantanés…, dans le menu d’une base, ouvre ses instantanés : des copies de la base gardées par Joppa, restaurées en un clic.

Les instantanés de la base acme : un nommé, un pris avant un import, et le nombre gardé par base

  • Prendre un instantané, avec un nom si vous voulez (« avant la migration »).
  • Restaurer… ramène la base à cet instantané. Ce qu’elle contenait est d’abord gardé dans un nouvel instantané, « Avant une restauration ».
  • La corbeille supprime un instantané.
  • Gardés par base : au-delà de ce nombre (10 par défaut), les plus anciens sont supprimés.

Instantanés automatiques

Avec Joppa Pro, Joppa prend un instantané avant chaque opération qui efface des données. S’il échoue, l’opération n’a pas lieu.

Opération Étiquette de l’instantané
Supprimer une base Avant suppression
Importer un fichier qui remplace une base Avant un import
Importer depuis Docker Compose en remplaçant une base Avant un import Compose
Restaurer un instantané Avant une restauration

Les instantanés d’une base supprimée restent : ils apparaissent sous le tableau, dans Bases supprimées, et en restaurer un recrée la base.

Les instantanés sont dans le dossier snapshots/ de Joppa (voir Fichiers et dossiers) : un .dump (PostgreSQL) ou un .sql.gz (MySQL, MariaDB) par instantané, avec un .json qui le décrit. Sans Joppa Pro, la liste reste visible et ses instantanés peuvent être supprimés, mais pas pris ni restaurés.

Depuis le terminal

joppa db export postgres acme                       # ./acme-2026-10-23.sql.gz
joppa db export postgres acme ~/acme.dump           # archive PostgreSQL
joppa db import postgres ~/acme.sql.gz --into acme_test
joppa db import postgres ~/acme.sql.gz --replace    # remplace acme
joppa db clone postgres acme acme_feature
joppa db snapshot postgres acme --name "avant la migration"
joppa db snapshots postgres acme
joppa db restore postgres acme 20261023-142501

Voir La commande joppa.

Exporter les bases

Exporter les bases (.sql)…, dans le menu ⋯ d’un serveur PostgreSQL, MySQL ou MariaDB, enregistre toutes ses bases dans un seul fichier SQL (pg_dumpall, ou mysqldump --all-databases), à l’endroit choisi. Un serveur arrêté est démarré le temps de l’export, puis arrêté de nouveau.

L’export reste possible pour un serveur verrouillé par la version gratuite (voir Licence et offres) : vos données restent les vôtres. Pour remettre un tel fichier dans un serveur : Importer un fichier.

getjoppa.com › support

Chargement

Ça ne passe pas ? Écrivez à [email protected]. Une simple question : [email protected].