I keep bookmarks as a Markdown file so I can sync it using Syncthing. I use either Obsidian or KRunner (desktop-only, similar to mac's Spotlight) to open bookmarks. It's been working well enough for me.
I've yet to see tools that handle zero-downtime-migrations well. The manual task of keeping two versions of the same query / model alive (version N and version N+1) is... well, how else would you handle it?
While tools that can generate the model or schema are nice, they never seem to account for this.
Have your query as a function in the database. BEGIN, do the migration, replace the function, COMMIT. Postgres DDL is transactional so at no point does the function stop working.