{"schema":1,"product":"sql-deploy","version":"1.1.15","channel":"stable","commit":"22c7cd3026c9bd0314c43dedb3bab33f8c73365f","published":"2026-10-02T18:18:42.0000000\u002B00:00","requiresLicense":false,"summary":"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.","notes":"## 1.1 \u00B7 2026-09-29\n\nA desktop application over the same engine as the command line: the plan as a tree with a diff\nper object, environments that say what may happen where, reference data deployed as the rows\nthat differ, and a blank server taken to a deployed one in one press.\n\n- **A desktop application.** \u0060SqlDeployGui\u0060 reads the same manifests and environment files,\n  shows the plan as steps and objects with a diff of each change, writes and runs the same\n  script, and shows the server\u0027s output as it arrives. Nothing it does is unavailable from the\n  command line; what it adds is seeing the plan before running it, and watching it run.\n\n- **Environments say what may happen there.** \u0060allow: [upgrade, create, drop]\u0060 and \u0060guiMode:\n  ask | approved | disabled\u0060 belong to the environment file, so a production environment can be\n  compared and its script copied, but never deployed by clicking. Everyone can have an\n  environment of their own under \u0060local/\u0060, written from the repository\u0027s template and never\n  committed.\n\n- **Create and deploy.** A manifest declares the databases its environment consists of and how\n  to create them; the application creates what is missing, compares against what it has just\n  built, runs the \u0060postCreate\u0060 steps and deploys \u2014 one press from a blank server. \u0060sqldeploy\n  create\u0060 does the same from the command line.\n\n- **Reference data as files.** A \u0060data\u0060 step holds rows as CSV or SQL and deploys the rows that\n  differ, in \u0060seed\u0060, \u0060update\u0060, \u0060merge\u0060 or \u0060replace\u0060 mode, per table; a seed into a table the\n  same run creates deploys with it.\n\n- **Choose what goes into a run.** Every step and every object has a tick; an unticked object\n  leaves the script, and the script\u0027s header says so. Ticks are remembered per manifest and\n  per environment. A step follows the database it deploys to, and a step whose database is not\n  part of the run is not compared at all.\n\n- **Best effort and step through**, chosen per deployment when it is confirmed: one object at\n  a time, retried in passes, for a set of procedures whose order is wrong; or one step per\n  transaction, pausing between them, for bringing a database up a step at a time. A step the\n  schema model cannot hold entirely is deployed for what it can, and the rest is reported.\n\n- **Steps are compared in parallel** and the plan fills in as they finish; the environment can\n  be changed, and a comparison stopped, while one is running. A server that does not answer\n  never traps the window.\n\n- **A deployment never lands in whatever database the login opens.** A step names its database\n  or inherits the target\u0027s, and one with neither fails by name. An explicitly empty password is\n  accepted; an unset one is not.\n\n- **The script says more while it runs.** Messages are delivered as they happen rather than at\n  the end of the batch; a running batch can be cancelled at once and its transaction rolled\n  back; a table rebuild\u0027s own \u0060DROP TABLE\u0060 no longer counts as data loss.\n\n- **Source files are read in the encoding they were saved in**, and a manifest can name the\n  root its paths resolve against, so a manifest in \u0060deploy/\u0060 reads the repository\u0027s layout.","releaseNotesUrl":"https://svalefelt.ie/downloads/sql-deploy","assets":[{"name":"SqlDeploy-linux-x64-1.1.15.tar.gz","os":"linux","arch":"x64","flavour":"full","format":"tar.gz","size":25827725,"sha256":"a8cfa3ac4fa088ad991021bcb0e0134ee5e540cd57f9beb4e0a9d5e98c5e1e8a","url":"https://svalefelt.ie/downloads/sql-deploy/file/1.1.15/SqlDeploy-linux-x64-1.1.15.tar.gz"},{"name":"SqlDeploy-win-x64-1.1.15.zip","os":"windows","arch":"x64","flavour":"full","format":"zip","size":28548280,"sha256":"c5fd3af3727920ec1dd75516c29d1dfc14fe18a2cb4060920ab7bf833d587c40","url":"https://svalefelt.ie/downloads/sql-deploy/file/1.1.15/SqlDeploy-win-x64-1.1.15.zip"}]}