You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This commit was created on GitHub.com and signed with GitHub’s verified signature.
The key has expired.
Changes in version 3.5.0.1878
CLI: apply-patch verb with 36 operations for all model object types (New!)
Custom SQL in migrations: raw before/after SQL on up()/down() (Laravel, Knex) - via the GUI Migration SQL editor, the Custom migration tab in Create revision, and the -cli-set-migration-sql verb. (New!)
CLI: -license-info command shows current license status (New!)
CLI: -license-activate command for headless license activation (no GUI/X server needed) (New!)
CLI: 16 command-line verbs for headless schema management (New!)
CLI: Three new auto-update verbs: check-update queries Harbor, download-update fetches release, apply-update installs (New!)
CLI: SkipperCli.exe console build for CI/CD and scripting use (New!)
CLI: AI-ready skill document bundled with installer (DocumentationAi/ folder) (New!)
CLI: export-diagram renders schema as PNG or PDF from command line (New!)
CLI: create-project, import-project, and import-database verbs (New!)
CLI: schema-summary, validate, compare, and export verbs (New!)
CLI: apply-merge verb for declarative target-state schema updates (New!)
CLI: Enhanced module name resolution with case-insensitive and prefix-match fallbacks
CLI: License commands (activate/info/unregister) now return structured JSON for automation instead of GUI dialogs
CLI: apply-patch returns per-op ids; add_* ops accept inline orm_attributes (incl. M:N per-side); $ref references within one patch; set_orm_attribute supports all object types.
CLI: -cli-export-ops round-trips unsigned columns and required polymorphic associations; write ops report errors on failed generation, unknown region, or bad $ref.
CLI: License errors in CLI mode now return structured JSON output instead of attempting to open GUI dialogs
CLI: Added -license-unregister command to deactivate and remove license via command line
Migration log now stores IANA timezone name (e.g., "Europe/Berlin") for deterministic UTC computation across environments
CLI: Added exception handling for std::exception and generic exceptions in patch operations
CLI: Automatic headless mode on Linux — QT_QPA_PLATFORM=offscreen set automatically when CLI flags detected without DISPLAY
CLI: apply-patch update_index accepts fields to add index columns (idempotent)
CLI: NULLABLE_PK and other validation warnings for schema quality checks
CLI: schema-summary includes orm_attributes on all object types
CLI: new entities auto-create PK, many-to-many auto-creates join entity with composite PK
CLI: JSON escape auto-correction and forward-slash namespace conversion for AI tools
CLI: lifecycle callbacks configurable in single operation via values parameter
CLI: ORM attribute manipulation with Entity.field dotted notation for fields
CLI: add_many_to_many and update_many_to_many now persist owner/inverse aliases (previously applied in memory but lost on save, leaving the template-generated aliases)
Doctrine 2: PHP 8.4 property hooks ({ get; set; }, including by-reference &get) are now preserved when re-exporting an existing entity. Regression introduced in 3.4.4.
CLI: license commands (activate/info/unregister) route trace and message output to stderr, keeping stdout clean JSON for automation
CLI: apply-patch rejects unknown field data types (e.g. unsignedBigInteger) at write time instead of failing later during validate
CLI: update package extraction now blocks Zip Slip path traversal
CLI: -cli-export no longer fails with "Directory []" for a relative project path.
Migrations: custom before/after SQL is no longer lost on save; multi-query ordering fixed.
CLI: entity/module references resolve by full qualified name (fixes duplicate short names across modules).
CLI: add_association links a pre-existing same-named foreign-key column instead of creating a duplicate; a column already used by another association still gets its own column.
Fixed an application crash during automatic session-state autosave: when the temporary state database file was locked by another process (e.g. a second running Skipper instance), the backup error escaped into the Qt event loop and terminated the application. Autosave failures are now handled safely and the locked-file situation is avoided.
Doctrine 2: Re-exporting an existing entity now preserves custom property visibility (public / protected / private) instead of resetting it. Regression introduced in 3.4.4.
CLI: Fixed temp directory path leaking into saved project files
Doctrine2: Fixed export of has-lifecycle-callbacks attribute to PHP 8 attributes format - was incorrectly placed as ORM\Table parameter instead of standalone #[ORM\HasLifecycleCallbacks] attribute
CLI: Fixed Linux CLI crash when X11 display forwarding is broken or unavailable
CLI: Fixed headless CLI commands hanging indefinitely on Linux when no license is present
Fixed viewer license rejected with MAINTENANCE_EXPIRED (viewer has no maintenance field)
Fixed ORM attribute path resolution failing for short entity names and forward-slash paths
Fixed many-to-many join entity FK fields missing primary key and NOT NULL constraints
Fixed entity rename creating copy in temporary module instead of renaming in-place