@@ -37,6 +37,13 @@ type TxError struct {
3737 Err error
3838}
3939
40+ func newTxError (migration * PlannedMigration , err error ) error {
41+ return & TxError {
42+ Migration : migration .Migration ,
43+ Err : err ,
44+ }
45+ }
46+
4047func (e * TxError ) Error () string {
4148 return e .Err .Error () + " handling " + e .Migration .Id
4249}
@@ -278,24 +285,13 @@ func ExecMax(db *sql.DB, dialect string, m MigrationSource, dir MigrationDirecti
278285 for _ , migration := range migrations {
279286 trans , err := dbMap .Begin ()
280287 if err != nil {
281- err := & TxError {
282- Migration : migration .Migration ,
283- Err : err ,
284- }
285-
286- return applied , err
288+ return applied , newTxError (migration , err )
287289 }
288290
289291 for _ , stmt := range migration .Queries {
290292 if _ , err := trans .Exec (stmt ); err != nil {
291293 trans .Rollback ()
292-
293- err := & TxError {
294- Migration : migration .Migration ,
295- Err : err ,
296- }
297-
298- return applied , err
294+ return applied , newTxError (migration , err )
299295 }
300296 }
301297
@@ -305,36 +301,21 @@ func ExecMax(db *sql.DB, dialect string, m MigrationSource, dir MigrationDirecti
305301 AppliedAt : time .Now (),
306302 })
307303 if err != nil {
308- err := & TxError {
309- Migration : migration .Migration ,
310- Err : err ,
311- }
312-
313- return applied , err
304+ return applied , newTxError (migration , err )
314305 }
315306 } else if dir == Down {
316307 _ , err := trans .Delete (& MigrationRecord {
317308 Id : migration .Id ,
318309 })
319310 if err != nil {
320- err := & TxError {
321- Migration : migration .Migration ,
322- Err : err ,
323- }
324-
325- return applied , err
311+ return applied , newTxError (migration , err )
326312 }
327313 } else {
328314 panic ("Not possible" )
329315 }
330316
331317 if err := trans .Commit (); err != nil {
332- err := & TxError {
333- Migration : migration .Migration ,
334- Err : err ,
335- }
336-
337- return applied , err
318+ return applied , newTxError (migration , err )
338319 }
339320
340321 applied ++
0 commit comments