This free online PostgreSQL to TypeScript Interfaces generator turns your CREATE TABLE DDL statements into ready-to-use TypeScript Interfaces instantly — with no server upload, no account, and no rate limits. Simply paste your PostgreSQL schema on the left and the generated TypeScript Interfaces 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 TypeScript Interfaces — including nullability, constraints, and gotchas.
| PostgreSQL Type | TypeScript Interfaces Type | Notes |
|---|---|---|
| SERIAL / SMALLSERIAL | number | Auto-increment PK; JS always returns number |
| BIGSERIAL | number | Use bigint for values exceeding 2⁵³ |
| INTEGER / INT / INT4 | number | — |
| BIGINT / INT8 | number | Beware precision loss for very large values |
| SMALLINT / INT2 | number | — |
| NUMERIC / DECIMAL(p,s) | number | Floating-point representation; use string for exact accounting |
| REAL / FLOAT4 | number | — |
| DOUBLE PRECISION / FLOAT8 | number | — |
| VARCHAR(n) / CHARACTER VARYING | string | — |
| TEXT | string | Unlimited length string |
| CHAR(n) / CHARACTER | string | Fixed-length; padded with spaces in DB |
| BOOLEAN / BOOL | boolean | — |
| TIMESTAMP / TIMESTAMP WITH TIME ZONE | Date | APIs typically return ISO 8601 string; parse with new Date() |
| DATE | string | Returns YYYY-MM-DD string; use Date only if parsing |
| TIME | string | Returns HH:MM:SS string |
| UUID | string | Generate with crypto.randomUUID() |
| JSONB / JSON | Record<string, unknown> | Define a typed interface for known shapes |
| BYTEA | Buffer | Node.js Buffer or Uint8Array in browser |
| ARRAY (e.g. TEXT[]) | string[] | Typed array; replace with element type |
| NOT NULL column | field: Type | Required, non-optional property |
| NULL / nullable column | field?: Type | Optional property (or Type | null) |
Everything you need to know about converting PostgreSQL to TypeScript Interfaces.
Paste your PostgreSQL CREATE TABLE statements into the SQL editor on the left. The TypeScript Interfaces 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 TypeScript Interfaces 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.