MigrationPlaceholders
Pastes configured values into a .sql migration, before anything else reads it.
A paste and nothing more: the value goes in as the text it is, with no quoting, no escaping and no idea of where in the statement it landed. That is the whole of what this does, and it is why the values belong in the deployment rather than in a request - a placeholder is not a parameter, and a value that came from outside the deployment would be an injection with the migrator holding the door.
The syntax is ${name}, and it is fixed for the same reason the V, R and __ of the naming rule are: every spelling made configurable is API to keep working, and none of them would make a migration read better. \${name} is that text and not a placeholder, for the file that has to store one.
Substitution happens before the header directives are read and before the transaction-control check runs, so what those checks see is what the server will see - a value carrying a COMMIT is refused rather than smuggled past them. It happens in one pass, so a value that itself contains ${...} is left standing as the text it is: one file, one round of substitution, and no value can reach back for another.