Skip to content

v1.4.0

Latest

Choose a tag to compare

@github-actions github-actions released this 03 Apr 08:57

What's Changed

Cross-Database Type Synchronization

MySQL, PostgreSQL, and MariaDB schemas can now be compared and synchronized in all directions. This is powered by a canonical intermediate type system that maps between database-specific types.

Core features:

  • CanonicalType — database-agnostic intermediate type enum covering 30+ type variants
  • Type Mappers — MySQL, PostgreSQL, and MariaDB each have independent mappers with to_canonical / from_canonical / map_default_value
  • MariaDB independence — native uuid, inet6 support, jsonb → longtext (not reusing MySQL mapper)
  • Type warnings — inline icons on diff tree items + summary panel showing degraded/skipped conversions
  • Default value normalization — now() ↔ CURRENT_TIMESTAMP, true/false ↔ 1/0, PG cast stripping

PostgreSQL Improvements

  • Array type support — reads array columns via udt_name (e.g., _int4 → integer[])
  • Enum support — reads enum values from pg_enum, generates CREATE TYPE AS ENUM when targeting PostgreSQL
  • Serial variants — SERIAL/BIGSERIAL/SMALLSERIAL chosen based on integer width
  • ALTER COLUMN auto_increment — generates CREATE SEQUENCE + SET DEFAULT nextval() + OWNED BY

Bug Fixes

  • Frontend DiffType aligned with backend snake_case serialization — fixes diff item color/icon/badge rendering
  • Skipped (unmappable) columns now produce visible DiffItems with warnings instead of being silently dropped
  • CREATE TABLE in cross-db mode filters skipped columns from PK, indexes, FKs, and unique constraints
  • Indexes/FKs/UCs referencing skipped columns are excluded from cross-db comparison

Full Changelog: v1.3.0...v1.4.0