efcore-d2-db-diagram
Faz seu agente gerar diagramas de banco de dados D2 a partir de modelos Entity Framework Core. É útil para visualizar relacionamentos de tabelas e esquemas.
O que ela faz
Esta ferramenta cria um diagrama visual do seu banco de dados a partir do código do seu projeto. Ela entende como você definiu suas tabelas e os relacionamentos entre elas usando o Entity Framework Core.
Quando usar
- ✓Quando você quer ver como as tabelas do seu banco de dados se conectam.
- ✓Para documentar a estrutura do banco de dados de um projeto C#.
- ✓Para entender relacionamentos complexos como muitos-para-muitos.
Exemplo do que pedir para a IA
“Gere um diagrama do banco de dados do meu projeto usando o Entity Framework Core.”
Quer saber mais? Abra as seções abaixo.
Como usar
O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.
Link da skill
Mensagem pronta para colar
Como funciona
A ferramenta analisa seu código C# que usa Entity Framework Core. Ela procura pelas definições de tabelas, colunas e como elas se relacionam para desenhar o diagrama.
Instalação
Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.
No terminal (Claude Code, Codex, Cursor), na pasta do projeto:
npx skills add github/awesome-copilot --skill efcore-d2-db-diagramOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/github/awesome-copilot/main/skills/efcore-d2-db-diagram/SKILL.md -o SKILL.mdConteúdo técnico (SKILL.md)
Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.
Gerador de Diagrama de Banco de Dados D2 para EF Core
Quando Usar
Use esta habilidade quando o usuário quiser gerar um diagrama de banco de dados / ERD a partir de um codebase do Entity Framework Core.
Solicitações típicas:
- Gerar um diagrama de banco de dados D2 a partir de entidades EF Core.
- Visualizar tabelas, colunas, chaves primárias, chaves estrangeiras e relacionamentos.
- Analisar
DbContext,DbSet<T>,IEntityTypeConfiguration<T>, Fluent API e migrações. - Produzir um arquivo
.d2renderizável para SVG/PNG com a CLId2. - Documentar o modelo de banco de dados de um projeto ASP.NET Core / .NET.
Objetivo
Criar um diagrama de relacionamento de entidade D2 legível que reflita o modelo de persistência EF Core real, não apenas a forma bruta da classe C#.
O diagrama deve priorizar:
- Tabelas e relacionamentos do banco de dados.
- Chaves primárias, chaves estrangeiras, colunas obrigatórias/opcionais.
- Tipos possuídos (owned types) e objetos de valor (value objects).
- Relacionamentos muitos-para-muitos e tabelas de junção.
- Índices, restrições únicas e nomes de tabelas.
- Convenções do EF Core apenas quando o mapeamento explícito estiver ausente.
A saída é código fonte .d2. Ele pode ser renderizado para SVG ou PNG através da CLI d2.
Ferramentas
- CLI d2: renderiza arquivos
.d2para SVG/PNG.d2 input.d2 output.svgd2 --layout=elk input.d2 output.svg
- d2 fmt: formata arquivos D2.
d2 fmt input.d2
- Nenhum servidor MCP é necessário. A habilidade gera código fonte D2 como texto.
Fluxo de Trabalho Recomendado
- Leia a estrutura do projeto EF Core.
- Localize todas as classes
DbContext. - Localize todas as declarações
DbSet<T>. - Localize classes de entidade, tipos possuídos, tipos enum e objetos de valor.
- Leia
OnModelCreatinge todas as classesIEntityTypeConfiguration<T>. - Leia as migrações quando disponíveis para confirmar nomes de tabelas, tabelas de junção, índices e comportamentos de exclusão.
- Construa um modelo de banco de dados normalizado antes de escrever D2.
- Faça o questionário obrigatório do diagrama antes da geração.
- Gere o arquivo
.d2usando o modelo de banco de dados, não o aninhamento bruto de classes. - Valide a sintaxe D2 com
d2 fmtantes da entrega. - Renderize com
d2 --layout=elk schema.d2 schema.svgquando possível. - Se estiver regenerando, releia primeiro os mapeamentos e migrações do EF Core.
Perguntas Obrigatórias Antes da Geração do Diagrama
Faça estas perguntas para cada novo diagrama e cada regeneração, a menos que o usuário já as tenha respondido na mesma solicitação.
Which DbContext should be diagrammed? (auto-detect/all/specific name)Display columns? (all/key-only/none)Display column types? (Yes/No)Display nullable/required markers? (Yes/No)Display indexes and unique constraints? (Yes/No)Display enum values? (Yes/No)Display owned types? (inline/separate/hide)Display many-to-many join tables? (explicit/compact/hide)Display audit/technical tables? (Yes/No)Display migration-only tables not present as entities? (Yes/No)Which grouping mode? (bounded-context/schema/namespace/flat)Which layout engine? (elk/dagre/tala)Which output format? (d2/svg/png)
Valores padrão, quando o usuário pede uma geração rápida:
- DbContext:
auto-detect - Colunas:
key-only - Tipos de coluna:
Yes - Marcadores de nulidade:
Yes - Índices:
Yes - Enums:
No - Tipos possuídos:
inline - Tabelas de junção:
explicit - Tabelas de auditoria/técnicas:
No - Tabelas apenas de migração:
Yes - Agrupamento:
bounded-context - Layout:
elk - Saída:
d2
Documentos de Referência
Carregue estes sob demanda quando necessário:
| Referência | Quando carregar |
|---|---|
references/efcore-model-extraction.md |
Regras para leitura de DbContext, DbSet, Fluent API, configurações e migrações |
references/d2-erd-style.md |
Sintaxe D2 e convenções visuais para diagramas ERD |
references/relationship-rules.md |
Como inferir relacionamentos um-para-um, um-para-muitos, muitos-para-muitos e possuídos |
references/grouping-modes.md |
Regras para bounded-context, schema, namespace e agrupamento plano |
references/quality-gate.md |
Checklist final antes de entregar o diagrama gerado |
Regras de Extração do EF Core
Prioridade da Fonte
Use esta ordem de prioridade quando as fontes discordarem:
- Última migração aplicada / snapshot de migração.
- Configuração da Fluent API em
OnModelCreatingouIEntityTypeConfiguration<T>. - Data annotations.
- Convenções do EF Core.
- Forma bruta da classe C#.
Conceitos Essenciais do EF Core a Detectar
Detecte e represente:
DbContexteDbSet<T>.- Nomes de classes de entidade e nomes reais de tabelas de
ToTable. - Nomes de schema de
ToTable("Table", "schema"). - Chaves primárias de
HasKey,[Key], convenções e migrações.
…
Perguntas frequentes
O que é um diagrama ERD?
ERD significa Entity-Relationship Diagram (Diagrama Entidade-Relacionamento). É um desenho que mostra as tabelas do banco de dados e como elas se ligam umas às outras.
O que é Entity Framework Core?
É uma ferramenta que ajuda desenvolvedores a trabalhar com bancos de dados em projetos C# sem precisar escrever todo o código SQL manualmente.
O que é um arquivo .d2?
É um arquivo de texto que descreve o diagrama. Ele pode ser transformado em imagens como SVG ou PNG usando outra ferramenta chamada 'd2 CLI'.
Detalhes
Descrição original do autor
Generate D2 database diagrams from Entity Framework Core models. USE FOR: EF Core database diagram, Entity Framework Core ERD, DbContext diagram, C# entity relationship diagram, PostgreSQL schema visualization, generate .d2 file from EF Core entities, Fluent API mapping diagram, migrations-based database diagram, table relationships, owned types, many-to-many join tables, indexes and constraints.
repo: github/awesome-copilot
Popularidade
- Estrelas no GitHub
- 40 mil
- Posição no ranking
- #5130
- Licença
- MIT
- Atualizada em
- 15/10/2026
Comentários
- …
Mais skills deste repositório
acquire-codebase-knowledge
Ajuda seu agente a entender e documentar um projeto de código existente. É útil para novas pessoas entrarem no projeto ou para ter uma visão geral da arquitetura.
github/awesome-copilot
acreadiness-assess
Faz seu agente avaliar a prontidão de um projeto para IA e gerar um relatório. É útil para entender o quão bem um projeto está preparado para usar ferramentas de IA.
github/awesome-copilot
acreadiness-generate-instructions
Ajuda seu agente a criar instruções para ferramentas de IA baseadas em uma avaliação. É útil para melhorar a forma como a IA interage com o código e fecha lacunas identificadas.
github/awesome-copilot
acreadiness-policy
Faz seu agente ajudar a definir ou aplicar políticas para avaliação de projetos de IA. É útil para padronizar a forma como os projetos são avaliados e garantir conformidade.
github/awesome-copilot
Skills parecidas
benchmark-optimization-loop
Faz seu agente melhorar a velocidade de algo de forma medida. Ele testa várias versões e escolhe a mais rápida que ainda funciona corretamente.
affaan-m/ECC
change-impact
Ajuda seu agente a analisar o impacto de mudanças no código antes de fazê-las. Ele compara o planejado com o real depois, cobrindo caminhos, dados, testes e documentação. É útil para mudanças arriscadas ou que afetam várias partes do sistema.
affaan-m/ECC
click-path-audit
Faz seu agente rastrear todos os botões e interações do usuário para achar bugs. Ele encontra problemas onde funções parecem funcionar sozinhas, mas falham juntas. Útil quando bugs persistem mesmo após depuração.
affaan-m/ECC