db-migrate / db-migrate-base

Base driver for db-migrate
Other
7 stars 16 forks source link

db.insert with a callback does not work #23

Open tobalsgithub opened 4 years ago

tobalsgithub commented 4 years ago

It appears that db.insert does not work with a callback. The code involved is here: https://github.com/db-migrate/db-migrate-base/blob/master/index.js#L453

We never reassign the callback variable to arguments[3], so the callback is never called and the migration hangs.

It looks like at one point we did reassign the callback, but took that out in this commit: https://github.com/db-migrate/db-migrate-base/commit/81603379575ac66b581be08fea791fe5ca876b06#diff-168726dbe96b3ce427e7fedce31bb0bc

A workaround is to convert to using the promise API.

Instead of

exports.up = function (db, callback) {
  db.insert('tablename', [ col1 ] , [ val1 ], callback);
};

do

exports.up = function (db) {
 return db.insert('tablename', [ col1 ], [ val1 ]);
};
--- Want to back this issue? **[Post a bounty on it!](https://www.bountysource.com/issues/93692324-db-insert-with-a-callback-does-not-work?utm_campaign=plugin&utm_content=tracker%2F11792942&utm_medium=issues&utm_source=github)** We accept bounties via [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F11792942&utm_medium=issues&utm_source=github).