Skip to content

Roadmap

Current Version: 1.21.0

All core features have been released:

VersionFeatureStatus
v1.4.0Test Data Generator + Merge (fixture generator superseded by generate, see below)Released
v1.5.0Sample (FK-aware sampling)Released
v1.6.0Shard (tenant extraction)Released
v1.7.0Convert (dialect conversion)Released
v1.8.xValidate + Glob PatternsReleased
v1.9.xDiff (schema + data comparison)Released
v1.10.0Redact (data anonymization)Released
v1.11.0Graph + Order (ERD + FK ordering)Released
v1.12.0Query (DuckDB analytics)Released
v1.12.xMSSQL Support (fourth dialect)Released
v1.13.0JSON Schema GenerationReleased
v1.13.xLibrary feature flags, Docker images, convert fixesReleased
v1.14.0-o - stdout support, redact compression fixReleased
v1.15.0Output compression (--compress), archive output (tar.*/zip), 2.4–4.4× split speedupReleased
v1.16.0Zip input (all commands), adaptive --io-strategy for slow devicesReleased
v1.17.0Synthetic data generation (generate)Released

Generate production-shaped synthetic SQL from a dump, schema, or reusable YAML model. This supersedes the old test_data_gen fixture crate from v1.4.0 (removed) as the product feature for synthetic data:

Terminal window
sql-splitter generate production.sql -o synthetic.sql
sql-splitter generate production.sql --emit-config synthetic.yaml
sql-splitter generate --config synthetic.yaml --verify -o synthetic.sql

Features:

  • Bounded basic/full profiling and exact emitted row counts
  • Editable per-table and per-column YAML rules, with generators, modifiers, and planners for relational and multi-column invariants (see generate)
  • Stable global, table, column, and operator seed streams
  • Public library API using the same compiler and engine as the CLI
  • Neutral profile evidence reusable by the future infer command (see below) — profiler internals are not frozen around infer’s unbuilt needs

Full documentation: generate command reference, model reference, generator catalog, planner catalog, and library API.

v1.16.0 — Zip Input + Adaptive I/O Profiles (shipped)

Section titled “v1.16.0 — Zip Input + Adaptive I/O Profiles (shipped)”

.zip dumps are now accepted as input across all commands — real-world exports often arrive as dump.sql.zip:

Terminal window
sql-splitter split reflow_latest.sql.zip -o tables/

Zip input:

  • Streams the zip’s .sql member through the existing decompression pipeline (no full extraction)
  • Exactly-one-.sql-member policy, with clear errors for multi-member or encrypted archives
  • No new dependencies — reuses the zip crate already powering archive output

Adaptive I/O strategys — measured on a USB spinning disk, the default (SSD-tuned) write path runs at ~22–33 MB/s while a single writer with large buffers reaches ~55 MB/s (2.5×, near the drive’s physical ceiling):

Terminal window
sql-splitter split dump.sql -o tables/ --io-strategy auto # default
sql-splitter split dump.sql -o tables/ --io-strategy hdd # pin it
  • An fsync probe picks the opening profile; after that, a feedback loop driven by the pipeline’s own backpressure steps between fast/HDD/slow-flash profiles — no device fingerprinting, works for network mounts and cheap USB sticks too
  • Output stays byte-identical across all profiles (verified by cross-profile hash tests)

Proper bidirectional enum conversion between PostgreSQL and MySQL. Today, ENUM('a','b') converts lossily to VARCHAR(255) — this replaces that with real type conversion:

Features:

  • PostgreSQL CREATE TYPE ... AS ENUM → MySQL inline ENUM()
  • MySQL inline ENUM() → PostgreSQL CREATE TYPE (deterministic naming)
  • Registry-based type tracking across statements (streaming-safe)
  • Strip ::type casts in DML statements
  • VARCHAR fallback with a warning for unknown types

Generate ALTER statements from schema differences:

Terminal window
sql-splitter migrate old.sql new.sql -o migration.sql
sql-splitter migrate old.sql new.sql --rollback -o rollback.sql
sql-splitter migrate old.sql new.sql --breaking-changes

Features:

  • Generate migration scripts (ALTER TABLE, CREATE INDEX)
  • Multi-dialect migration output
  • Rollback script generation
  • Breaking change detection

Schema documentation and interoperability with DBML:

Features:

  • Export SQL dump schemas to DBML for dbdiagram.io visualization (extends graph)
  • Generate SQL DDL from DBML schema-as-code definitions (extends convert)

Multi-threaded performance:

Terminal window
sql-splitter split dump.sql -o tables/ --parallel 8
sql-splitter convert dump.sql --parallel auto

Targets:

  • 4x speedup on 8-core systems
  • Linear scaling up to available cores
  • Memory-bounded parallel processing

Generate DDL from data-only dumps:

Terminal window
sql-splitter infer data-only.sql -o schema.sql
sql-splitter infer data.csv --table users --dialect mysql

Features:

  • Type inference from INSERT values
  • Primary key detection
  • Index suggestion
  • FK inference (heuristic)
  • Reuses or extends generate’s bounded neutral profile evidence

These features are explicitly out of scope:

  • GUI interface — CLI only
  • Database connection — File-based only
  • Binary backup formats — No .bak (MSSQL)
  • Stored procedure conversion — Too complex
  • Real-time streaming — Batch processing only
  • Cloud storage integration — Use pipes

Want to contribute to a roadmap feature? See Contributing.

For feature requests, open an issue on GitHub.