Skip to content

Releases: Coding-Dev-Tools/schemaforge

v1.7.0 — VS Code Extension

Choose a tag to compare

@Coding-Dev-Tools Coding-Dev-Tools released this 15 May 08:58

SchemaForge v1.7.0 — VS Code Extension

This release ships the SchemaForge VS Code extension — live schema preview, quick conversion, and schema diffing directly from the editor.

New: VS Code Extension

  • Live Preview — side panel showing active schema converted to all 11 formats (tabbed interface)
  • Quick ConvertCtrl+Alt+S / Cmd+Alt+S to convert to default target format
  • Format DetectionCtrl+Alt+D / Cmd+Alt+D to detect schema format
  • Schema Diff — select two schema files for VS Code native diff comparison
  • Right-Click Conversion — convert or detect from the file explorer
  • Custom Editor.schemaforge files open with rich conversion preview
  • Auto-Refresh — preview updates on save and tab switch

Docs

  • README: full VS Code extension section with config table
  • Roadmap: v1.5.0 (EF Core), v1.6.0 (Scala), v1.7.0 (VS Code ext) added
  • Format tables updated to include all 11 formats

Companion Repo

Extension source: https://github.com/Coding-Dev-Tools/vscode-schemaforge

v1.3.0 — GraphQL SDL Format Support

Choose a tag to compare

@Coding-Dev-Tools Coding-Dev-Tools released this 15 May 07:58

v1.3.0 — GraphQL SDL Format Support

New Format: GraphQL SDL (9th format)

SchemaForge now supports GraphQL Schema Definition Language as a first-class format:

  • Parse files with type definitions, enums, input types, directives
  • Generate clean SDL with proper non-null (!) annotations
  • Full roundtripping through the internal representation
  • Cross-format conversion with all 8 existing formats

Parser

  • GraphQLParser: handles type, enum, input, scalar definitions
  • Supports @unique, @default, @id directives
  • Handles nullable (!), list types ([Type]), and nested type references
  • Ignores Query/Mutation/Subscription root types

Generator

  • GraphQLGenerator: produces clean SDL from Schema IR
  • Automatic ID type for primary-key id columns
  • Proper non-null annotations (!) for required fields
  • Enum definitions with values list
  • Custom scalar declarations

CLI

  • --from graphql and --to graphql now available
  • 9 formats total: sql, prisma, drizzle, typeorm, django, sqlalchemy, alembic, json_schema, graphql

Testing

  • 16 new tests: parsing, generation, roundtrip, cross-format
  • Fixture file: fixtures/sample.graphql
  • Total: 205 tests passing

v1.2.0 — JSON Schema Support

Choose a tag to compare

@Coding-Dev-Tools Coding-Dev-Tools released this 15 May 07:50

JSON Schema Support

SchemaForge v1.2.0 adds JSON Schema as the 8th supported format. You can now convert between JSON Schema and all 7 existing formats (SQL DDL, Prisma, Drizzle, TypeORM, Django, SQLAlchemy, Alembic).

New Format: json_schema

schemaforge convert --from sql --to json_schema --input schema.sql
schemaforge convert --from json_schema --to prisma --input schema.json

Parsing (JSON Schema → IR)

  • Reads $defs entries as tables with properties as columns
  • Full type mapping: string, integer, number, boolean, object, array + formats (date-time, uuid, email, etc.)
  • ENUM columns from "enum": [...] on string properties
  • Required fields → non-nullable columns
  • maxLength → length type_arg, default values preserved, descriptions → comments
  • Standalone schemas (no $defs) treated as single-table schema

Generation (IR → JSON Schema)

  • Draft 2020-12 output with proper $schema header
  • Each table → $defs entry with properties, required array, and type
  • Type mappings: INTEGER→integer, STRING→string, DATETIME→date-time, ENUM→enum, etc.
  • Single-table schemas get a $ref shortcut pointing to the definition
  • TypeConfig overrides supported (override any ColumnType per format)

What Changed

  • 6 new files: parser, generator, fixture, 29 tests
  • CLI updated: json_schema included in --from/--to choices
  • 189/189 tests passing

v1.1.0 — Custom Type Mapping Configuration

Choose a tag to compare

@Coding-Dev-Tools Coding-Dev-Tools released this 15 May 07:45

Custom Type Mapping Configuration

SchemaForge v1.1.0 introduces custom type mapping overrides. Users can now override any default type mapping per format via YAML or JSON config files.

New Feature: --type-map CLI option

schemaforge convert --from sql --to prisma --input schema.sql --type-map types.yaml

Template Variables in Override Strings

  • {length} — string/numeric length
  • {precision} — decimal precision
  • {scale} — decimal scale
  • {values} — comma-separated ENUM values

Example Config (types.yaml)

overrides:
  sql:
    STRING: "VARCHAR({length})"
    UUID: "UUID"
  prisma:
    STRING: "String @db.VarChar({length})"
    UUID: "String @uuid"
  sqlalchemy:
    STRING: "Unicode({length})"
    UUID: "Uuid"
    DATETIME: "DateTime(timezone=True)"

What Changed

  • TypeConfig: Load from .yaml/.yml/.json with template variable resolution
  • CLI: --type-map option added to convert command
  • All 7 generators forward type_config through resolve_type/build_type_string
  • has_type_override helper: generators skip special-case formatting when override is active
  • 282 new tests: 160/160 total passing
  • Sample fixture: fixtures/sample-type-overrides.yaml

v0.2.0 — Drizzle ORM bidirectional support

Choose a tag to compare

@Coding-Dev-Tools Coding-Dev-Tools released this 15 May 05:57

v0.2.0 — Drizzle ORM Bidirectional Support

New

  • Drizzle ORM schema → SQL: parse pgTable/mysqlTable/sqliteTable definitions
  • SQL → Drizzle ORM schema: generate TypeScript with type-correct column mappings
  • Drizzle ↔ Prisma roundtrip: convert between both ORMs via the internal IR
  • Supports: pgEnum, serial/bigserial, varchar/text, timestamp/date/time, JSONB/UUID, default values, primary keys, .notNull(), .unique()
  • Dialect-aware: pg, mysql, sqlite table factory functions

Fixed

  • Drizzle parser/generator were implemented but not registered in the conversion registry (_registry dict), causing all Drizzle-related conversions to raise ValueError("Unsupported format") — now properly imported and registered

Technical

  • DrizzleParser: regex-based TypeScript schema parser (handles nested braces, string literals, comments)
  • DrizzleGenerator: outputs idiomatic Drizzle ORM schema with runtime-overridable dialect
  • 4 new tests: SQL→Drizzle, Drizzle→SQL, Drizzle→Prisma, Prisma→Drizzle (all passing)
  • 40/40 tests passing

v0.1.0 — SQL DDL ↔ Prisma bidirectional conversion

Choose a tag to compare

@Coding-Dev-Tools Coding-Dev-Tools released this 15 May 03:41

Initial release of SchemaForge — bidirectional ORM schema converter.

Features

  • SQL DDL → Prisma: Parse CREATE TABLE, CREATE TYPE ... AS ENUM, column types, constraints, defaults, indexes
  • Prisma → SQL DDL: Convert Prisma models back to SQL with full schema fidelity
  • Bidirectional roundtrip: SQL → Prisma → SQL preserves table structure, constraints, and types
  • Rich CLI:
  • Diff mode:
  • 26 tests passing with 84%+ type mapping coverage

Supported Formats (v0.1.0)

  • ✅ SQL DDL → Prisma
  • ✅ Prisma → SQL DDL

Limitations (v0.1.0)

  • Some type precision loss in roundtrip (e.g. TEXT → String → VARCHAR, BIGSERIAL → INTEGER)
  • Drizzle, TypeORM, Django formats planned for v0.2.0-v0.4.0

Full roadmap: README.md