Generate Pydantic, SQLAlchemy, SQLModel, Dataclasses and more from your database schema in seconds
* Web UI version may differ from the latest release
Paste your SQL, get Python models instantly
CREATE TABLE "users" ( "id" SERIAL PRIMARY KEY, "email" VARCHAR(255) NOT NULL, "name" VARCHAR(100), "is_active" BOOLEAN DEFAULT TRUE, "created_at" TIMESTAMP DEFAULT NOW() );
from datetime import datetime from typing import Optional from pydantic import BaseModel class Users(BaseModel): id: int email: str name: Optional[str] is_active: Optional[bool] = True created_at: Optional[datetime] = datetime.now()
from __future__ import annotations import datetime from pydantic import BaseModel class Users(BaseModel): id: int email: str name: str | None = None is_active: bool | None = True created_at: datetime.datetime | None = datetime.datetime.now()
import sqlalchemy as sa from sqlalchemy.ext.declarative import declarative_base from sqlalchemy.sql import func Base = declarative_base() class Users(Base): __tablename__ = 'users' id = sa.Column(sa.Integer(), primary_key=True) email = sa.Column(sa.String(255), nullable=False) name = sa.Column(sa.String(100)) is_active = sa.Column(sa.Boolean(), server_default='true') created_at = sa.Column(sa.TIMESTAMP(), server_default=func.now())
import datetime from typing import Optional from sqlmodel import Field, SQLModel from sqlalchemy.sql import func class Users(SQLModel, table=True): __tablename__ = 'users' id: Optional[int] = Field(default=None, primary_key=True) email: str name: Optional[str] is_active: Optional[bool] = Field(server_default='true') created_at: Optional[datetime.datetime] = Field(server_default=func.now())
import datetime from dataclasses import dataclass, field @dataclass class Users: id: int email: str name: str = None is_active: bool = True created_at: datetime.datetime = field( default_factory=datetime.datetime.now )
One DDL, many possibilities
pydantic
pydantic_v2
sqlalchemy
sqlmodel
dataclass
gino
openapi3
sqlalchemy_core
Get started in 3 simple steps
Install via pip in seconds
pip install omymodels
Import and generate models
from omymodels import create_models result = create_models( ddl, models_type="pydantic_v2" ) print(result["code"])
Generate directly from terminal
# Generate Pydantic v2 models omm schema.sql -m pydantic_v2 -t models.py # Generate SQLModel omm schema.sql -m sqlmodel -t models.py
Everything you need for model generation
Convert between different model types. Turn Pydantic into SQLAlchemy or vice versa.
Automatically generates Python Enums from SQL ENUM and TYPE definitions.
Preserves relationships with proper foreign key references and constraints.
Handles default values, nullable fields, and other column constraints.
Create custom generators for your own frameworks without forking.
Generate OpenAPI 3 schemas or convert them to Python models.