Skip to content

v0.6.2 — V81 parses

Choose a tag to compare

@Ontheia Ontheia released this 04 Aug 11:13
· 30 commits to main since this release

V81 parses

Flyway substitutes ${NAME} anywhere in a migration file — inside strings,
inside comments — and aborts the run when it has no value for one. Five of the
fourteen namespace patterns in V81 contain the user-id placeholder that the
memory adapter resolves per request, so 0.6.1 could not complete an update:

ERROR: Unable to parse statement in V81__seed_namespace_rules.sql at line 17 col 1.
No value provided for placeholder: ${user_id}.

Line 17 was the comment explaining that the placeholder is literal text.

Switching the substitution off is not available: V57 depends on it to set the
application user's password. The dollar sign is assembled with chr(36) instead,
which produces the identical literal — verified against an installation whose
fourteen rules carry hand-written templates: INSERT 0 0, and an unchanged
checksum over every pattern and template.

Updating

From 0.6.1 — nothing was applied before the failure, so the schema stayed
where it was and no flyway repair is needed. Run the update again.

From 0.6.0 or earlier — this is the release to take; skip 0.6.1.

Also in this release

A test now scans migrations/ for placeholder expressions and fails unless the
name is one the migrator is actually given, read from the compose command rather
than a list kept in the test. V81 had been checked against a live database with
psql, which reads the file directly and never involves Flyway — proving the SQL
valid, and nothing about whether it could be applied.