Ferramenta gratuita
Schema do Prisma para diagrama ER
Cole um arquivo schema.prisma, ou solte todos os arquivos de um esquema dividido em vários, e receba um diagrama ER: um cartão por modelo com seus campos escalares e chaves, e uma conexão para cada relação, inclusive as relações muitos-para-muitos implícitas. Não é preciso ter conta para testar.
Resultado de exemplo
Como funciona
Cole ou solte seu esquema do Prisma
Um arquivo schema.prisma, ou todos os arquivos .prisma de uma pasta prisma/schema soltos juntos. Os blocos datasource e generator podem ficar; só o provider é lido.
Veja os modelos e as relações
Cada modelo vira um cartão com seus campos escalares e os tipos do Prisma. Cada relação com fields e references vira uma conexão do campo de chave estrangeira até o campo que ele referencia.
Abra no Archboard
Salve como um novo diagrama para reorganizar, anotar, compartilhar um link ou exportar em SVG e PNG. Para se cadastrar basta uma conta Google ou GitHub.
O que é desenhado a partir de um esquema do Prisma
O diagrama é montado a partir destas partes do schema.prisma:
modelCada modelo como um cartão com o nome dele e uma entrada por campo escalar, com o tipo escrito no estilo do Prisma, como String? ou Int[]. Campos de enum e de tipo composto também são listados.
@relationfieldsreferencesRelações com fields e references, desenhadas do campo de chave estrangeira até o campo referenciado com pontas pé de galinha. Uma chave estrangeira única torna a relação um para um, e um campo de relação opcional torna a outra ponta opcional. Chaves estrangeiras compostas também funcionam.
Category[]Product[]Relações muitos-para-muitos implícitas, em que dois modelos listam um ao outro, como Category[] e Product[]. Elas são desenhadas como uma única conexão com muitos nas duas pontas, sem a tabela de junção oculta que o Prisma cria.
@id@@idChaves primárias vindas do atributo id de um campo ou de um id em nível de bloco que abrange vários campos, marcadas como PK em cada campo.
@unique@@uniqueCampos únicos, marcados como UK. Uma restrição única em nível de bloco sobre vários campos não é marcada em cada campo, mas uma relação cuja chave estrangeira usa exatamente esses campos é desenhada como um para um.
@@schemaModelos atribuídos a esquemas do banco de dados em um projeto com vários esquemas, desenhados dentro de uma moldura por esquema.
typeTipos compostos declarados com type em um esquema do MongoDB, mostrados como o tipo do campo que os incorpora, e não como cartões separados.
O que um diagrama do Prisma deixa de fora
- Campos de relação como posts Post[] ou author User. Eles existem só no nível do Prisma, não no banco de dados, então viram conexões em vez de entradas do cartão, e cada cartão lista apenas os campos gravados no banco.
- Relações com modelos de arquivos que você não incluiu. Quando um esquema está dividido em vários arquivos, solte todos juntos; um modelo que não é encontrado é informado em um aviso em vez de ser desenhado.
- Views declaradas com blocos view, que são ignoradas e contadas, e modelos ou campos marcados com o atributo ignore.
- Valores padrão como autoincrement(), now() ou expressões dbgenerated, tipos nativos do banco como VarChar(255), comentários de documentação e a URL do datasource.
Perguntas sobre esquemas do Prisma
Meu esquema está dividido em vários arquivos. Como gero o diagrama?
Solte a pasta prisma/schema inteira ou selecione todos os arquivos .prisma dela de uma vez. Eles são lidos como um só esquema, então as relações entre modelos de arquivos diferentes são desenhadas. Um arquivo sozinho também funciona; nesse caso, as relações com modelos de outros arquivos aparecem como avisos.
Funciona com esquemas do MongoDB?
Sim. Com o provider mongodb, tipos compostos aparecem como tipos de campo, chaves estrangeiras ObjectId viram conexões, e uma relação muitos-para-muitos guardada como listas de IDs nos dois modelos é desenhada como uma única conexão, sem marcas FK.
O diagrama usa nomes de modelos ou de tabelas?
Nomes de modelos, os que você usa no Prisma Client. Nomes de tabela e de coluna definidos com os atributos map não aparecem, então um modelo Customer mapeado para uma tabela customers aparece como Customer.
Como as relações muitos-para-muitos implícitas aparecem?
Como uma única conexão entre os dois modelos, com muitos nas duas pontas. O Prisma guarda essas relações em uma tabela de junção oculta como _CategoryToProduct, que não é desenhada. Uma tabela de relação que você mesmo modela aparece como um cartão normal com duas relações.
O que é salvo quando abro o diagrama no Archboard?
A prévia não é salva. Quando você escolhe Abrir no Archboard, o diagrama desenhado, com cartões de modelo, nomes e tipos de campos e conexões, é salvo como um novo diagrama no seu espaço de trabalho. Mudanças posteriores no schema.prisma não o atualizam.
A ferramenta de diagrama ER para Prisma é gratuita?
Sim. Colar um esquema e ver o diagrama não exigem conta. Para abrir o diagrama no Archboard basta uma conta gratuita.
Abra um canvas em um minuto
Entre com Google ou GitHub. Grátis para um assento. Faça upgrade quando a equipe entrar.