İçeriğe atla
%100 yerel

SQL Şemasından TypeORM Varlığına

CREATE TABLE ifadelerini dekoratörleri ve ilişkileri içeren TypeORM varlık sınıflarına dönüştür.

Giriş
Çıkış

SQL Şemasından TypeORM Varlığına

Bir veya daha fazla SQL CREATE TABLE ifadesini yapıştır ve bu araç bir NestJS veya Node.js projesine doğrudan yerleştirilebilir TypeORM varlık sınıflarını döndürür — @Entity, @Column, @PrimaryGeneratedColumn ve TypeORM'un beklediği ilişki dekoratörleri, zaten sahip olduğun şemadan doğrudan oluşturulur.

Seçenekler sınıfların nasıl çıktığını kontrol eder: hedef veritabanı olarak postgres, mysql veya sqlite seç, çünkü uuid, jsonb veya tinyint gibi sütun türü adları yalnızca bazı veritabanlarında bulunur. Yabancı anahtarlar @ManyToOne ve @OneToMany çiftlerine dönüşür ve yalnızca iki yabancı anahtardan ve başka hiçbir şeyden oluşan saf bir birleştirme tablosu uygun bir @ManyToMany ile @JoinTable haline çöker. snake_case sütunlar camelCase özelliklerine eşlenebilir, ikisi farklıysa bir ad seçeneği eklenir ve dizinler ve benzersizlik kısıtlamaları sınıf düzeyinde @Index ve @Unique dekoratörleri olarak görünür. Ayrıştırıcı tırnak içine alınmış tanımlayıcıları, satır içi ve tablo düzeyinde yabancı anahtarları, CHECK ve COMMENT yan tümcelerini ve hem Unix hem de Windows satır sonlarını anlar, bu nedenle psql, mysqldump veya bir migrasyon dosyasından kopyalanan şema dumpı olduğu gibi çalışır.

Her şey tarayıcıda çalışır — hiçbir şema, tablo adı veya sütun cihazından ayrılmaz. Sonucu kopyala, dosya başına varlıklar için bölmek üzere .txt dosyası olarak indir veya aynı şemayı iyileştirmeye devam etmek için doğrudan girişe geri gönder.

FAQ

Hangi ilişkileri algılıyor?
Yabancı anahtarlar @ManyToOne/@OneToMany çiftlerine dönüşür. Tam olarak iki yabancı anahtardan ve başka hiçbir şeyden oluşan bir tablo, birleştirme tablosu olarak tanınır ve kendi sınıfı yerine @JoinTable ile @ManyToMany olur.
Sütun türleri nasıl seçilir?
Her SQL türü seçtiğin hedef veritabanı için en yakın TypeORM sütun türüne eşlenir — örneğin uuid PostgreSQL'de uuid olarak kalır ancak MySQL ve SQLite'de varchar(36) olur, çünkü ikisinin de yerel UUID sütunu yok.
Her varlık için bir dosya oluşturabilir misiniz?
Evet. Her sınıf için bir yorum başlığı ve kendi import ifadesini almak için "Her Varlık için Ayrı Dosya" seçeneğini açın, ayrı *.entity.ts dosyalarına yapıştırmaya hazır.
Bileşik birincil anahtarlarla ne olur?
Bileşik birincil anahtarın her sütunu kendi @PrimaryColumn() öğesini alır; otomatik artış ve UUID oluşturma yalnızca tek sütunlu anahtarlar için geçerlidir.
Veritabanı şemam bir yere yükleniyor mu?
Hayır. Ayrıştırma ve kod oluşturma tamamen tarayıcıda gerçekleşir — yapıştırdığın SQL cihazdan ayrılmaz.