Canevas de schéma pour MySQL, PostgreSQL et SQLite
Thoth Blueprint dessine le schéma d'une base MySQL, PostgreSQL ou SQLite dans le navigateur : tables, colonnes, index et relations se placent à la souris sur un canevas. Un diagramme part de zéro ou d'un schéma existant, importé en DDL SQL, en DBML ou en JSON. En sortie, l'outil écrit le SQL du moteur choisi et les fichiers de migration d'un projet Laravel, TypeORM ou Django.
Migrations de framework et DBML éditable en regard du diagramme
- Laravel, TypeORM et Django reçoivent chacun leurs migrations dans une archive ZIP, et l'archive Django contient aussi les modèles. Une case de la fenêtre d'export retire les contraintes de clé étrangère du SQL, du DBML et des migrations.
- L'onglet DBML affiche le schéma en texte. Une modification enregistrée dans cet onglet redescend dans le diagramme.
- Le diagramme s'exporte aussi en JSON et en Mermaid, ou en image SVG et PNG.
- Un gestionnaire d'index crée et modifie les index uniques et composites, et gère l'ordre des colonnes.
- Les checkpoints figent l'état du diagramme pour revenir en arrière. Depuis la 0.0.10, un nouveau projet en prend un automatiquement toutes les cinq minutes.
- Un assistant IA crée et modifie tables, colonnes, index et relations, avec une clé Gemini ou OpenRouter, ou un modèle local servi par Ollama ou LM Studio. Chaque modification proposée passe par un schéma Zod et une simulation sur une copie du diagramme, puis s'applique d'un bloc. Si elle est rejetée, l'assistant reçoit l'erreur de validation et peut la corriger.
Stockage dans le navigateur et canevas qui ralentit sur les grosses bases
Les diagrammes sont stockés dans l'IndexedDB du navigateur. L'application est un site statique : le Dockerfile du dépôt la compile puis la sert par Nginx, et l'archive ZIP jointe aux versions depuis la 0.0.12 se lance avec python -m http.server, sans Node.js. La notice de cette archive prévient que vider les données du navigateur efface les diagrammes. La sauvegarde est un fichier .thot, du JSON exporté à la main, qui contient les diagrammes et les conversations avec l'assistant. Les clés d'API des fournisseurs d'IA restent elles aussi dans le navigateur, chiffrées et déverrouillées par une phrase de passe.
Le canevas ralentit dès quelques centaines de tables. Le mainteneur l'écrit lui-même dans le ticket #47, ouvert en avril 2026 : à l'import d'une grosse base, le rendu DOM de la bibliothèque xyflow produit 20 000 à 30 000 éléments et l'éditeur perd en fluidité. Il propose de remplacer xyflow par un rendu WebGL maison, et le ticket reste ouvert.
Trois moteurs, SQL Server annoncé. SQLite a rejoint MySQL et PostgreSQL en 0.0.13, et la fenêtre d'import affiche SQL Server comme « coming soon ». Pour un schéma MariaDB, SQL Server ou Oracle, drawDB, autre éditeur de schéma dans le navigateur, compte déjà ces dialectes dans sa liste de moteurs.
Les migrations générées sont des brouillons à relire. Le guide de génération de code du dépôt indique qu'aucun banc de test ne vérifie le SQL produit, et demande de ne pas présenter une migration comme exécutable sans l'avoir relue ou lancée. Côté Django, le nom de l'application est fixé à yourapp. L'intégration continue se limite à la vérification des types, au lint et au build.
Dernière version : 0.0.13, publiée le 12 août 2026. Le dépôt compte douze releases depuis la 0.0.1 de septembre 2025, et aucun commit depuis le 12 août. Les contributeurs listés par GitHub totalisent 418 commits, dont 406 du mainteneur, AHS12. Le code est sous licence GPL-3.0.
