ErdDocs

Collez votre SQL, obtenez le diagramme et le dictionnaire de données

ErdDocs dessine le diagramme entité-association à partir du schéma que vous avez déjà. Collez un script ou un dump SQL, un schéma Prisma ou les migrations de votre framework. Vous obtenez un diagramme interactif et un dictionnaire de données prêt à imprimer, avec toutes les tables, colonnes, types et relations. Comme ErdDocs part de tables existantes, il montre le modèle logique (le MLD au sens de Merise), et non un MCD dessiné à la main. Pas d’inscription, rien à installer. Le schéma est analysé dans votre navigateur et ne quitte pas votre machine.

Votre schéma

Rien n’est envoyé. Votre schéma reste dans ce navigateur. Le dernier collé revient quand vous rouvrez l’onglet, et disparaît quand vous effacez les données du site.

Comment ça marche

Pour transformer un dump SQL en diagramme et en dictionnaire de données :

  1. 01Exportez le schéma avec pg_dump --schema-only pour PostgreSQL ou mysqldump --no-data pour MySQL.
  2. 02Collez-le ci-dessus ou déposez directement le fichier .sql sur le panneau.
  3. 03Lisez le diagramme. Survolez une table pour mettre ses relations en surbrillance. Un clic les fige.
  4. 04Passez à « Dictionnaire de données ». Vous y trouvez les colonnes, types, valeurs par défaut, index et relations. Le dictionnaire s’imprime en PDF.

Conçu pour de vrais dumps

Un schéma de production n’est pas une liste bien rangée d’instructions CREATE TABLE. L’analyseur est donc testé sur de vrais schémas : pagila, sakila, GitLab, Discourse, WordPress, PrestaShop. La qualité de lecture de chaque format est mesurée sur 89 schémas publics.

Diagramme entité-association d’un schéma de boutique en ligne : les tables customers, orders, products et order_items reliées par des traits en notation patte de corbeau, généré à partir de SQLDiagramme entité-association d’un schéma de boutique en ligne : les tables customers, orders, products et order_items reliées par des traits en notation patte de corbeau, généré à partir de SQL
Le schéma de boutique ci-dessus, exactement tel que l’export le dessine.
  • Les tables partitionnées restent une seule table. Un dump avec 55 partitions mensuelles de payment donne une seule carte payment, pas 56.
  • Les clés étrangères manquantes sont retrouvées. Les projets Rails et Django n’en déclarent souvent aucune dans la base. Les noms de colonnes disent quand même qui pointe vers quoi, et ces relations sont tracées en pointillé.
  • Une instruction erronée ne fait pas tomber le fichier. Ce qui ne se lit pas est ignoré et signalé, et le reste du schéma s’affiche quand même.
  • Les grands schémas ne sont jamais tronqués. Tout ce que vous collez est analysé et disposé, y compris les schémas de plusieurs centaines de tables.

Pourquoi ErdDocs

  • De la documentation, pas seulement un dessin. Le dictionnaire de données est ce que demandent vraiment enseignants, auditeurs, clients et nouveaux arrivants.
  • Sans inscription ni installation. Pas de compte pour voir le résultat, rien à ajouter à votre projet.
  • Un seul paiement. Un prix unique plutôt qu’un abonnement qu’on oublie de résilier.
  • Votre schéma reste sur votre machine. L’analyse se fait dans le navigateur, le schéma n’est envoyé à aucun serveur. Vous pouvez coller celui de production sans craindre une fuite de la structure de votre base.

Convertir d’un format à l’autre

ErdDocs lit dix formats et exporte vers huit, tous dans le panneau ci-dessus. Les pages suivantes présentent chacune une conversion, avec un exemple déjà chargé. Elles sont en anglais :

Questions fréquentes

Qu’est-ce qu’un dictionnaire de données ?

C’est le document de référence d’une base de données. Il décrit au même endroit toutes les tables et colonnes : type de donnée, NULL accepté ou non, valeur par défaut, index et relations. On le demande en projet d’études, en audit et à la livraison d’un projet. ErdDocs le génère à partir du schéma que vous collez, prêt à imprimer.

Mon schéma est-il envoyé quelque part ?

Non. L’analyse et le dessin se font entièrement dans votre navigateur. Votre SQL ne quitte pas votre machine et il n’y a aucun compte à créer. ErdDocs ne se connecte volontairement à aucune base en service, vous n’avez donc aucun identifiant à lui confier. Le site compte les pages vues avec une balise d’analyse sans cookies. Elle voit quelle page vous avez ouverte, et rien de ce qu’elle contient.

Quelles bases de données et quels formats sont pris en charge ?

Le SQL de PostgreSQL, MySQL, SQL Server et SQLite. Ce peut être un pg_dump avec des instructions ALTER TABLE ONLY ... ADD CONSTRAINT, un mysqldump, un script généré dans SSMS, avec ses lots GO et ses noms entre crochets, ou la sortie de la commande .schema de SQLite. Neuf autres entrées sont lues telles quelles : schémas Prisma, DBML, Mermaid erDiagram, PlantUML, modèles Django, SQLAlchemy et Sequelize, entités TypeORM et migrations Laravel. Pour Prisma, les noms @map, les champs de relation et les tables d’association implicites des relations plusieurs à plusieurs sont résolus en tables que la base reçoit réellement. Le format est détecté d’après ce que vous collez, et vous pouvez corriger la détection.

Ma base n’a pas de clés étrangères. Le diagramme sera-t-il vide ?

Non. Les projets Rails, Django ou Laravel gèrent souvent les relations uniquement dans le code. ErdDocs lit aussi la convention de nommage : une colonne user_id se relie à la table users. Ces relations sont tracées en pointillé pour ne pas les confondre avec celles que la base déclare.

En quoi est-ce différent de dbdiagram, drawSQL ou sqltoerdiagram ?

ErdDocs se paie une seule fois. Chez dbdiagram et drawSQL, les offres payantes sont uniquement des abonnements. ErdDocs lit les modèles Prisma, Django, SQLAlchemy, Sequelize et TypeORM, ainsi que les migrations Laravel. Ni dbdiagram ni drawSQL ne les lisent. Aucun des deux n’exporte non plus en Mermaid ou en PlantUML. Sans compte, drawSQL n’exporte même pas une image, et le DBML peut y entrer mais jamais en sortir. Chez dbdiagram, c’est un assistant IA qui trouve les relations sans clé étrangère, dans une offre payante. ErdDocs les trouve gratuitement, d’après le nom des colonnes. sqltoerdiagram n’a pas de dictionnaire de données imprimable. Il dessine chaque partition d’un dump comme une table à part, alors qu’ErdDocs les regroupe dans la table parente. sqltoerdiagram ne lit pas les migrations Laravel. Pour Django et TypeORM, il vous demande d’abord de générer le SQL à partir des modèles.

ErdDocs fait-il un MCD Merise ?

Non. Il part de tables déjà écrites en SQL, donc il montre le modèle logique (MLD) : tables, clés étrangères et cardinalités en notation « patte de corbeau ». Un MCD avec entités, associations et cardinalités (0,n) se conçoit avant les tables. ErdDocs sert ensuite à vérifier et à documenter ce qui a été écrit.

Combien ça coûte ?

Voir les diagrammes et exporter les images est gratuit, sans compte. Les schémas jusqu’à 25 tables sont dessinés en entier. Les plus grands sont aussi analysés entièrement, mais les tables au-delà de la limite restent verrouillées. Un paiement unique de 9 $ US les débloque et inclut aussi le dictionnaire de données complet. Paddle ajoute les taxes au paiement, là où elles s’appliquent.

Aller plus loin