Outil gratuit
SQLite en diagramme ER
Collez ce que sqlite3 affiche pour .schema ou .dump et obtenez un diagramme ER des tables, des clés et des clés étrangères, colonnes sans type comprises. Essayez l’exemple d’appli de notes : carnets, notes, étiquettes et la table qui relie les notes aux étiquettes.
Exemple de résultat
Comment ça marche
Collez ou déposez le schéma
La sortie de .schema ou de .dump, un fichier de migration écrit en SQL ou des instructions CREATE TABLE copiées depuis n’importe quel outil SQLite.
Voyez les tables et leurs liens
Chaque table devient une carte avec ses colonnes, et chaque clause REFERENCES devient un lien vers la table qu’elle désigne, que les clés étrangères soient activées ou non.
Ouvrez-le dans Archboard
Enregistrez-le comme nouveau diagramme pour le réorganiser, l’annoter, partager un lien ou l’exporter en SVG et PNG. Un compte Google ou GitHub suffit pour s’inscrire.
Extraire le schéma de base de données d’un fichier SQLite
Lancez cette commande à côté du fichier de base de données et collez ce qu’elle affiche :
.schema affiche chaque instruction CREATE sans les lignes de données ; .dump affiche la même chose plus les données, qui sont ignorées. Remplacez app.db par le nom du fichier, ou ajoutez > schema.sql pour enregistrer la sortie, puis déposez ce fichier.
sqlite3 app.db .schema
La syntaxe SQLite dans un schéma
Ce que devient chaque construction de la sortie de sqlite3 :
INTEGER PRIMARY KEY- Marqué PK. Cette colonne est le rowid de la table, et d’autres tables peuvent y faire référence avec REFERENCES.
AUTOINCREMENT- Lu comme une partie de la clé primaire et non affiché. SQLite l’écrit sans tiret bas, contrairement à AUTO_INCREMENT dans MySQL.
CREATE TABLE note_tags (note_id, tag_id)- Lu. Une colonne déclarée sans type s’affiche avec son nom et sans type, et les clés qui la concernent comptent toujours.
WITHOUT ROWID · STRICT- Ignorés en tant qu’options de table ; la table, ses colonnes et sa clé primaire sont lues normalement.
sqlite_sequence- Masquée. SQLite crée cette table pour AUTOINCREMENT et .schema l’affiche, mais elle ne fait pas partie de la conception de l’appli ; un .dump se contente de la remplir avec des lignes INSERT, qui sont ignorées.
CREATE TRIGGER- Ignorés et comptés. Les points-virgules à l’intérieur de BEGIN … END sont bien gérés : les tables qui suivent un déclencheur sont toujours lues.
Ce qu’un diagramme SQLite laisse de côté
- Les déclencheurs et les vues. Leurs corps sont ignorés et comptés : rien de ce qu’ils font n’apparaît sur le diagramme.
- Les tables internes de SQLite, comme sqlite_sequence et sqlite_stat1. Tout ce dont le nom commence par sqlite_ est masqué.
- Le fait que les clés étrangères soient appliquées ou non. PRAGMA foreign_keys est désactivé par défaut dans SQLite, et le diagramme dessine chaque REFERENCES déclaré, quel que soit ce réglage.
- Le fichier de base de données lui-même. Un fichier .db ne peut pas être ouvert ici : la taille des pages, le nombre de lignes et les lignes stockées ne sont pas affichés. Collez plutôt le texte de .schema.
Questions sur SQLite
.schema ou .dump : lequel utiliser ?
.schema est plus court, car il n’affiche que les instructions CREATE. .dump ajoute chaque ligne sous forme d’instruction INSERT entre BEGIN TRANSACTION et COMMIT, ce qui fonctionne aussi, puisque les lignes sont ignorées. Pour afficher une seule table, donnez son nom à .schema, par exemple .schema notes.
Pourquoi certaines colonnes n’ont-elles pas de type ?
SQLite permet de déclarer une colonne sans type, comme dans CREATE TABLE note_tags (note_id, tag_id). Le diagramme affiche une telle colonne avec son nom et un type vide. Dans une table STRICT, chaque colonne a un type, affiché tel qu’il est écrit.
Pourquoi n’y a-t-il aucun lien entre mes tables ?
Les liens viennent des clauses REFERENCES et des contraintes FOREIGN KEY. Beaucoup d’applis ne les déclarent jamais et se contentent de stocker des identifiants : il n’y a alors rien à dessiner. Dès que le schéma les déclare, les liens apparaissent, que PRAGMA foreign_keys soit activé ou non.
Puis-je faire le diagramme de la base SQLite d’une appli mobile ?
Oui. Copiez le fichier de base de données depuis l’appareil ou l’émulateur vers votre ordinateur, lancez sqlite3 app.db .schema et collez la sortie. Cela fonctionne aussi pour les applis de bureau, les applis Electron et les bases de développement locales de Django ou de Rails.
Quelque chose est-il enregistré quand je colle un schéma ?
L’aperçu n’est pas enregistré. Quand vous choisissez Ouvrir dans Archboard, le diagramme dessiné, avec ses cartes de tables, ses noms et types de colonnes et ses liens, est enregistré comme nouveau diagramme dans votre espace de travail. Les modifications ultérieures du fichier .db ne le mettent pas à jour.
L’outil de diagramme ER pour SQLite est-il gratuit ?
Oui. Coller un schéma et voir le diagramme ne demandent aucun compte. Pour ouvrir le diagramme dans Archboard, un compte gratuit suffit.
Ouvrez un canevas en une minute
Connectez-vous avec Google ou GitHub. Gratuit pour un siège. Passez à un forfait supérieur quand l'équipe vous rejoint.