2015-04-02 3 views
3

Этот скрипт automigrate.js работал нормально, но теперь он висит без выхода с новой версией strongloop.Strongloop Loopback dataSource.disconnect больше не отключается?

Strongloop people, что изменилось, что это больше не выходит? Попытка настроить автоматическое развертывание, но это блокиратор.

var path = require('path'); 
var app = require(path.resolve(__dirname, '../server')); 
var _ = require('lodash'); 

// fix for (node) warning: possible EventEmitter memory leak detected 
require('events').EventEmitter.prototype._maxListeners = 100; 

var dataSource = app.dataSources.mysqlDB; 

dataSource.autoupdate([ 
    'Person' 
    ], function(err) { 

    if (err) { 
    return console.log(err); 
    } 

    console.log('closing pool'); // this echoes but... 
    dataSource.disconnect();  // ...script never exits 

}); 
+0

Я не совсем уверен, что вы имеете в виду под «больше не выходит», но если это все кода у вас есть то, что нет ничего, что делает, чтобы сохранить этот код работает. Метод '' dataSource.disconnect() '(https://github.com/strongloop/loopback-datasource-juggler/blob/9083370e175c3d07ed19facdc709c5d2c987e10e/lib/datasource.js#L1745-L1757) просто вызывает« разъединение »соединителя mysql () ', который в свою очередь просто вызывает метод' 'end()' библиотеки mysql (https://github.com/strongloop/loopback-connector-mysql/blob/2a249beb77ecd3cb24c38071ab22629e290a1353/lib/mysql.js#L1288-L1295) , – jakerella

+0

Я имею в виду, что скрипт зависает, не выходит с 0, как он использовался для as-is, поэтому бесполезно при запуске через ткань или поверх ssh для автоматизации (следующая команда после того, как этот файл никогда не будет запущен). Для сильных людей это может быть связано с тем, что новейший драйвер mysql узла не играет хорошо. – Brian

+0

А, я рад, что вы связались с людьми поддержки, к сожалению, мы прислушиваемся к драйверам узловых БД, но мы не можем с этим поделать. Обновите это, если оно будет разрешено! – jakerella

ответ

1

Вам необходимо отключиться после подключения источника данных. Попробуйте это:

var path = require('path'); 
var app = require(path.join(__dirname,"..","server","server")); 
var ds = app.datasources.mysql; 
ds.once('connected', function() { 
    ds.disconnect(); 
    console.log("here"); 
}); 
Смежные вопросы