Free Latest v1.1.15

SQL Deploy

A deployment script that contains only what actually changed — and that any SQL client can run.

Version 1.1.15, released 2 October 2026. All versions and checksums.

Most deployment tooling for stored procedures re-applies every file on every run. That works, but it destroys information: every object's modify_date becomes the date of the last deployment rather than the date it last changed, so the database can no longer tell you when anything was really modified. It also makes the deployment log useless — a thousand identical lines say nothing about what the release contained.

SQL Deploy compares first, and emits only what differs.

Version history

1.1.15

Current 2 Oct 2026 22c7cd30

A desktop application over the same engine as the command line: the plan as a tree with a diff per object, environments that say what may happen where, reference data deployed as the rows that differ, and a blank server taken to a deployed one in one press.

What changed in 1.1.15

1.1 · 2026-09-29

A desktop application over the same engine as the command line: the plan as a tree with a diff per object, environments that say what may happen where, reference data deployed as the rows that differ, and a blank server taken to a deployed one in one press.

  • A desktop application. SqlDeployGui reads the same manifests and environment files, shows the plan as steps and objects with a diff of each change, writes and runs the same script, and shows the server's output as it arrives. Nothing it does is unavailable from the command line; what it adds is seeing the plan before running it, and watching it run.

  • Environments say what may happen there. allow: [upgrade, create, drop] and guiMode: ask | approved | disabled belong to the environment file, so a production environment can be compared and its script copied, but never deployed by clicking. Everyone can have an environment of their own under local/, written from the repository's template and never committed.

  • Create and deploy. A manifest declares the databases its environment consists of and how to create them; the application creates what is missing, compares against what it has just built, runs the postCreate steps and deploys — one press from a blank server. sqldeploy create does the same from the command line.

  • Reference data as files. A data step holds rows as CSV or SQL and deploys the rows that differ, in seed, update, merge or replace mode, per table; a seed into a table the same run creates deploys with it.

  • Choose what goes into a run. Every step and every object has a tick; an unticked object leaves the script, and the script's header says so. Ticks are remembered per manifest and per environment. A step follows the database it deploys to, and a step whose database is not part of the run is not compared at all.

  • Best effort and step through, chosen per deployment when it is confirmed: one object at a time, retried in passes, for a set of procedures whose order is wrong; or one step per transaction, pausing between them, for bringing a database up a step at a time. A step the schema model cannot hold entirely is deployed for what it can, and the rest is reported.

  • Steps are compared in parallel and the plan fills in as they finish; the environment can be changed, and a comparison stopped, while one is running. A server that does not answer never traps the window.

  • A deployment never lands in whatever database the login opens. A step names its database or inherits the target's, and one with neither fails by name. An explicitly empty password is accepted; an unset one is not.

  • The script says more while it runs. Messages are delivered as they happen rather than at the end of the batch; a running batch can be cancelled at once and its transaction rolled back; a table rebuild's own DROP TABLE no longer counts as data loss.

  • Source files are read in the encoding they were saved in, and a manifest can name the root its paths resolve against, so a manifest in deploy/ reads the repository's layout.

PlatformFormatSizeSHA-256
Linux x64 tar.gz 24.6 MB a8cfa3ac4fa088ad991021bcb0e0134ee5e540cd57f9beb4e0a9d5e98c5e1e8a Download
Windows x64 zip 27.2 MB c5fd3af3727920ec1dd75516c29d1dfc14fe18a2cb4060920ab7bf833d587c40 Download

1.1.13

29 Sep 2026 8630fc7b
PlatformFormatSizeSHA-256
Linux x64 tar.gz 24.6 MB a9d497675267d44da407516e05ff2b8aace419384481338d2de5514c66f9bd6c Download
Windows x64 zip 27.2 MB 45053ef7f6e7540c0b24fb24a5f01a3a0046df7450fefb92538818ded8fa0533 Download