What is SQL to SQLModel Generator?
This tool converts SQL CREATE TABLE statements to Python SQLModel classes. SQLModel is a library designed by the creator of FastAPI that combines Pydantic validation with SQLAlchemy ORM, allowing you to define database models and API schemas in a single class. The generated code includes proper type mapping, Field annotations, and optional Pydantic validation models.
How to Use
- Paste your SQL CREATE TABLE statements
- Select Python version (3.9+ or 3.10+ for union type syntax)
- Configure options: table=True, Pydantic validation, Optional for nullable
- Click "Generate" and copy the SQLModel code
Why Use This Tool?
Tips & Best Practices
- SQLModel classes with table=True are both Pydantic models and SQLAlchemy models
- Use the Pydantic validation option to generate separate Create/Read schemas for FastAPI
- Python 3.10+ allows using X | None instead of Optional[X] for nullable types
- Add sqlmodel to your requirements: pip install sqlmodel
Frequently Asked Questions
What is SQLModel?
SQLModel is a Python library for interacting with SQL databases using Python code. It is designed to be intuitive, easy to use, highly compatible, and robust. SQLModel is based on Python type annotations, and powered by Pydantic and SQLAlchemy.
How are SQL types mapped to Python types?
SQL types are mapped to Python types suitable for SQLModel. INTEGER/BIGINT map to int, VARCHAR/TEXT map to str, BOOLEAN maps to bool, TIMESTAMP maps to datetime, DATE maps to date, FLOAT/REAL map to float, DECIMAL maps to Decimal, UUID maps to uuid.UUID, JSON maps to dict, and BLOB maps to bytes. Nullable columns use Optional[T].
How does SQLModel combine Pydantic and SQLAlchemy?
SQLModel is designed by the creator of FastAPI and combines Pydantic validation with SQLAlchemy ORM. Each SQLModel class is simultaneously a Pydantic model (for data validation and serialization) and a SQLAlchemy model (for database operations), eliminating the need to maintain separate models.
Can I use SQLModel with FastAPI?
Yes, SQLModel integrates seamlessly with FastAPI. Since SQLModel classes are also Pydantic models, you can use them directly as request/response types in FastAPI path operations, making it ideal for building APIs with database persistence.
Is my SQL data sent to a server?
No, all processing happens entirely in your browser. Your SQL schema never leaves your device. The conversion is performed client-side using a regex-based parser.