Przejdź do treści
100% lokalnie

SQL schemat na TypeORM encję

Konwertuj príkazy CREATE TABLE na klasy TypeORM entity z dekoratorami i relacjami.

Wejście
Wynik

SQL schemat na TypeORM encję

Wklej jeden lub więcej príkazów SQL CREATE TABLE, a to narzędzie wygeneruje klasy TypeORM entity gotowe do wklejenia do projektu NestJS lub Node.js — @Entity, @Column, @PrimaryGeneratedColumn oraz dekoratory relacji, które TypeORM oczekuje, wszystko wygenerowane bezpośrednio z twojego schematu.

Opcje pozwalają ci kontrolować, jak będą wyglądały klasy: wybierz postgres, mysql lub sqlite jako docelową bazę danych, ponieważ nazwy typów kolumn takie jak uuid, jsonb lub tinyint istnieją tylko w niektórych z nich. Klucze obce stają się parami @ManyToOne i @OneToMany, a czysta tabela złączenia — tylko dwa klucze obce i nic więcej — przekształca się w prawidłowy @ManyToMany z @JoinTable. Kolumny ze znakami podkreślenia mogą być automatycznie mapowane na właściwości camelCase, a wszędzie tam, gdzie się one różnią, dodawana jest opcja nazwy, a indeksy i ograniczenia unikatowości renderują się jako dekoratory @Index i @Unique na poziomie klasy. Wyłącz wartości domyślne lub detektowanie relacji, gdy chcesz tylko czyste kształty kolumn.

Parser rozumie cytowane identyfikatory, klucze obce osadzone i na poziomie tabeli, klauzule CHECK i COMMENT oraz oba typy końców linii Unix i Windows, więc zrzut schematu skopiowany z psql, mysqldump lub pliku migracji działa bezpośrednio. Duże schematy są również obsługiwane, chociaż wygenerowany kod powyżej 10 MB zwraca komunikat z prośbą o skrócenie wejścia zamiast zamrażania karty.

Wszystko działa w przeglądarce — twój schemat, nazwy tabel ani kolumny nigdy nie opuszczają twoje urządzenie. Skopiuj wynik, pobierz go jako plik .txt, aby podzielić go na encje z oddzielnych plików, lub wyślij go z powrotem do wejścia, aby kontynuować udoskonalanie tego samego schematu.

Częste pytania

Które relacje wykrywa?
Klucze obce stają się parami @ManyToOne/@OneToMany. Tabela składająca się z dokładnie dwóch kluczy obcych i niczego innego zostanie rozpoznana jako tabela złączenia i stanie się @ManyToMany z @JoinTable zamiast własnej klasy.
Jak wybierane są typy kolumn?
Każdy typ SQL mapuje się na najbliższy typ kolumny TypeORM dla wybranej docelowej bazy danych — na przykład uuid pozostaje uuid na PostgreSQL, ale na MySQL i SQLite staje się varchar(36), ponieważ żaden z nich nie ma natywnej kolumny UUID.
Czy mogę wygenerować jeden plik na encję?
Tak. Włącz "Podziel na jeden plik na encję", aby uzyskać nagłówek komentarza i własną instrukcję import dla każdej klasy, gotową do wklejenia do oddzielnych plików *.entity.ts.
Co się dzieje z kluczbmi podstawowymi złożonymi?
Każda kolumna złożonego klucza podstawowego otrzyma własny @PrimaryColumn(); automatyczne zwiększanie i generowanie UUID mają zastosowanie tylko do klucza jednokumnnowego.
Czy mój schemat bazy danych jest przesyłany gdziekolwiek?
Nie. Analiza i generowanie kodu odbywają się całkowicie w przeglądarce — SQL, które wklejasz, nigdy nie opuszcza twoje urządzenie.