Author here: Adding some context. I led the Postgres platform team (2019-23) at Cloudflare and we were supporting 170+ growing product teams. One of the constant asks is schema migration review. We published a lot of best practices, added CI checks however, it was still hard to catch. Also, I tried to explain the internals of how the locking (rewrite) works, but I realized most of the devs just want the answer - Is it safe or not safe to run?
Not sure if it rings a bell, the name is a reference to the Silicon Valley Jian Yang's hot dog or not hot dog app.
Also, I understand the decision of safe vs not-safe depends heavily on data/histogram and edge cases, but still quite a lot of low-hanging issues can be easily caught with a deterministic rule engine. So I ported pg_savior[1] and used sql parser from libpg-query-node[2] which compiles as WASM, so it entirely runs on the browser. No telemetry, no login. Source attached [3]
If you continue working on this a good direction to go in would be to package it as a command line tool, so it can be integrated into testing and release processes.
vira28 · · focus · HN ↗
Not sure if it rings a bell, the name is a reference to the Silicon Valley Jian Yang's hot dog or not hot dog app.
Also, I understand the decision of safe vs not-safe depends heavily on data/histogram and edge cases, but still quite a lot of low-hanging issues can be easily caught with a deterministic rule engine. So I ported pg_savior[1] and used sql parser from libpg-query-node[2] which compiles as WASM, so it entirely runs on the browser. No telemetry, no login. Source attached [3]
[1] <a href="https://github.com/viggy28/pg_savior" rel="nofollow">https://github.com/viggy28/pg_savior [2] <a href="https://github.com/constructive-io/libpg-query-node" rel="nofollow">https://github.com/constructive-io/libpg-query-node [3] <a href="https://github.com/viggy28/safe-not-safe" rel="nofollow">https://github.com/viggy28/safe-not-safe
paol · · focus · HN ↗
If you continue working on this a good direction to go in would be to package it as a command line tool, so it can be integrated into testing and release processes.
vira28 · · focus · HN ↗