Herramienta gratuita

Esquema de Prisma a diagrama ER

Pega un archivo schema.prisma, o suelta todos los archivos de un esquema repartido en varios, y obtén un diagrama ER: una tarjeta por modelo con sus campos escalares y sus claves, y una línea por cada relación, incluidas las relaciones muchos a muchos implícitas. No necesitas cuenta para probarlo.

Resultado de ejemplo

Diagrama de ejemplo dibujado a partir de un ejemplo de Prisma
Prueba un ejemploTienda online

Cómo funciona

  1. Pega o suelta tu esquema de Prisma

    Un archivo schema.prisma, o todos los archivos .prisma de una carpeta prisma/schema soltados juntos. Los bloques datasource y generator pueden quedarse; solo se lee provider.

  2. Mira los modelos y las relaciones

    Cada modelo se convierte en una tarjeta con sus campos escalares y sus tipos de Prisma. Cada relación con fields y references se convierte en una línea desde el campo de clave foránea hasta el campo al que apunta.

  3. Ábrelo en Archboard

    Guárdalo como un diagrama nuevo para reorganizarlo, anotarlo, compartir un enlace o exportarlo en SVG y PNG. Para registrarte basta una cuenta de Google o GitHub.

Qué se dibuja a partir de un esquema de Prisma

El diagrama se construye con estas partes de schema.prisma:

  • model

    Cada modelo como una tarjeta con su nombre, con una fila por campo escalar y su tipo escrito al estilo de Prisma, como String? o Int[]. También se listan los campos de enum y de tipo compuesto.

  • @relationfieldsreferences

    Las relaciones con fields y references, dibujadas desde el campo de clave foránea hasta el campo referenciado con extremos de pata de gallo. Una clave foránea única hace que la relación sea uno a uno, y un campo de relación opcional hace opcional el otro extremo. Las claves foráneas compuestas también funcionan.

  • Category[]Product[]

    Las relaciones muchos a muchos implícitas, en las que dos modelos se listan mutuamente, como Category[] y Product[]. Se dibujan como una sola línea con muchos en ambos extremos, sin la tabla de unión oculta que crea Prisma.

  • @id@@id

    Las claves primarias que vienen del atributo id de un campo o de un id a nivel de bloque que abarca varios campos, marcadas como PK en cada campo.

  • @unique@@unique

    Los campos únicos, marcados como UK. Una restricción única a nivel de bloque sobre varios campos no se marca en cada campo, pero una relación cuya clave foránea usa exactamente esos campos se dibuja como uno a uno.

  • @@schema

    Los modelos asignados a esquemas de base de datos en un proyecto con varios esquemas, dibujados dentro de un marco por esquema.

  • type

    Los tipos compuestos declarados con type en un esquema de MongoDB, mostrados como el tipo del campo que los incrusta y no como tarjetas aparte.

Lo que un diagrama de Prisma deja fuera

  • Los campos de relación como posts Post[] o author User. Solo existen en el nivel de Prisma, no en la base de datos, así que se convierten en líneas y no en filas, y cada tarjeta lista solo los campos que se guardan en la base de datos.
  • Las relaciones con modelos de archivos que no incluiste. Cuando un esquema está repartido en varios archivos, suéltalos todos juntos; un modelo que no se encuentra se indica en un aviso en lugar de dibujarse.
  • Las vistas declaradas con bloques view, que se omiten y se cuentan, y los modelos o campos marcados con el atributo ignore.
  • Los valores por defecto como autoincrement(), now() o las expresiones dbgenerated, los tipos nativos de la base de datos como VarChar(255), los comentarios de documentación y la URL del datasource.

Preguntas sobre esquemas de Prisma

Mi esquema está repartido en varios archivos. ¿Cómo hago el diagrama?

Suelta toda la carpeta prisma/schema o selecciona todos sus archivos .prisma a la vez. Se leen como un solo esquema, así que se dibujan las relaciones entre modelos de archivos distintos. Un solo archivo también funciona; en ese caso, las relaciones con modelos de otros archivos aparecen como avisos.

¿Funciona con esquemas de MongoDB?

Sí. Con el provider mongodb, los tipos compuestos aparecen como tipos de campo, las claves foráneas ObjectId se convierten en líneas de relación y una relación muchos a muchos guardada como listas de identificadores en ambos modelos se dibuja como una sola línea sin marcas FK.

¿El diagrama usa los nombres de los modelos o los de las tablas?

Los nombres de los modelos, los que usas en Prisma Client. Los nombres de tabla y de columna definidos con los atributos map no se muestran, así que un modelo Customer asociado a una tabla customers aparece como Customer.

¿Cómo se muestran las relaciones muchos a muchos implícitas?

Como una sola línea entre los dos modelos, con muchos en ambos extremos. Prisma guarda estas relaciones en una tabla de unión oculta como _CategoryToProduct, que no se dibuja. Una tabla de relación que modeles tú mismo aparece como una tarjeta normal con dos relaciones.

¿Qué se guarda al abrir el diagrama en Archboard?

La vista previa no se guarda. Cuando eliges Abrir en Archboard, el diagrama dibujado, con sus tarjetas de modelo, nombres y tipos de campo y líneas de relación, se guarda como un diagrama nuevo en tu espacio de trabajo. Los cambios posteriores en schema.prisma no lo actualizan.

¿La herramienta de diagramas ER para Prisma es gratuita?

Sí. Pegar un esquema y ver el diagrama no requieren cuenta. Para abrir el diagrama en Archboard basta una cuenta gratuita.

Abre un lienzo en un minuto

Inicia sesión con Google o GitHub. Gratis para un asiento. Mejora el plan cuando se una el equipo.