Skip to content

Commit 2351300

Browse files
committed
Fixes issue with automigrate when no records are present (really a problem with createEach)
1 parent 1bf4b34 commit 2351300

File tree

1 file changed

+38
-3
lines changed

1 file changed

+38
-3
lines changed

lib/adapter.js

Lines changed: 38 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ var STRINGFILE = {
2626
// string queries to be elegantly displayed (see wl2
2727
// or tweet @mikermcneil for status of this feature or
2828
// to help out)
29-
var LOG_QUERIES = false;
29+
var LOG_QUERIES = true;
3030

3131
module.exports = (function() {
3232

@@ -114,8 +114,13 @@ module.exports = (function() {
114114
var tableName = mysql.escapeId(collectionName);
115115

116116
var query = 'DESCRIBE ' + tableName;
117-
var pkQuery = 'SHOW INDEX FROM ' + tableName + ';';
117+
var pkQuery = 'SHOW INDEX FROM ' + tableName;
118118

119+
// Run query
120+
if (LOG_QUERIES) {
121+
console.log('\nExecuting MySQL query: ',query);
122+
console.log('and: ',pkQuery);
123+
}
119124
connection.query(query, function __DESCRIBE__(err, schema) {
120125
if (err) {
121126
if (err.code === 'ER_NO_SUCH_TABLE') {
@@ -203,6 +208,9 @@ module.exports = (function() {
203208

204209

205210
// Run query
211+
if (LOG_QUERIES) {
212+
console.log('\nExecuting MySQL query: ',query);
213+
}
206214
connection.query(query, function __DEFINE__(err, result) {
207215
if (err) return cb(err);
208216

@@ -248,6 +256,10 @@ module.exports = (function() {
248256
// Build query
249257
var query = 'DROP TABLE ' + tableName;
250258

259+
if (LOG_QUERIES) {
260+
console.log('\nExecuting MySQL query: ',query);
261+
}
262+
251263
// Run query
252264
connection.query(query, function __DROP__(err, result) {
253265
if (err) {
@@ -284,6 +296,11 @@ module.exports = (function() {
284296

285297
var query = sql.addColumn(tableName, attrName, attrDef);
286298

299+
// Run query
300+
if (LOG_QUERIES) {
301+
console.log('\nExecuting MySQL query: ',query);
302+
}
303+
287304
// Run query
288305
connection.query(query, function(err, result) {
289306
if (err) return cb(err);
@@ -312,6 +329,10 @@ module.exports = (function() {
312329

313330
var query = sql.removeColumn(tableName, attrName);
314331

332+
if (LOG_QUERIES) {
333+
console.log('\nExecuting MySQL query: ',query);
334+
}
335+
315336
// Run query
316337
connection.query(query, function(err, result) {
317338
if (err) return cb(err);
@@ -350,6 +371,9 @@ module.exports = (function() {
350371
var query = sql.insertQuery(tableName, data);
351372

352373
// Run query
374+
if (LOG_QUERIES) {
375+
console.log('\nExecuting MySQL query: ',query);
376+
}
353377
connection.query(query, function(err, result) {
354378
if (err) return cb( handleQueryError(err) );
355379

@@ -410,7 +434,9 @@ module.exports = (function() {
410434

411435
// Run query
412436
var query = sql.insertQuery(tableName, data) + '; ';
413-
437+
if (LOG_QUERIES) {
438+
console.log('\nExecuting MySQL query: ',query);
439+
}
414440
connection.query(query, function(err, results) {
415441
if (err) return cb( handleQueryError(err) );
416442
records.push(results.insertId);
@@ -426,10 +452,19 @@ module.exports = (function() {
426452
pk = key;
427453
});
428454

455+
// If there are no records (`!records.length`)
456+
// then skip the query altogether- we don't need to look anything up
457+
if (!records.length){
458+
return cb(null, []);
459+
}
460+
429461
// Build a Query to get newly inserted records
430462
var query = 'SELECT * FROM ' + mysql.escapeId(tableName) + ' WHERE ' + mysql.escapeId(pk) + ' IN (' + records + ');';
431463

432464
// Run Query returing results
465+
if (LOG_QUERIES) {
466+
console.log('\ncreateEach() :: Executing MySQL query: ',query);
467+
}
433468
connection.query(query, function(err, results) {
434469
if(err) return cb(err);
435470

0 commit comments

Comments
 (0)