You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
> ⭐**Star this repo** if you work with multiple ORMs — it helps other developers find SchemaForge!
13
+
> â**Star this repo** if you work with multiple ORMs — it helps other developers find SchemaForge!
14
14
15
-
**Why SchemaForge?** Every major ORM migration is a one-way street. Prisma introspects SQL but can't export back. Drizzle users manually rewrite schemas when switching ORMs. TypeORM developers are locked into decorator syntax. SchemaForge is the first tool to do **bidirectional, lossless conversion** between 11 schema formats — with a shared internal representation that guarantees roundtrip fidelity.
15
+
**Why SchemaForge?** Every major ORM migration is a one-way street. Prisma introspects SQL but can't export back. Drizzle users manually rewrite schemas when switching ORMs. TypeORM developers are locked into decorator syntax. SchemaForge is the first tool to do **bidirectional, lossless conversion** between 11 schema formats — with a shared internal representation that guarantees roundtrip fidelity.
16
16
17
-
Convert any schema to any format, verify equivalence with the diff command, generate Alembic migrations, produce JSON Schema definitions, create GraphQL SDL types, convert Entity Framework (C#) entities, generate Scala case classes, and batch-process entire directories. Whether you're migrating from Prisma to Drizzle, sharing a schema with a Django backend, exposing your data model as GraphQL, translating C# entities to Scala, or working with the SchemaForge VS Code extension for live preview — SchemaForge handles it.
17
+
Convert any schema to any format, verify equivalence with the diff command, generate Alembic migrations, produce JSON Schema definitions, create GraphQL SDL types, convert Entity Framework (C#) entities, generate Scala case classes, and batch-process entire directories. Whether you're migrating from Prisma to Drizzle, sharing a schema with a Django backend, exposing your data model as GraphQL, translating C# entities to Scala, or working with the SchemaForge VS Code extension for live preview — SchemaForge handles it.
@@ -106,17 +106,17 @@ Detects added, removed, and modified tables, columns, indexes, and constraints.
106
106
107
107
| Format | Import | Export | Roundtrip |
108
108
|--------|:------:|:------:|:---------:|
109
-
| SQL DDL |✓|✓|✓|
110
-
| Prisma schema |✓|✓|✓|
111
-
| Drizzle schema |✓|✓|✓|
112
-
| TypeORM entities |✓|✓|✓|
113
-
| Django models |✓|✓|✓|
114
-
| SQLAlchemy models |✓|✓|✓|
115
-
| Alembic migrations |—|✓|—|
116
-
| JSON Schema |✓|✓|✓|
117
-
| GraphQL SDL |✓|✓|✓|
118
-
| EF Core (C#) |✓|✓|✓|
119
-
| Scala case class |✓|✓|✓|
109
+
| SQL DDL |✓|✓|✓|
110
+
| Prisma schema |✓|✓|✓|
111
+
| Drizzle schema |✓|✓|✓|
112
+
| TypeORM entities |✓|✓|✓|
113
+
| Django models |✓|✓|✓|
114
+
| SQLAlchemy models |✓|✓|✓|
115
+
| Alembic migrations |—|✓|—|
116
+
| JSON Schema |✓|✓|✓|
117
+
| GraphQL SDL |✓|✓|✓|
118
+
| EF Core (C#) |✓|✓|✓|
119
+
| Scala case class |✓|✓|✓|
120
120
121
121
**Alembic** is generator-only: you can create migration scripts from any format, but parsing existing migrations back to IR is not yet supported.
122
122
@@ -138,24 +138,24 @@ Detects added, removed, and modified tables, columns, indexes, and constraints.
138
138
139
139
## How It Works
140
140
141
-
SchemaForge uses a **shared Internal Representation (IR)**— all formats convert to and from this common schema definition. This architecture guarantees:
141
+
SchemaForge uses a **shared Internal Representation (IR)**— all formats convert to and from this common schema definition. This architecture guarantees:
142
142
143
-
-**Zero-loss roundtripping**: `sql → prisma → sql` produces the same schema you started with
143
+
-**Zero-loss roundtripping**: `sql → prisma → sql` produces the same schema you started with
144
144
-**Bidirectional conversion**: every supported format can convert to every other format
145
-
-**Extensibility**: adding a new format requires only a parser and a generator — no pairwise converters
145
+
-**Extensibility**: adding a new format requires only a parser and a generator — no pairwise converters
146
146
147
147
```
148
-
| SQL DDL ───┐
149
-
| Prisma ────┤
150
-
| Drizzle ───┤
151
-
| TypeORM ───┤
152
-
| Django ────┤
153
-
| SQLAlchemy ───┤
154
-
| Alembic ────┤
155
-
| JSON Schema ──┤
156
-
| GraphQL ────┤
157
-
| EF Core ─────┤
158
-
| Scala ─────┤
148
+
| SQL DDL ───â”
149
+
| Prisma ────┤
150
+
| Drizzle ───┤
151
+
| TypeORM ───┤
152
+
| Django ────┤
153
+
| SQLAlchemy ───┤
154
+
| Alembic ────┤
155
+
| JSON Schema ──┤
156
+
| GraphQL ────┤
157
+
| EF Core ─────┤
158
+
| Scala ─────┤
159
159
```
160
160
161
161
Each parser reads format-specific syntax and builds a schema IR. Each generator takes the same IR and produces format-native output. The `fn:` prefix convention preserves SQL function defaults (CURRENT_TIMESTAMP, NOW(), gen_random_uuid()) across format boundaries.
@@ -213,19 +213,19 @@ Try SchemaForge immediately with our example blog schema. The `fixtures/` direct
| Priority support | Community | 24h | 24h | 8h | Dedicated |
416
416
417
417
## Development
@@ -443,8 +443,9 @@ PRs welcome! New format parsers/generators, bug fixes, and documentation improve
443
443
444
444
## License
445
445
446
-
MIT — see [LICENSE](LICENSE)
446
+
MIT — see [LICENSE](LICENSE)
447
447
448
448
---
449
449
450
-
<sub>Part of [Revenue Holdings](https://coding-dev-tools.github.io/revenueholdings.dev/) — a suite of 10 developer CLI tools built by autonomous AI agents. Also check out the [SchemaForge VS Code extension](https://github.com/Coding-Dev-Tools/vscode-schemaforge), [API Contract Guardian](https://github.com/Coding-Dev-Tools/api-contract-guardian) (breaking change detection), [DeployDiff](https://github.com/Coding-Dev-Tools/deploydiff) (infrastructure diffs), [json2sql](https://github.com/Coding-Dev-Tools/json2sql) (JSON → SQL), [ConfigDrift](https://github.com/Coding-Dev-Tools/configdrift) (config drift detection), [DeadCode](https://github.com/Coding-Dev-Tools/deadcode) (dead code cleanup), [APIAuth](https://github.com/Coding-Dev-Tools/apiauth) (API key management), [APIGhost](https://github.com/Coding-Dev-Tools/apighost) (mock API server), [Envault](https://github.com/Coding-Dev-Tools/envault) (env sync), and [click-to-mcp](https://github.com/Coding-Dev-Tools/click-to-mcp) (CLI → MCP server).</sub>
450
+
<sub>Part of [Revenue Holdings](https://coding-dev-tools.github.io/revenueholdings.dev/) — a suite of 10 developer CLI tools built by autonomous AI agents. Also check out the [SchemaForge VS Code extension](https://github.com/Coding-Dev-Tools/vscode-schemaforge), [API Contract Guardian](https://github.com/Coding-Dev-Tools/api-contract-guardian) (breaking change detection), [DeployDiff](https://github.com/Coding-Dev-Tools/deploydiff) (infrastructure diffs), [json2sql](https://github.com/Coding-Dev-Tools/json2sql) (JSON → SQL), [ConfigDrift](https://github.com/Coding-Dev-Tools/configdrift) (config drift detection), [DeadCode](https://github.com/Coding-Dev-Tools/deadcode) (dead code cleanup), [APIAuth](https://github.com/Coding-Dev-Tools/apiauth) (API key management), [APIGhost](https://github.com/Coding-Dev-Tools/apighost) (mock API server), [Envault](https://github.com/Coding-Dev-Tools/envault) (env sync), and [click-to-mcp](https://github.com/Coding-Dev-Tools/click-to-mcp) (CLI → MCP server).</sub>
0 commit comments