Outil gratuit
Schéma Prisma en diagramme ER
Collez un fichier schema.prisma, ou déposez tous les fichiers d’un schéma réparti en plusieurs fichiers, et obtenez un diagramme ER : une carte par modèle avec ses champs scalaires et ses clés, et un lien pour chaque relation, y compris les relations plusieurs-à-plusieurs implicites. Aucun compte n’est nécessaire pour essayer.
Exemple de résultat
Comment ça marche
Collez ou déposez votre schéma Prisma
Un fichier schema.prisma, ou tous les fichiers .prisma d’un dossier prisma/schema déposés ensemble. Les blocs datasource et generator peuvent rester : seul provider est lu.
Voyez les modèles et les relations
Chaque modèle devient une carte avec ses champs scalaires et leurs types Prisma. Chaque relation avec fields et references devient un lien qui va du champ de clé étrangère au champ qu’il référence.
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.
Ce qui est dessiné à partir d’un schéma Prisma
Le diagramme est construit à partir de ces éléments de schema.prisma :
modelChaque modèle sous forme de carte à son nom, avec une entrée par champ scalaire et son type écrit à la manière de Prisma, comme String? ou Int[]. Les champs d’enum et de type composite sont listés aussi.
@relationfieldsreferencesLes relations avec fields et references, dessinées du champ de clé étrangère vers le champ référencé avec des extrémités en patte de corbeau. Une clé étrangère unique rend la relation un-à-un, et un champ de relation facultatif rend l’autre extrémité facultative. Les clés étrangères composites fonctionnent aussi.
Category[]Product[]Les relations plusieurs-à-plusieurs implicites, où deux modèles se listent l’un l’autre, comme Category[] et Product[]. Elles sont dessinées comme un seul lien avec plusieurs aux deux extrémités, sans la table de jointure cachée que Prisma crée.
@id@@idLes clés primaires issues de l’attribut id d’un champ, ou d’un id au niveau du bloc qui couvre plusieurs champs, marquées PK sur chaque champ.
@unique@@uniqueLes champs uniques, marqués UK. Une contrainte unique au niveau du bloc sur plusieurs champs n’est pas marquée sur chaque champ, mais une relation dont la clé étrangère utilise exactement ces champs est dessinée en un-à-un.
@@schemaLes modèles rattachés à des schémas de base de données dans un projet multi-schéma, dessinés dans un cadre par schéma.
typeLes types composites déclarés avec type dans un schéma MongoDB, affichés comme le type du champ qui les embarque plutôt que comme des cartes séparées.
Ce qu’un diagramme Prisma laisse de côté
- Les champs de relation comme posts Post[] ou author User. Ils n’existent qu’au niveau de Prisma, pas dans la base : ils deviennent donc des liens et non des entrées, et chaque carte ne liste que les champs stockés en base.
- Les relations vers des modèles situés dans des fichiers non fournis. Quand un schéma est réparti en plusieurs fichiers, déposez-les tous ensemble ; un modèle introuvable est signalé dans un avertissement au lieu d’être dessiné.
- Les vues déclarées avec des blocs view, qui sont ignorées et comptées, et les modèles ou champs marqués avec l’attribut ignore.
- Les valeurs par défaut comme autoincrement(), now() ou les expressions dbgenerated, les types natifs de la base comme VarChar(255), les commentaires de documentation et l’URL de la datasource.
Questions sur les schémas Prisma
Mon schéma est réparti en plusieurs fichiers. Comment en faire un diagramme ?
Déposez tout le dossier prisma/schema, ou sélectionnez tous ses fichiers .prisma d’un coup. Ils sont lus comme un seul schéma, si bien que les relations entre modèles de fichiers différents sont dessinées. Un fichier seul fonctionne aussi ; les relations vers des modèles d’autres fichiers apparaissent alors en avertissement.
Est-ce que ça fonctionne avec les schémas MongoDB ?
Oui. Avec le provider mongodb, les types composites apparaissent comme types de champ, les clés étrangères ObjectId deviennent des liens de relation, et une relation plusieurs-à-plusieurs stockée sous forme de listes d’identifiants des deux côtés est dessinée comme un seul lien, sans marqueur FK.
Le diagramme utilise-t-il les noms des modèles ou ceux des tables ?
Les noms des modèles, ceux que vous utilisez dans Prisma Client. Les noms de table et de colonne définis avec les attributs map ne sont pas affichés : un modèle Customer associé à une table customers apparaît comme Customer.
Comment les relations plusieurs-à-plusieurs implicites sont-elles affichées ?
Comme un seul lien entre les deux modèles, avec plusieurs aux deux extrémités. Prisma garde ces relations dans une table de jointure cachée comme _CategoryToProduct, qui n’est pas dessinée. Une table de relation que vous modélisez vous-même apparaît comme une carte normale avec deux relations.
Qu’est-ce qui est enregistré quand j’ouvre le diagramme dans Archboard ?
L’aperçu n’est pas enregistré. Quand vous choisissez Ouvrir dans Archboard, le diagramme dessiné, avec ses cartes de modèles, ses noms et types de champs et ses liens de relation, est enregistré comme nouveau diagramme dans votre espace de travail. Les modifications ultérieures de schema.prisma ne le mettent pas à jour.
L’outil de diagramme ER pour Prisma 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.