Po co konwertować SQL na ORM?
Masz już bazę danych, działa, ma tabele. Teraz w nowym projekcie chcesz używać ORM-a (Object-Relational Mapper) zamiast pisać surowy SQL. Ale ORM-y wymagają zdefiniowania schematu w swoim własnym formacie: Prisma używa pliku `.prisma`, Drizzle używa kodu TypeScript z helperami typu `pgTable`, TypeORM używa klas z dekoratorami, Sequelize używa wywołań `sequelize.define`.
Wklejasz `CREATE TABLE` i dostajesz schemat w czterech ORM-ach: Prisma, Drizzle, TypeORM, Sequelize. Tool rozpoznaje: typy kolumn (`VARCHAR(255)` → String, `INT` → Int, `TIMESTAMP` → DateTime), nullability, default-y, klucze główne, auto-inkrementację, klucze obce z relacjami i `ON DELETE CASCADE`.
Wynik jest gotowy do wklejenia do projektu, ale traktuj go jak punkt startowy: każdy ORM ma swoje konwencje i czasem warto coś dopieścić ręcznie.
Jak korzystać
- Wklej swoje `CREATE TABLE` zapytania w lewe pole. Może być kilka tabel z relacjami (kluczami obcymi).
- Wybierz docelowy ORM: Prisma (najpopularniejszy w ekosystemie Next.js), Drizzle (typebezpieczny, lekki), TypeORM (klasyk z dekoratorami), Sequelize (najstarszy, dla Node.js).
- Dla Drizzle wybierz dialekt: PostgreSQL, MySQL albo SQLite. Każdy używa innego helpera (`pgTable`, `mysqlTable`, `sqliteTable`) i innych typów.
- W prawym polu zobaczysz wygenerowany kod. Skopiuj przyciskiem Kopiuj i wklej do swojego pliku schemat.
- Sprawdź relacje (klucze obce). Tool generuje `@relation` w Prisma, `.references()` w Drizzle, `@ManyToOne` w TypeORM. Niektóre kierunki relacji (np. odwrotny side w Prismie) trzeba dodać ręcznie.
- Lista błędów parsowania pojawia się pod spodem, jeśli SQL ma niestandardową składnię. Pokaż w niej linijkę, którą tool zignorował.
Do czego się przydaje
Klasyczne scenariusze:
- Onboarding istniejącej bazy do nowego projektu. Firma ma 5-letnią bazę na PostgreSQL, ty piszesz nowy front w Next.js z Prismą. Eksportujesz CREATE TABLE z `pg_dump --schema-only`, wklejasz tutaj, dostajesz prawie-gotowy `schema.prisma`.
- Migracja z jednego ORM-a na drugi. Stary projekt na TypeORM, nowy na Drizzle. Wygeneruj SQL z TypeORM (`typeorm migration:generate`), wklej tutaj, dostań schemat Drizzle.
- Nauka różnic między ORM-ami. Wklej proste CREATE TABLE, przełączaj cele i obserwuj, jak różnie wygląda ten sam schemat w Prisma, Drizzle, TypeORM i Sequelize. Dobra ścieżka do wyboru.
- Zaproszony do kodu zespołu, który używa innego ORM-a. Znasz Sequelize, dostałeś projekt w Prismie, chcesz szybko zorientować się jak ten sam schemat wygląda w obu.
- Code review schematu przed nową migracją. Zobacz, czy kod ORM jest spójny z DDL-em, który leży w bazie.
Po wygenerowaniu schematu warto go sformatować (dla zapytań). Jeśli pracujesz z DBML, mamy konwerter DBML → SQL.