Skip to content

Commit 3673916

Browse files
author
Revenue Holdings
committed
feat: add Beta badge to README
1 parent 1fb828a commit 3673916

1 file changed

Lines changed: 85 additions & 84 deletions

File tree

README.md

Lines changed: 85 additions & 84 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
# SchemaForge
1+
# SchemaForge
22

3-
> **Bidirectional ORM schema converter** convert between SQL DDL, Prisma, Drizzle, TypeORM, Django, SQLAlchemy, Alembic migrations, JSON Schema, GraphQL SDL, EF Core (C#), and Scala case classes. **11 formats, 110 direction pairs.**
3+
> **Bidirectional ORM schema converter** — convert between SQL DDL, Prisma, Drizzle, TypeORM, Django, SQLAlchemy, Alembic migrations, JSON Schema, GraphQL SDL, EF Core (C#), and Scala case classes. **11 formats, 110 direction pairs.**
44
55
[![GitHub stars](https://img.shields.io/github/stars/Coding-Dev-Tools/schemaforge?style=social)](https://github.com/Coding-Dev-Tools/schemaforge/stargazers)
66
[![PyPI](https://img.shields.io/pypi/v/schemaforge)](https://pypi.org/project/schemaforge/)
@@ -10,19 +10,19 @@
1010
[![Tests](https://img.shields.io/badge/tests-270%20passing-brightgreen)](https://github.com/Coding-Dev-Tools/schemaforge)
1111
[![VS Code](https://img.shields.io/badge/VS%20Code-extension-blue)](https://marketplace.visualstudio.com/items?itemName=revenue-holdings.vscode-schemaforge)
1212

13-
> **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!
1414
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.
1616

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.
1818

1919
## Quick Start
2020

2121
```bash
2222
# Install
2323
pip install schemaforge
2424

25-
# Convert Prisma Drizzle
25+
# Convert Prisma → Drizzle
2626
schemaforge convert --from prisma --to drizzle --input schema.prisma
2727

2828
# Generate GraphQL from SQL
@@ -106,17 +106,17 @@ Detects added, removed, and modified tables, columns, indexes, and constraints.
106106

107107
| Format | Import | Export | Roundtrip |
108108
|--------|:------:|:------:|:---------:|
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 | ✓ | ✓ | ✓ |
120120

121121
**Alembic** is generator-only: you can create migration scripts from any format, but parsing existing migrations back to IR is not yet supported.
122122

@@ -138,24 +138,24 @@ Detects added, removed, and modified tables, columns, indexes, and constraints.
138138

139139
## How It Works
140140

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:
142142

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
144144
- **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
146146

147147
```
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 ─────┤
159159
```
160160

161161
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
213213
# List all fixtures
214214
ls fixtures/
215215
216-
# Convert SQL Prisma
216+
# Convert SQL → Prisma
217217
schemaforge convert --from sql --to prisma --input fixtures/sample.sql
218218
219-
# Convert Prisma Django
219+
# Convert Prisma → Django
220220
schemaforge convert --from prisma --to django --input fixtures/sample.prisma
221221
222-
# Convert SQL GraphQL
222+
# Convert SQL → GraphQL
223223
schemaforge convert --from sql --to graphql --input fixtures/sample.sql
224224
225-
# Convert SQL JSON Schema
225+
# Convert SQL → JSON Schema
226226
schemaforge convert --from sql --to json_schema --input fixtures/sample.sql
227227
228-
# Convert Prisma Alembic migration
228+
# Convert Prisma → Alembic migration
229229
schemaforge convert --from prisma --to alembic --input fixtures/sample.prisma --output migrations/
230230
231231
# Custom type mapping demo
@@ -243,23 +243,23 @@ Each fixture demonstrates the same blog schema so you can compare ORM syntax sid
243243

244244
## Features
245245

246-
- **Bidirectional conversion** all 11 formats convert to and from every other format
247-
- **Zero-loss roundtripping** `sql prisma sql` reproduces the original schema exactly
248-
- **Custom type mappings** YAML/JSON config files to override any type mapping with template variables
249-
- **VS Code extension** live preview, schema diff, and one-click conversion from VS Code
250-
- **Alembic migration generation** create database migration scripts from any schema format
251-
- **JSON Schema** import/export schema definitions as JSON Schema (draft 2020-12)
252-
- **GraphQL SDL** generate or consume GraphQL type definitions with enums, directives, and scalars
253-
- **EF Core (C#) support** import/export Entity Framework entity classes with data annotations
254-
- **Scala case class support** generate case classes targeting Doobie/Quill/Slick
255-
- **Diff mode** compare two schemas in the same format with line-level differences
256-
- **Batch mode** convert entire directories of schema files with one command
257-
- **Intelligent type mapping** types map correctly across all 11 formats
258-
- **Function default preservation** `CURRENT_TIMESTAMP`, `NOW()`, `gen_random_uuid()` survive roundtrips
259-
- **MySQL support** ENGINE=InnoDB, AUTO_INCREMENT, DEFAULT CHARSET, COMMENT table options
260-
- **Inline ENUM** `ENUM('small', 'medium', 'large')` column types parsed and roundtripped
261-
- **Relation preservation** indexes, unique constraints maintained across all conversions
262-
- **Custom type handling** dialect-specific types (JSONB, etc.) pass through via CUSTOM type
246+
- **Bidirectional conversion** — all 11 formats convert to and from every other format
247+
- **Zero-loss roundtripping** — `sql → prisma → sql` reproduces the original schema exactly
248+
- **Custom type mappings** — YAML/JSON config files to override any type mapping with template variables
249+
- **VS Code extension** — live preview, schema diff, and one-click conversion from VS Code
250+
- **Alembic migration generation** — create database migration scripts from any schema format
251+
- **JSON Schema** — import/export schema definitions as JSON Schema (draft 2020-12)
252+
- **GraphQL SDL** — generate or consume GraphQL type definitions with enums, directives, and scalars
253+
- **EF Core (C#) support** — import/export Entity Framework entity classes with data annotations
254+
- **Scala case class support** — generate case classes targeting Doobie/Quill/Slick
255+
- **Diff mode** — compare two schemas in the same format with line-level differences
256+
- **Batch mode** — convert entire directories of schema files with one command
257+
- **Intelligent type mapping** — types map correctly across all 11 formats
258+
- **Function default preservation** — `CURRENT_TIMESTAMP`, `NOW()`, `gen_random_uuid()` survive roundtrips
259+
- **MySQL support** — ENGINE=InnoDB, AUTO_INCREMENT, DEFAULT CHARSET, COMMENT table options
260+
- **Inline ENUM** — `ENUM('small', 'medium', 'large')` column types parsed and roundtripped
261+
- **Relation preservation** — indexes, unique constraints maintained across all conversions
262+
- **Custom type handling** — dialect-specific types (JSONB, etc.) pass through via CUSTOM type
263263

264264
## MCP Server
265265

@@ -269,7 +269,7 @@ SchemaForge includes an **MCP (Model Context Protocol) server** that exposes all
269269
# Install with MCP support
270270
pip install schemaforge[mcp]
271271
272-
# Start the server (stdio mode default for AI clients)
272+
# Start the server (stdio mode — default for AI clients)
273273
schemaforge mcp
274274
275275
# Start as SSE HTTP server
@@ -318,13 +318,13 @@ The **SchemaForge VS Code extension** provides live schema preview, quick conver
318318

319319
### Features
320320

321-
- **Live Preview** opens a side panel showing your active schema file converted to all other formats (tabbed interface for quick comparison)
322-
- **Quick Convert** `Ctrl+Alt+S` / `Cmd+Alt+S` to convert the active editor's schema to your configured default target format
323-
- **Format Detection** `Ctrl+Alt+D` / `Cmd+Alt+D` to detect and display the format of the active schema file
324-
- **Diff Two Schemas** select two schema files to diff them side-by-side in VS Code's native diff editor
325-
- **Right-Click Conversion** right-click any schema file in the explorer to convert it
326-
- **Custom Editor** open `.schemaforge` files for a rich conversion preview
327-
- **Auto-Refresh** preview panel updates when you save a schema file or switch tabs
321+
- **Live Preview** — opens a side panel showing your active schema file converted to all other formats (tabbed interface for quick comparison)
322+
- **Quick Convert** — `Ctrl+Alt+S` / `Cmd+Alt+S` to convert the active editor's schema to your configured default target format
323+
- **Format Detection** — `Ctrl+Alt+D` / `Cmd+Alt+D` to detect and display the format of the active schema file
324+
- **Diff Two Schemas** — select two schema files to diff them side-by-side in VS Code's native diff editor
325+
- **Right-Click Conversion** — right-click any schema file in the explorer to convert it
326+
- **Custom Editor** — open `.schemaforge` files for a rich conversion preview
327+
- **Auto-Refresh** — preview panel updates when you save a schema file or switch tabs
328328

329329
### Installation
330330

@@ -355,7 +355,7 @@ npm run compile
355355

356356
| Version | Features |
357357
|---------|----------|
358-
| v0.1.0 | SQL DDL Prisma bidirectional conversion |
358+
| v0.1.0 | SQL DDL ↔ Prisma bidirectional conversion |
359359
| v0.2.0 | Drizzle schema support |
360360
| v0.3.0 | TypeORM entities support |
361361
| v0.4.0 | Django models support |
@@ -364,14 +364,14 @@ npm run compile
364364
| v0.7.0 | MySQL table options (ENGINE, CHARSET), inline ENUM('a','b','c') |
365365
| v0.8.0 | Alembic migration generation (7th format) |
366366
| v0.9.0 | Shared generator base module, refactored fn: default handling |
367-
| v1.0.0 | Stable release comprehensive docs, CLI polish |
367+
| v1.0.0 | Stable release — comprehensive docs, CLI polish |
368368
| v1.1.0 | Custom type mapping configuration (YAML/JSON overrides) |
369369
| v1.2.0 | JSON Schema support (8th format) |
370370
| **v1.3.0** | **GraphQL SDL support (9th format)** |
371371
| v1.4.0 | Schema consistency check, CI/CD workflow, MCP server |
372372
| **v1.5.0** | **Entity Framework Core (C#) support (10th format)** |
373373
| **v1.6.0** | **Scala case class support (11th format)** |
374-
| **v1.7.0** | **VS Code extension live preview, diff, quick convert** |
374+
| **v1.7.0** | **VS Code extension — live preview, diff, quick convert** |
375375

376376
### Planned
377377

@@ -387,31 +387,31 @@ SchemaForge is one of eight tools in the Revenue Holdings suite. One license cov
387387

388388
| Plan | Price | Best For |
389389
|------|-------|----------|
390-
| **Free** | $0 | Individual devs, OSS CLI only, rate-limited |
391-
| **SchemaForge Individual** | **$15/mo** ($12 billed annually) | Professional devs unlimited conversions, batch mode |
392-
| **Suite (all 8 tools)** | **$49/mo** ($39 billed annually) | Full Revenue Holdings toolkit 40% savings |
393-
| **Team** | **$79/mo** ($63 billed annually) | Up to 5 devs shared schemas, team dashboard, alerts |
390+
| **Free** | $0 | Individual devs, OSS — CLI only, rate-limited |
391+
| **SchemaForge Individual** | **$15/mo** ($12 billed annually) | Professional devs — unlimited conversions, batch mode |
392+
| **Suite (all 8 tools)** | **$49/mo** ($39 billed annually) | Full Revenue Holdings toolkit — 40% savings |
393+
| **Team** | **$79/mo** ($63 billed annually) | Up to 5 devs — shared schemas, team dashboard, alerts |
394394
| **Enterprise** | Custom | SSO, RBAC, compliance reports, dedicated support |
395395

396-
🔹 **No lock-in**: CLI works fully offline on the free tier no telemetry, no phone-home.
397-
🔹 **Annual billing**: Save 20%.
396+
🔹 **No lock-in**: CLI works fully offline on the free tier — no telemetry, no phone-home.
397+
🔹 **Annual billing**: Save 20%.
398398

399399
### Per-Tier Features
400400

401401
| Feature | Free | Individual | Suite | Team | Enterprise |
402402
|---------|:----:|:----------:|:-----:|:----:|:----------:|
403-
| CLI: convert, diff | | | | | |
404-
| All 9 format directions | | | | | |
405-
| Alembic migration generation | | | | | |
406-
| JSON Schema import/export | | | | | |
407-
| GraphQL SDL import/export | | | | | |
408-
| MCP server (AI agent tools) | | | | | |
409-
| Custom type mappings | | | | | |
410-
| Batch directory conversion | | | | | |
411-
| Team shared type mappings | | | | | |
412-
| Dashboard & analytics | | | | | |
413-
| Compliance reports | | | | | |
414-
| RBAC / SSO / SAML / OIDC | | | | | |
403+
| CLI: convert, diff | ✓ | ✓ | ✓ | ✓ | ✓ |
404+
| All 9 format directions | — | ✓ | ✓ | ✓ | ✓ |
405+
| Alembic migration generation | — | ✓ | ✓ | ✓ | ✓ |
406+
| JSON Schema import/export | — | ✓ | ✓ | ✓ | ✓ |
407+
| GraphQL SDL import/export | — | ✓ | ✓ | ✓ | ✓ |
408+
| MCP server (AI agent tools) | ✓ | ✓ | ✓ | ✓ | ✓ |
409+
| Custom type mappings | — | ✓ | ✓ | ✓ | ✓ |
410+
| Batch directory conversion | — | ✓ | ✓ | ✓ | ✓ |
411+
| Team shared type mappings | — | — | — | ✓ | ✓ |
412+
| Dashboard & analytics | — | — | — | ✓ | ✓ |
413+
| Compliance reports | — | — | — | — | ✓ |
414+
| RBAC / SSO / SAML / OIDC | — | — | — | — | ✓ |
415415
| Priority support | Community | 24h | 24h | 8h | Dedicated |
416416

417417
## Development
@@ -443,8 +443,9 @@ PRs welcome! New format parsers/generators, bug fixes, and documentation improve
443443

444444
## License
445445

446-
MIT see [LICENSE](LICENSE)
446+
MIT — see [LICENSE](LICENSE)
447447

448448
---
449449

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>
451+

0 commit comments

Comments
 (0)