Перейти к содержанию

Преобразование 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 никогда не покидают ваше устройство.