pev2, with a backend
There's a shell.nix
, enter a nix-shell
or put use nix
in an .envrc
file to develop.
See the heroku.yml
github action; you can set a repository secret on your own fork to deploy to your own Heroku instance. You'll need Postgres provisioned.
You can send the --migrate
option to the generated binary to run migrations. The migration runner is idempotent, but there's no rollback, so... always going forward, 'cuz we can't find reverse!
Since migrations for this particular app are a rare occurence, I just ran them manually after deploy, like so:
> heroku run ash -a pgexplain
Running ash on ⬢ pgexplain... up, run.9955 (Free)
~ $ bin/pev-exe --migrate
Migrating...
Initializing schema
NOTICE: relation "schema_migrations" already exists, skipping
Execute: 20220519174700_extensions_and_date_procs.sql
NOTICE: trigger "plan_insert" for relation "plan" does not exist, skipping
NOTICE: trigger "plan_update" for relation "plan" does not exist, skipping
Execute: 20220519174800_add_plan_table.sql
All migrations ran.
If you deploy your fork to Heroku, you can do the same, or update the code or docker derivation to run them, maybe?