Feature request: `compile` and `run` should be able to `--!include` fixtures
Opened this issue · 2 comments
Summary
I set up a current.sql
like this:
--!include schemas/private.sql
--!include schemas/public.sql
--!include functions/uid.sql
--!include tables/accounts.sql
--!include types/jwt_token.sql
--!include functions/authenticate.sql
I then tried running graphile-migrate compile
and graphile-migrate run
against it but the fixtures do not appear to be substituted in:
$ graphile-migrate --config src/db/.gmrc compile src/db/migrations/current.sql
--!include schemas/private.sql
--!include schemas/public.sql
--!include functions/uid.sql
--!include tables/accounts.sql
--!include types/jwt_token.sql
--!include functions/authenticate.sql
$ graphile-migrate --config src/db/.gmrc run src/db/migrations/current.sql
┌───┐
│ │
├───┤
└───┘
The fixtures are substituted in correctly when running graphile-migrate --config src/db/.gmrc commit
Steps to reproduce
See above
Expected results
The fixtures should be substituted in when using compile
and run
Actual results
The fixtures are not substituted in when using compile
and run
Additional context
OS: dockerized mcr.microsoft.com/devcontainers/base:bookworm
running on ubuntu 20.0.4
graphile-migrate
: 2.0.0-rc.2
bun
: 1.1.13
Possible Solution
Support fixture substitution in compile
and run
The reason I noticed this is because I prefer graphile-migrate run ./migrations/current.sql
over watch
as I don't want to run semi-completed statements accidentally. I also don't want to mess with my editor (vscode) to disable auto-save for a single file in my repo.
You should use graphile-migrate watch --once
rather than graphile-migrate run
for your use case.