This free online PostgreSQL to Python Dataclasses generator turns your CREATE TABLE DDL statements into ready-to-use Python Dataclasses instantly — with no server upload, no account, and no rate limits. Simply paste your PostgreSQL schema on the left and the generated Python Dataclasses code appears on the right in real time. All processing runs entirely in your browser using client-side JavaScript, keeping your database schema 100% private.
Code & Data Generator
Complete type mapping from PostgreSQL SQL column types to Python Dataclasses — including nullability, constraints, and gotchas.
| PostgreSQL Type | Python Dataclasses Type | Notes |
|---|---|---|
| SERIAL / SMALLSERIAL | int | field(default=None) for auto-generated PK |
| BIGSERIAL | int | Python int is arbitrary precision |
| INTEGER / INT / INT4 | int | — |
| BIGINT / INT8 | int | — |
| SMALLINT / INT2 | int | — |
| NUMERIC / DECIMAL(p,s) | Decimal | Import from decimal module for exact arithmetic |
| REAL / FLOAT4 | float | — |
| DOUBLE PRECISION / FLOAT8 | float | — |
| VARCHAR(n) / TEXT | str | — |
| CHAR(n) | str | — |
| BOOLEAN / BOOL | bool | — |
| TIMESTAMP | datetime | from datetime import datetime |
| TIMESTAMP WITH TIME ZONE | datetime | Use timezone-aware: datetime.timezone.utc |
| DATE | date | from datetime import date |
| TIME | time | from datetime import time |
| UUID | UUID | from uuid import UUID |
| JSONB / JSON | dict[str, Any] | from typing import Any; or define TypedDict |
| BYTEA | bytes | — |
| NOT NULL column | field: Type | No default; required at construction |
| NULL / nullable column | field: Optional[Type] = None | from typing import Optional |
Everything you need to know about converting PostgreSQL to Python Dataclasses.
Paste your PostgreSQL CREATE TABLE statements into the SQL editor on the left. The Python Dataclasses output appears instantly on the right panel in real-time as you type.
Yes — completely. The entire conversion runs inside your browser using JavaScript. Your SQL is never sent to any server, logged, or stored anywhere. This makes it safe to use with production or confidential database schemas.
PostgreSQL, MySQL, SQLite, SQL Server, Oracle, and MariaDB DDL syntax are all supported. The parser auto-detects the dialect from your CREATE TABLE syntax automatically.
Yes! Paste multiple CREATE TABLE statements separated by semicolons and all tables will be converted simultaneously, including cross-table foreign key relationships.
Yes. NULL, NOT NULL, DEFAULT values, PRIMARY KEY, UNIQUE, and FOREIGN KEY constraints are all parsed and reflected in the Python Dataclasses output. Nullable columns are correctly typed as optional properties or nullable types.
Yes, SchemaForge is completely free with no usage limits, no account required, and no rate limits. The tool runs entirely in your browser and will always be free.