github QoreDB/QoreDB v0.1.34
QoreDB v0.1.34

5 hours ago

QoreDB v0.1.34 — Release Notes

Schema Migrations Manager, a complete DuckDB overhaul, and a deep audit of the SQL engine.


📦 Schema Migrations Manager

Version-controlled, Git-friendly database migrations built into QoreDB.

Write and edit migrations:

  • Migrations live in .qoredb/migrations/ as plain .sql files (dbmate-style -- migrate:up / -- migrate:down sections)
  • Dual SQL editors with schema autocompletion and explicit save
  • Version convention enforced (<version>_<slug>.sql), duplicate versions rejected
  • File watcher — external edits are picked up in real time
  • Accessible from the sidebar, context menus, and Cmd+K

Run and track:

  • Apply and rollback transactionally with production confirmation
  • Migration history tracked in a qoredb_migrations table in your database
  • Status badges: applied, pending, rolled back, failed, checksum drift
  • Per-statement safety preflight — every statement is classified and vetted before any execute
  • Full audit trail — every migration outcome is logged

MySQL/MariaDB awareness:

  • DDL is non-transactional on MySQL/MariaDB — QoreDB detects this and adapts
  • Failed DDL migrations are marked failed instead of silently deleted
  • Clear UI warnings for non-rollbackable operations

Schema diff generation (Pro):

  • Compare your schema against a baseline and generate migration SQL
  • Detects: column changes, primary keys, indexes, foreign keys, renames
  • Warns when a dialect can't express a change (e.g. SQLite type changes) instead of silently skipping it
  • MotherDuck normalized to DuckDB dialect

🦆 DuckDB: Complete Driver Rewrite

DuckDB goes from basic support to full-featured:

  • Native read-only connections and SSH disabled by design
  • RETURNING, CALL, PRAGMA, and multi-statement script support
  • Complete value and logical type conversion
  • Incremental streaming with native cancellation
  • Full table browsing, filtering, search, and CRUD
  • Macros and sequences as schema objects
  • Constraints, indexes, defaults, and row estimates in table metadata
  • Schema management, maintenance, and dependency-aware truncation
  • Security restriction validation on every statement
  • MotherDuck safety checks

🔧 SQL Engine Fixes

A thorough audit uncovered and fixed several issues in the shared SQL infrastructure:

SQL Splitter:

  • New migration-aware splitter that preserves exact source (comments, casing, formatting)
  • Dollar-quoting, backticks, brackets, and GO batch support
  • Postgres E'...' escape strings handled correctly
  • MySQL -- comment requires whitespace (arithmetic no longer swallowed)
  • GO <junk> rejected instead of silently dropped
  • No more UTF-8 corruption from byte-level scanning

DDL Engine (shared with ALTER TABLE):

  • Primary key changes are now detected and diffed
  • Indexes and foreign keys compared by value, not just name
  • Operations ordered by dependency (drop constraints before columns, rename table last)
  • SQL Server: DROP INDEX ... ON table syntax, identifier quoting fixed
  • assertNever on all builders — new operations can no longer be silently dropped

🏗️ Under the Hood

  • Schema baselines command infrastructure
  • Logs directory command for easier debugging
  • 203 Rust tests (up from 155), 59 vitest tests (up from 0)
  • MockDriver with transaction overrides and ordered call logs
  • Legacy qoredb_migrations tables auto-upgraded (adds failed_at column)
  • Migration failure direction preserved (up/down) for correct recovery UI
  • Dependency updates and security advisory configs

Don't miss a new QoreDB release

NewReleases is sending notifications on new releases.