@@ -23,38 +23,36 @@ const insertMigration = async (
2323 return client . query ( sql )
2424}
2525
26- export const runMigration = (
27- migrationTableName : string ,
28- client : BasicPgClient ,
29- log : Logger = noop ,
30- ) => async ( migration : Migration ) => {
31- const inTransaction =
32- migration . sql . includes ( "-- postgres-migrations disable-transaction" ) ===
33- false
34-
35- log ( `Running migration in transaction: ${ inTransaction } ` )
26+ export const runMigration =
27+ ( migrationTableName : string , client : BasicPgClient , log : Logger = noop ) =>
28+ async ( migration : Migration ) => {
29+ const inTransaction =
30+ migration . sql . includes ( "-- postgres-migrations disable-transaction" ) ===
31+ false
3632
37- const begin = inTransaction ? ( ) => client . query ( "START TRANSACTION" ) : noop
33+ log ( `Running migration in transaction: ${ inTransaction } ` )
3834
39- const end = inTransaction ? ( ) => client . query ( "COMMIT " ) : noop
35+ const begin = inTransaction ? ( ) => client . query ( "START TRANSACTION " ) : noop
4036
41- const cleanup = inTransaction ? ( ) => client . query ( "ROLLBACK " ) : noop
37+ const end = inTransaction ? ( ) => client . query ( "COMMIT " ) : noop
4238
43- try {
44- await begin ( )
45- await client . query ( migration . sql )
46- await insertMigration ( migrationTableName , client , migration , log )
47- await end ( )
39+ const cleanup = inTransaction ? ( ) => client . query ( "ROLLBACK" ) : noop
4840
49- return migration
50- } catch ( err ) {
5141 try {
52- await cleanup ( )
53- } catch {
54- //
42+ await begin ( )
43+ await client . query ( migration . sql )
44+ await insertMigration ( migrationTableName , client , migration , log )
45+ await end ( )
46+
47+ return migration
48+ } catch ( err ) {
49+ try {
50+ await cleanup ( )
51+ } catch {
52+ //
53+ }
54+ throw new Error (
55+ `An error occurred running '${ migration . name } '. Rolled back this migration. No further migrations were run. Reason: ${ err . message } ` ,
56+ )
5557 }
56- throw new Error (
57- `An error occurred running '${ migration . name } '. Rolled back this migration. No further migrations were run. Reason: ${ err . message } ` ,
58- )
5958 }
60- }
0 commit comments