diff --git a/Formula/foxschema.rb b/Formula/foxschema.rb index c28e5017..9ce3f68e 100644 --- a/Formula/foxschema.rb +++ b/Formula/foxschema.rb @@ -12,9 +12,9 @@ class Foxschema < Formula desc "Fox Schema — schema diff, migrations, and SQL Editor (local web UI)" homepage "https://foxschema.com" - url "https://registry.npmjs.org/foxschema/-/foxschema-0.2.73.tgz" + url "https://registry.npmjs.org/foxschema/-/foxschema-0.2.111.tgz" # shasum -a 256 of the npm tarball; refreshed by packaging/homebrew/update-formula.sh - sha256 "587a702bbec1ca2a2201badcc4d041a803e09f5fb1f4f30e79108d81a2e98cef" + sha256 "d0981ee01ca47b4f7a71f102159cf499eddcc465cdb0606a5d573857173d7fd6" license "Apache-2.0" depends_on "node@22" diff --git a/docs/RELEASE_0.2.111.md b/docs/RELEASE_0.2.111.md new file mode 100644 index 00000000..eb06f3ec --- /dev/null +++ b/docs/RELEASE_0.2.111.md @@ -0,0 +1,93 @@ +# Fox Schema 0.2.111 — What's new + +> **For users:** this is the page the in-app update toast links to (**What's new**). + +Since **`v0.2.73`**. npm `foxschema@0.2.111` is on the registry. Docker Hub / GHCR +have `5nickels/foxschema:v0.2.111` and `ghcr.io/tedious-code/foxschema:v0.2.111`. + +--- + +## What's new + +### Schema History + +Schema History lives in **Schema Sync → History**. It tracks versions of **one** +database (not a second live connection). + +- Take a snapshot from a saved credential. The graph shows versions over time. +- **Original** and **Target** pickers work like Compare: Original is a version; + Target is the current database or an older version. Changing the pickers does + **not** hide the graph. +- **Compare versions** is a preview. It does not write the live database until + you press Execute. +- **Revert** runs only against the **current database**, snapshots first, and + **appends** a new version (it never rewrites the version you picked). +- Tick the objects to revert, or **Select all**. Nothing ticked means nothing + runs. Only ticked objects are in the generated SQL. +- Click a table on the graph to see column and constraint changes. +- SQLite and DuckDB file credentials can be picked from a Browse dialog on the + machine running Fox Schema. + +### SQL Editor + +- Copy a cell, the headers, or a selected range from result grids. +- `CREATE FUNCTION` / `CREATE PROCEDURE` stay one cell (no split on a bare `END`). +- Safe mode no longer asks for confirmation on `SELECT` / `JOIN` reads. +- Compare Data **Backup** restore uses the destination connection (it no longer + writes into a snapshot). +- Node code cells (`-- @node` / `-- @nodets`) block `import()` / `eval` / + `Function` / `.constructor` breakouts. + +### Schema & utilities + +- One table blueprint in Compare, Browse, History, and Edit table. +- **Browse** is its own Schema Sync pane. +- Index fragmentation: Postgres uses `pgstatindex` where available; MariaDB is + its own family (not MySQL); SQLite credentials are selectable again. + +### Dialects + +- **Db2:** `REORG` after `DROP COLUMN`; skip `SYS%` roles; “Include identity” + no longer emits a clause Db2 LUW does not have. +- **Oracle:** `NUMBER(p,0)` maps by precision (no silent int narrowing); + `NOCYCLE` / `NOCACHE`; sequences created before the tables that use them; + `DROP INDEX` / `DROP TRIGGER` tolerate objects that are already gone. + +### Credentials + +- MongoDB and Redis appear in the dialect list. The provider filter lists every + dialect, not only ones you already saved. + +--- + +## How to update + +```bash +npm install -g foxschema@latest +foxschema stop && foxschema +``` + +Or Homebrew (after the formula bumps): + +```bash +brew update && brew upgrade foxschema +foxschema stop && foxschema +``` + +Docker (this tag is already on Hub / GHCR): + +```bash +docker pull 5nickels/foxschema:v0.2.111 +# or: docker pull ghcr.io/tedious-code/foxschema:v0.2.111 +``` + +Then hard-refresh the browser tab (Cmd/Ctrl-Shift-R). + +### Run from git + +```bash +git clone https://github.com/tedious-code/foxschema.git +cd foxschema && git checkout main && git pull +npm install && npm run dev +# open http://localhost:5173 +```