Hoppa till innehåll

SQL-schema till DBML

Omvandla CREATE TABLE-satser till en DBML-diagramdefinition.

Inmatning
Utmatning

SQL-schema till DBML

Klistra in en eller flera CREATE TABLE-satser och det här verktyget returnerar motsvarande DBML — textformat som används av dbdiagram.io och liknande entitetsrelationsdiagramverktyg. Varje tabell blir ett Table-block, varje kolumn behåller sitt namn och typ, och primärnycklar, unika begränsningar och främmande nycklar överförs automatiskt. Verktyget är byggt för det ögonblick då du har ett schemadump och behöver ett diagram snabbt, utan att klistra in SQL i en värdtjänst.

Alternativet för dialekt talar om för parsern vad den läser — MySQL, PostgreSQL, SQLite eller SQL Server — eftersom samma nyckelord kan betyda olika saker i olika databasmotorer (en MySQL TINYINT(1) läses som en boolesk, en SQL Server IDENTITY-kolumn läses som auto-inkrement). Aktivera typmappning för att kollapsa dialektspecifika typer till DBML:s kanoniska uppsättning (int, varchar, decimal, timestamp och så vidare), eller lämna den inaktiverad för att behålla originalnamnen. Kommentarer — en MySQL COMMENT-sats eller en PostgreSQL COMMENT ON-sats — blir DBML Note-poster när "Behåll kommentarer" är på. Kolumnnamn som user_id kan eventuellt härleda en relation till en users-tabell även utan en explicit främmande nyckel, och tabeller som delar ett namnprefix (shop_orders, shop_products) kan grupperas i en TableGroup.

Verktyget förstår inline REFERENCES-satser, tabelnnivå FOREIGN KEY-begränsningar och separata ALTER TABLE ADD CONSTRAINT-satser, så det fungerar på ett enda CREATE TABLE-block eller en fullständig dump med nycklar tillagda efteråt. Sammansatta primärnycklar och unika begränsningar återges som DBML-indexblock snarare än att slängas.

Allt körs lokalt i din webbläsare — ingen schema laddas någonstans upp, vilket spelar roll när SQL:en du klistrar in beskriver en verklig produktionsdatabas. Kopiera DBML:en, ladda ned den som en .txt-fil, eller skicka utmatningen direkt till ett annat verktyg för att fortsätta arbeta med det.

FAQ

Vilka SQL-dialekter stöds?
MySQL, PostgreSQL, SQLite och SQL Server. Välj motsvarande dialekt så att typmappning och auto-increment-detektering läser SQL:en korrekt.
Hur detekteras främmande nycklar?
Från inline REFERENCES-satser, tabelnnivå FOREIGN KEY-begränsningar och separata ALTER TABLE ADD CONSTRAINT ... FOREIGN KEY-satser — alla tre konverteras till DBML Ref-linjer.
Vad gör "Härleda relationer från kolumnnamn"?
När en kolumn är namngiven som user_id och ingen explicit främmande nyckel finns, kontrollerar verktyget om det finns en motsvarande users-tabell med en id-kolumn och lägger till en Ref för den, markerad som härledd i utmatningen.
Kan jag klistra in utmatningen direkt i dbdiagram.io?
Ja. Utmatningen är ren DBML — tabeller, kolumner, nycklar och relationer — i det format som dbdiagram.io och kompatibla verktyg förväntar sig.
Laddas mitt schema upp någonstans?
Nej. SQL:en som du klistrar in tolkas helt i din webbläsare och lämnar aldrig din enhet.