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

Перетворення SQL CREATE TABLE у Prisma схему

Перетворення операторів SQL CREATE TABLE на моделі Prisma схеми.

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

Перетворення SQL CREATE TABLE у Prisma схему

Вставте один або кілька операторів SQL CREATE TABLE, і цей інструмент поверне відповідні моделі Prisma схеми — з типами стовпців, первинними ключами, унікальними обмеженнями та зв'язками зовнішніх ключів. Він розроблений для розробників, які переносять існуючу базу даних PostgreSQL, MySQL або SQLite в проект Prisma, або підключають Prisma до схеми, яку хтось інший розробив на чистому SQL.

Виберіть вихідну базу даних, щоб типи стовпців відображалися правильно — MySQL ENUM, UUID PostgreSQL або JSON стовпець SQLite вимагають різного обробки, і інструмент відзначає це вбудованою приміткою, коли тип не має точного еквівалента Prisma. Включіть іменування в однині PascalCase, щоб отримати ідіоматичні назви моделей (users стає User) з @@map назад на реальну таблицю, і camelCase імена полів, щоб отримати ідіоматичні поля Prisma (full_name стає fullName) з @map назад на реальний стовпець — обидва адитивні, тому базову схему бази даних ніколи не потрібно змінювати. Зовнішні ключі, оголошені вбудовано, як обмеження рівня таблиці або через окремий ALTER TABLE, стають належними зв'язками Prisma з обох сторін, з додатковим іменуванням зв'язку, якщо більш ніж один зовнішний ключ вказує на одну й ту ж таблицю.

Значення за замовчуванням також перетворюються: CURRENT_TIMESTAMP стає @default(now()), AUTO_INCREMENT і SERIAL стають @default(autoincrement()), а ON UPDATE CURRENT_TIMESTAMP в MySQL стає @updatedAt. Стовпці, що дозволяють NULL, отримують знак питання в кінці, складені ключі стають @@id, а складені або однопровідні унікальні обмеження стають @@unique або @unique залежно від області видимості. Все, що конвертер не може представити точно — непідтримуваний тип, обмеження CHECK, ціле число без знака — називається з коментарем прямо над впливаним полем замість мовчазного видалення або вгадування.

Все працює локально у вашому браузері: ваша схема ніколи не завантажується нікуди, що важливо, якщо вона описує виробничу базу даних. Скопіюйте результат, завантажте його як файл .txt для вставки в schema.prisma, або надішліть вихід прямо на вхід іншого інструменту, щоб продовжити його уточнення.

FAQ

Які вихідні бази даних підтримуються?
PostgreSQL, MySQL та SQLite. Виберіть правильну в параметрах — це змінює, як типи на кшталт UUID, JSON та цілі числа без знака відображаються, оскільки Prisma підтримує різні власні типи для кожного провайдера.
Як перетворюються зовнішні ключі?
Вбудовані посилання стовпців, пропозиції FOREIGN KEY на рівні таблиці та окремі оператори ALTER TABLE ... ADD FOREIGN KEY — все розпізнаються та перетворюються на зв'язок Prisma з обох сторін, ссилаючої та до якої ссилається моделі, з перенесенням дій ON DELETE та ON UPDATE.
Що відбувається з типом, який не має еквівалента в Prisma?
Він відображається на найближчий доступний тип (зазвичай String) і коментар додається над цим полем, пояснюючи розрив, тому вы точно знаєте, що потрібно перевірити вручну.
Чи будуть згенеровані назви моделей збігатися з назвами таблиць?
Тільки якщо ви вимкнете іменування в однині PascalCase. Якщо його залишити увімкненим, таблиця на кшталт order_items стає моделлю OrderItem з атрибутом @@map("order_items"), тому Prisma все ще вказує на реальну таблицю.
Моя схема завантажується кудись?
Ні. Перетворення виконується повністю у вашому браузері — ваш SQL і згенерована схема Prisma ніколи не залишають ваш пристрій.