Перейти до вмісту

SQL схема у TypeORM сутність

Перетворюйте CREATE TABLE на класи TypeORM з декораторами та відносинами.

Введення
Вихід

SQL схема у TypeORM сутність

Вставте один чи кілька CREATE TABLE виразів, і цей інструмент повернутиме класи TypeORM, готові до використання у проекті NestJS або Node.js — @Entity, @Column, @PrimaryGeneratedColumn та декоратори відносин, які очікує TypeORM, згенеровані прямо з вашої схеми.

Опції керують виводом: оберіть PostgreSQL, MySQL або SQLite як цільову базу даних, оскільки типи стовпців на кшталт uuid, jsonb або tinyint існують лише на деяких з них. Зовнішні ключі стають парами @ManyToOne та @OneToMany, а чиста таблиця зв'язків — два зовнішніх ключі та ніщо більше — перетворюється на правильну @ManyToMany з @JoinTable. Стовпці у snake_case можна автоматично перетворити на властивості camelCase, з параметром name, додаваним скрізь, де вони відрізняються, а індекси та обмеження унікальності відображаються як декоратори класу @Index та @Unique. Вимкніть значення за замовчуванням або виявлення відносин, якщо вам потрібна лише базова форма стовпця.

Парсер розуміє цитовані ідентифікатори, вбудовані та табличні зовнішні ключі, пропозиції CHECK та COMMENT, а також Unix та Windows розриви рядків, тому дамп схеми, скопійований з psql, mysqldump або файлу міграції, працює як є. Великі схеми також обробляються, але згенерований код вище 10 МБ повернутиме повідомлення з проханням скоротити вхідні дані, щоб не зависнути вкладці.

Усе працює у вашому браузері — ні схема, ні ім'я таблиці, ні стовпець ніколи не покидають ваш пристрій. Скопіюйте результат, завантажте його як .txt файл для самостійного розбиття на сутності, або відправте назад до вхідних даних, щоб продовжити вдосконалення тієї самої схеми.

FAQ

Які відносини виявляються?
Зовнішні ключі стають парами @ManyToOne/@OneToMany. Таблиця, що складається рівно з двох зовнішніх ключів та ніщо більше, розпізнається як таблиця зв'язків і стає @ManyToMany з @JoinTable замість власного класу.
Як вибираються типи стовпців?
Кожний тип SQL зіставляється з найближчим типом стовпця TypeORM для обраної цільової бази даних — наприклад uuid залишається uuid на PostgreSQL, але стає varchar(36) на MySQL та SQLite, оскільки жоден з них не має вбудованого стовпця UUID.
Чи можу я згенерувати один файл на сутність?
Так. Включіть «Розбити на один файл на сутність», щоб отримати заголовок коментаря та власний оператор import для кожного класу, готовий до вставки в окремі *.entity.ts файли.
Що відбувається зі складеними первинними ключами?
Кожен стовпець складеного первинного ключа отримує свій власний @PrimaryColumn(); автозбільшення та генерація UUID застосовуються лише до ключа з одним стовпцем.
Чи завантажується моя схема бази даних кудись?
Ні. Парсинг та генерація коду виконуються повністю у вашому браузері — SQL, який ви вставляєте, ніколи не покидає ваш пристрій.