v0.6.2 — V81 parses
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.