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.sqlfiles (dbmate-style-- migrate:up/-- migrate:downsections) - 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_migrationstable 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
failedinstead 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
GObatch 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 tablesyntax, identifier quoting fixed assertNeveron 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)
MockDriverwith transaction overrides and ordered call logs- Legacy
qoredb_migrationstables auto-upgraded (addsfailed_atcolumn) - Migration failure direction preserved (up/down) for correct recovery UI
- Dependency updates and security advisory configs