Outil CLI
dolthub/doltgresql avatar
dolthub/doltgresql

Doltgres : versionner des tables tout en parlant PostgreSQL

DoltgreSQL - PostgreSQL contrôlé par version. Nous utilisons ces mêmes tests Sysbench pour comparer DoltgreSQL et comparer les résultats à PostgreSQL.

2 134 étoiles73 forksGoApache-2.0
GitHub

En bref

De quoi s’agit-il ?
Une base SQL compatible avec les clients PostgreSQL, qui expose branches, commits et historique par des tables et fonctions SQL.
À qui s’adresse-t-il ?
Ce projet convient aux équipes qui recherchent précisément les capacités décrites par doltgresql et acceptent de vérifier sa compatibilité avec leur environnement. Il convient moins à celles qui attendent une couverture ou un support que le README ne promet pas.
Puis-je l’utiliser commercialement ?
Oui. Apache-2.0 est une licence permissive : vous pouvez utiliser, modifier et vendre un logiciel qui en dépend, à condition de conserver les mentions de droit d’auteur et de licence.
Est-il encore maintenu ?
Oui. Les derniers commits datent d’il y a 7 jours.
En quel langage est-il écrit ?
Principalement Go, d’après les statistiques de langage de GitHub.

Ces réponses reposent sur les données GitHub du projet (dernière synchronisation le 14 septembre 2026) et sur notre analyse. Elles ne constituent pas un avis juridique.

ANALYSE OPEN SOURCE APPROFONDIE

Doltgres est Dolt pour Postgres

Doltgres est une base de données SQL qui applique le modèle de contrôle de version de Git aux tables. Le projet vient des créateurs de Dolt, que le README appelle la première base de données SQL versionnée au monde. Doltgres permet de brancher, fusionner, forker, cloner, pousser et tirer votre schéma et vos données, et vous vous connectez avec des clients Postgres standard. Les opérations de contrôle de version sont exposées via des tables système, des fonctions et des procédures. Le README résume l'idée : Git versionne les fichiers, Doltgres versionne les tables.

Qualité bêta et support attendu

Le README marque Doltgres comme étant de qualité bêta et indique qu'il est prêt pour des cas d'utilisation en production. Il reconnaît également que des bugs et des fonctionnalités manquantes existent. Les mainteneurs disent que la plupart des problèmes peuvent être corrigés en 24 heures si vous les signalez sur GitHub. Le README liste plusieurs façons de contribuer : mettre une étoile au dépôt, créer des issues pour les bugs, créer des issues pour les fonctionnalités manquantes, contribuer au code et en parler à vos collègues. Selon les métadonnées du dépôt, le projet compte 2 069 étoiles, 70 forks et 81 issues ouvertes.

Voies d'installation

Doltgres peut être installé sur Linux et macOS avec une commande curl qui récupère le script d'installation de la dernière version et place le binaire dans /usr/local/bin. Les utilisateurs Windows téléchargent un fichier MSI depuis la page des releases. Une image Docker est publiée à chaque release, et le README montre comment l'exécuter avec une variable d'environnement de mot de passe et un mappage de port vers 5432. Pour construire à partir des sources, le README pointe vers le script ./scripts/build.sh. Le serveur crée un utilisateur et une base de données postgres au premier lancement, avec un mot de passe par défaut 'password'. Le répertoire de données peut être modifié avec un fichier config.yaml ou la variable d'environnement DOLTGRES_DATA_DIR, et le nom et le mot de passe du superutilisateur peuvent être définis avec DOLTGRES_USER et DOLTGRES_PASSWORD avant le premier démarrage.

Première session : du démarrage au commit

Le guide de démarrage détaille une session complète. Après avoir exécuté doltgres, vous vous connectez avec psql en utilisant PGPASSWORD=password psql -h localhost -U postgres. Ensuite, vous créez une base de données nommée getting_started, vous y basculez et vous créez trois tables : employees, teams et employees_teams, avec des clés primaires et étrangères. La table dolt.status affiche les nouvelles tables comme non stagées. L'appel à dolt_add avec les noms de tables les stage, et dolt.status les marque alors comme stagées. Un appel à dolt_commit avec un message renvoie un hash de commit. L'affichage de dolt.log montre ce commit ainsi qu'un commit antérieur 'Initialize data repository'.

Contrôle de version uniquement via SQL

Doltgres expose le contrôle de version exclusivement via SQL. Le README liste l'absence de CLI de type Git comme une limitation, contrairement à Dolt qui possède une telle CLI. Les tables et fonctions système telles que dolt.status, dolt.log, dolt_add et dolt_commit sont l'interface pour le branchement, la fusion et d'autres opérations. Le README ne documente aucun outil en ligne de commande pour le contrôle de version dans Doltgres. Il note également que pousser vers DoltHub ou DoltLab n'est pas pris en charge ; seuls les remotes personnalisés comme les systèmes de fichiers ou S3 sont disponibles.

Limitations connues et fonctionnalités manquantes

Le README énumère des écarts spécifiques. Il n'y a pas de CLI de type Git. Pousser vers DoltHub ou DoltLab n'est pas possible, seuls les remotes personnalisés. La sauvegarde et la réplication sont en cours de développement. Le support GSSAPI est absent. Le support des extensions n'est pas encore disponible. Certaines syntaxes, types, fonctions et fonctionnalités de Postgres ne sont pas implémentés. Le README demande aux utilisateurs de créer des issues pour toute fonctionnalité manquante dont ils ont besoin. Le nombre d'issues ouvertes selon les métadonnées est de 81, ce qui correspond à la demande de signaler les écarts.

Données de performance et de correction

Le README inclut des résultats de benchmark pour DoltgreSQL version 0.50.0, utilisant des tests Sysbench comparés à PostgreSQL. Les tests de lecture montrent un multiplicateur moyen de 6,3, ce qui signifie que Doltgres prend en moyenne 6,3 fois plus de temps que Postgres pour ces opérations. Les tests d'écriture montrent un multiplicateur moyen de 3,6, et le multiplicateur moyen global est de 5,2. Pour la correction, le projet utilise la suite sqllogictest. Sur un total de 5 691 305 tests, 5 188 604 ont réussi, 411 415 ont échoué, 16 ont expiré et 91 270 n'ont pas été exécutés. Le pourcentage de correction rapporté est de 91,16721. Le README note également que Dolt est compatible à 100 % avec MySQL selon la même suite de tests, et que Doltgres utilise le même moteur SQL et le même format de stockage que Dolt, en émulant un serveur Postgres en analysant le SQL Postgres en AST.

Vérifier doltgresql sur un cas réel

`PGPASSWORD=password psql -h localhost -U postgres`, puis `select * from dolt.status;` et `select * from dolt.log;` vérifient le parcours versionné. Cette vérification relie directement la documentation de doltgresql à l’usage visé : elle permet de constater les fichiers lus, la commande exécutée et le résultat observable, sans déduire une garantie que le README ne formule pas.

Conclusion éditoriale

Ce projet convient aux équipes qui recherchent précisément les capacités décrites par doltgresql et acceptent de vérifier sa compatibilité avec leur environnement. Il convient moins à celles qui attendent une couverture ou un support que le README ne promet pas. Avant décision, exécutez le contrôle suivant : `PGPASSWORD=password psql -h localhost -U postgres`, puis `select * from dolt.status;` et `select * from dolt.log;` vérifient le parcours versionné.

Sources officielles

  1. Official README
  2. Project repository
  3. Release notes
Notes de la communauté

Notes de la communauté