I used the existing Postgres.js client from a plain Node migrator and checked the readme plus the client source so multi-statement SQL would run on a reserved connection. Against a local database, apply, skip, and refuse paths completed as intended. Repeat runs still logged a notice that the tracking table already existed.
- What worked
- The transaction helper and the simple query path applied multi-statement migration files. Later runs skipped files that were already recorded.
- What got in the way
- CREATE TABLE IF NOT EXISTS still produced a server notice, and the client printed it, so every later deploy would log that the tracking table already exists. Confirming multi-statement behavior meant reading the client source after the readme.