rename db columns, remove unused tr_format

This commit is contained in:
konovalovsergey
2016-04-20 13:53:27 +03:00
committed by Alexander.Trofimov
parent 46b5f04600
commit 92817345f3
8 changed files with 72 additions and 81 deletions

View File

@ -540,11 +540,11 @@ function* getCallback(id) {
var selectRes = yield sqlBase.getCallbackPromise(id);
if (selectRes.length > 0) {
var row = selectRes[0];
if (row.dc_callback) {
callbackUrl = row.dc_callback;
if (row.callback) {
callbackUrl = row.callback;
}
if (row.dc_baseurl) {
baseUrl = row.dc_baseurl;
if (row.baseurl) {
baseUrl = row.baseurl;
}
}
if (null != callbackUrl && null != baseUrl) {
@ -563,8 +563,8 @@ function* getChangesIndex(docId) {
res = parseInt(redisRes);
} else {
var getRes = yield sqlBase.getChangesIndexPromise(docId);
if (getRes && getRes.length > 0 && null != getRes[0]['dc_change_id']) {
res = getRes[0]['dc_change_id'] + 1;
if (getRes && getRes.length > 0 && null != getRes[0]['change_id']) {
res = getRes[0]['change_id'] + 1;
}
}
return res;
@ -971,9 +971,9 @@ exports.install = function(server, callbackFunction) {
element = arrayElements[j];
// Добавляем GMT, т.к. в базу данных мы пишем UTC, но сохраняется туда строка без UTC и при зачитывании будет неправильное время
objChangesDocument.push({docid: docId, change: element['dc_data'],
time: element['dc_date'].getTime(), user: element['dc_user_id'],
useridoriginal: element['dc_user_id_original']});
objChangesDocument.push({docid: docId, change: element['change_data'],
time: element['change_date'].getTime(), user: element['user_id'],
useridoriginal: element['user_id_original']});
}
return objChangesDocument;
}
@ -1282,7 +1282,7 @@ exports.install = function(server, callbackFunction) {
try {
var result = yield sqlBase.checkStatusFilePromise(docId);
var status = result[0]['tr_status'];
var status = result[0]['status'];
if (FileStatus.Ok === status) {
// Все хорошо, статус обновлять не нужно
} else if (FileStatus.SaveVersion === status) {
@ -1290,7 +1290,7 @@ exports.install = function(server, callbackFunction) {
var updateMask = new taskResult.TaskResultData();
updateMask.key = docId;
updateMask.status = status;
updateMask.statusInfo = result[0]['tr_status_info'];
updateMask.statusInfo = result[0]['status_info'];
var updateTask = new taskResult.TaskResultData();
updateTask.status = taskResult.FileStatus.Ok;
updateTask.statusInfo = constants.NO_ERROR;

View File

@ -161,9 +161,9 @@ function _insertChangesCallback (startIndex, objChanges, docId, index, user, cal
baseConnector.sqlQuery(sqlCommand, callback);
}
exports.deleteChangesCallback = function (docId, deleteIndex, callback) {
var sqlCommand = "DELETE FROM " + tableChanges + " WHERE dc_key='" + docId + "'";
var sqlCommand = "DELETE FROM " + tableChanges + " WHERE id='" + docId + "'";
if (null !== deleteIndex)
sqlCommand += " AND dc_change_id >= " + deleteIndex;
sqlCommand += " AND change_id >= " + deleteIndex;
sqlCommand += ";";
baseConnector.sqlQuery(sqlCommand, callback);
};
@ -185,7 +185,7 @@ function _deleteChanges (docId, deleteIndex) {
exports.deleteChangesCallback(docId, deleteIndex, function () {unLockCriticalSection(docId);});
}
exports.getCallback = function(docId, callback) {
getDataFromTable(c_oTableId.callbacks, "*", "dc_key='" + docId + "'", callback);
getDataFromTable(c_oTableId.callbacks, "*", "id='" + docId + "'", callback);
};
exports.getCallbackPromise = function(docId) {
return new Promise(function(resolve, reject) {
@ -199,7 +199,7 @@ exports.getCallbackPromise = function(docId) {
});
};
exports.deleteCallback = function (docId, callback) {
deleteFromTable(c_oTableId.callbacks, "dc_key='" + docId + "'", callback);
deleteFromTable(c_oTableId.callbacks, "id='" + docId + "'", callback);
};
exports.deleteCallbackPromise = function (docId) {
return new Promise(function(resolve, reject) {
@ -214,7 +214,7 @@ exports.deleteCallbackPromise = function (docId) {
};
exports.getChangesIndex = function(docId, callback) {
var table = getTableById(c_oTableId.changes);
var sqlCommand = 'SELECT MAX(dc_change_id) as dc_change_id FROM ' + table + ' WHERE dc_key=' + baseConnector.sqlEscape(docId) + ';';
var sqlCommand = 'SELECT MAX(change_id) as change_id FROM ' + table + ' WHERE id=' + baseConnector.sqlEscape(docId) + ';';
baseConnector.sqlQuery(sqlCommand, callback);
};
exports.getChangesIndexPromise = function(docId) {
@ -230,9 +230,9 @@ exports.getChangesIndexPromise = function(docId) {
};
exports.getChangesPromise = function (docId, optStartIndex, optEndIndex) {
return new Promise(function(resolve, reject) {
var getCondition = 'dc_key='+baseConnector.sqlEscape(docId);
var getCondition = 'id='+baseConnector.sqlEscape(docId);
if (null != optStartIndex && null != optEndIndex) {
getCondition += ' AND dc_change_id>=' + optStartIndex + ' AND dc_change_id<' + optEndIndex;
getCondition += ' AND change_id>=' + optStartIndex + ' AND change_id<' + optEndIndex;
}
getDataFromTable(c_oTableId.changes, "*", getCondition, function(error, result) {
if (error) {
@ -247,12 +247,12 @@ exports.getChanges = function (docId, callback) {
lockCriticalSection(docId, function () {_getChanges(docId, callback);});
};
function _getChanges (docId, callback) {
getDataFromTable(c_oTableId.changes, "*", "dc_key='" + docId + "'",
getDataFromTable(c_oTableId.changes, "*", "id='" + docId + "'",
function (error, result) {unLockCriticalSection(docId); if (callback) callback(error, result);});
}
exports.checkStatusFile = function (docId, callbackFunction) {
var sqlCommand = "SELECT tr_status FROM " + tableResult + " WHERE tr_key='" + docId + "';";
var sqlCommand = "SELECT status FROM " + tableResult + " WHERE id='" + docId + "';";
baseConnector.sqlQuery(sqlCommand, callbackFunction);
};
exports.checkStatusFilePromise = function (docId) {
@ -268,7 +268,7 @@ exports.checkStatusFilePromise = function (docId) {
};
exports.updateStatusFile = function (docId) {
// Статус OK = 1
var sqlCommand = "UPDATE " + tableResult + " SET tr_status=1 WHERE tr_key='" + docId + "';";
var sqlCommand = "UPDATE " + tableResult + " SET status=1 WHERE id='" + docId + "';";
baseConnector.sqlQuery(sqlCommand);
};

File diff suppressed because one or more lines are too long

View File

@ -25,14 +25,14 @@ function* getConvertStatus(cmd, selectRes, baseUrl) {
if (selectRes.length > 0) {
var docId = cmd.getDocId();
var row = selectRes[0];
switch (row.tr_status) {
switch (row.status) {
case taskResult.FileStatus.Ok:
status.url = yield storage.getSignedUrl(baseUrl, docId + '/' + cmd.getTitle());
break;
case taskResult.FileStatus.Err:
case taskResult.FileStatus.ErrToReload:
status.err = row.tr_status_info;
if (taskResult.FileStatus.ErrToReload == row.tr_status) {
status.err = row.status_info;
if (taskResult.FileStatus.ErrToReload == row.status) {
yield canvasService.cleanupCache(docId);
}
break;
@ -42,7 +42,7 @@ function* getConvertStatus(cmd, selectRes, baseUrl) {
status.err = constants.UNKNOWN;
break;
}
var lastOpenDate = row.tr_last_open_date;
var lastOpenDate = row.last_open_date;
if (new Date().getTime() - lastOpenDate.getTime() > CONVERT_TIMEOUT) {
status.err = constants.CONVERT_TIMEOUT;
}
@ -60,7 +60,6 @@ function* convertByCmd(cmd, async, baseUrl, opt_healthcheck) {
var task = new taskResult.TaskResultData();
task.key = docId;
task.format = cmd.getFormat();
task.status = taskResult.FileStatus.WaitQueue;
task.statusInfo = constants.NO_ERROR;
task.title = cmd.getTitle();

View File

@ -32,7 +32,7 @@ var checkFileExpire = function() {
currentRemovedCount = 0;
expired = yield taskResult.getExpired(cfgExpFilesRemovedAtOnce, cfgExpFiles);
for (var i = 0; i < expired.length; ++i) {
var docId = expired[i].tr_key;
var docId = expired[i].id;
//проверяем что никто не сидит в документе
var hvals = yield docsCoServer.getAllPresencePromise(docId);
if(0 == hvals.length){

View File

@ -19,7 +19,6 @@ var FileStatus = {
function TaskResultData() {
this.key = null;
this.format = null;
this.status = null;
this.statusInfo = null;
this.lastOpenDate = null;
@ -31,9 +30,6 @@ TaskResultData.prototype.completeDefaults = function() {
if (!this.key) {
this.key = '';
}
if (!this.format) {
this.format = '';
}
if (!this.status) {
this.status = FileStatus.None;
}
@ -57,16 +53,16 @@ TaskResultData.prototype.completeDefaults = function() {
function getUpsertString(task, opt_updateUserIndex) {
task.completeDefaults();
var dateNow = sqlBase.getDateTime(new Date());
var commandArg = [task.key, task.format, task.status, task.statusInfo, dateNow, task.title, task.userIndex, task.changeId];
var commandArg = [task.key, task.status, task.statusInfo, dateNow, task.title, task.userIndex, task.changeId];
var commandArgEsc = commandArg.map(function(curVal) {
return sqlBase.baseConnector.sqlEscape(curVal)
});
var sql = 'INSERT INTO task_result ( tr_key, tr_format, tr_status, tr_status_info, tr_last_open_date, tr_title,' +
' tr_user_index, tr_change_id ) VALUES (' + commandArgEsc.join(', ') + ') ON DUPLICATE KEY UPDATE' +
' tr_last_open_date = ' + sqlBase.baseConnector.sqlEscape(dateNow);
var sql = 'INSERT INTO task_result ( id, status, status_info, last_open_date, title,' +
' user_index, change_id ) VALUES (' + commandArgEsc.join(', ') + ') ON DUPLICATE KEY UPDATE' +
' last_open_date = ' + sqlBase.baseConnector.sqlEscape(dateNow);
if (opt_updateUserIndex) {
//todo LAST_INSERT_ID in posgresql - RETURNING
sql += ', tr_user_index = LAST_INSERT_ID(tr_user_index + 1);';
sql += ', user_index = LAST_INSERT_ID(user_index + 1);';
} else {
sql += ';';
}
@ -87,7 +83,7 @@ function upsert(task, opt_updateUserIndex) {
}
function getSelectString(docId) {
return 'SELECT * FROM task_result WHERE tr_key=' + sqlBase.baseConnector.sqlEscape(docId) + ';';
return 'SELECT * FROM task_result WHERE id=' + sqlBase.baseConnector.sqlEscape(docId) + ';';
}
function select(docId) {
@ -104,33 +100,30 @@ function select(docId) {
}
function toUpdateArray(task, updateTime) {
var res = [];
if (null != task.format) {
res.push('tr_format=' + sqlBase.baseConnector.sqlEscape(task.format));
}
if (null != task.status) {
res.push('tr_status=' + sqlBase.baseConnector.sqlEscape(task.status));
res.push('status=' + sqlBase.baseConnector.sqlEscape(task.status));
}
if (null != task.statusInfo) {
res.push('tr_status_info=' + sqlBase.baseConnector.sqlEscape(task.statusInfo));
res.push('status_info=' + sqlBase.baseConnector.sqlEscape(task.statusInfo));
}
if (updateTime) {
res.push('tr_last_open_date=' + sqlBase.baseConnector.sqlEscape(sqlBase.getDateTime(new Date())));
res.push('last_open_date=' + sqlBase.baseConnector.sqlEscape(sqlBase.getDateTime(new Date())));
}
if (null != task.title) {
res.push('tr_title=' + sqlBase.baseConnector.sqlEscape(task.title));
res.push('title=' + sqlBase.baseConnector.sqlEscape(task.title));
}
if (null != task.indexUser) {
res.push('tr_index_user=' + sqlBase.baseConnector.sqlEscape(task.indexUser));
res.push('user_index=' + sqlBase.baseConnector.sqlEscape(task.indexUser));
}
if (null != task.changeId) {
res.push('tr_change_id=' + sqlBase.baseConnector.sqlEscape(task.changeId));
res.push('change_id=' + sqlBase.baseConnector.sqlEscape(task.changeId));
}
return res;
}
function getUpdateString(task) {
var commandArgEsc = toUpdateArray(task, true);
return 'UPDATE task_result SET ' + commandArgEsc.join(', ') +
' WHERE tr_key=' + sqlBase.baseConnector.sqlEscape(task.key) + ';';
' WHERE id=' + sqlBase.baseConnector.sqlEscape(task.key) + ';';
}
function update(task) {
@ -148,7 +141,7 @@ function update(task) {
function getUpdateIfString(task, mask) {
var commandArgEsc = toUpdateArray(task, true);
var commandArgEscMask = toUpdateArray(mask);
commandArgEscMask.push('tr_key=' + sqlBase.baseConnector.sqlEscape(mask.key));
commandArgEscMask.push('id=' + sqlBase.baseConnector.sqlEscape(mask.key));
return 'UPDATE task_result SET ' + commandArgEsc.join(', ') +
' WHERE ' + commandArgEscMask.join(' AND ') + ';';
}
@ -169,12 +162,12 @@ function updateIf(task, mask) {
function getInsertString(task) {
var dateNow = sqlBase.getDateTime(new Date());
task.completeDefaults();
var commandArg = [task.key, task.format, task.status, task.statusInfo, dateNow, task.title, task.userIndex, task.changeId];
var commandArg = [task.key, task.status, task.statusInfo, dateNow, task.title, task.userIndex, task.changeId];
var commandArgEsc = commandArg.map(function(curVal) {
return sqlBase.baseConnector.sqlEscape(curVal)
});
return 'INSERT INTO task_result ( tr_key, tr_format, tr_status, tr_status_info, tr_last_open_date, tr_title,'+
' tr_user_index, tr_change_id) VALUES (' + commandArgEsc.join(', ') + ');';
return 'INSERT INTO task_result ( id, status, status_info, last_open_date, title, user_index, change_id) VALUES (' +
commandArgEsc.join(', ') + ');';
}
function addRandomKey(task) {
return new Promise(function(resolve, reject) {
@ -215,7 +208,7 @@ function* addRandomKeyTask(key) {
}
function getRemoveString(docId) {
return 'DELETE FROM task_result WHERE tr_key=' + sqlBase.baseConnector.sqlEscape(docId) + ';';
return 'DELETE FROM task_result WHERE id=' + sqlBase.baseConnector.sqlEscape(docId) + ';';
}
function remove(docId) {
return new Promise(function(resolve, reject) {
@ -233,8 +226,8 @@ function getExpiredString(maxCount, expireSeconds) {
var expireDate = new Date();
utils.addSeconds(expireDate, -expireSeconds);
var expireDateStr = sqlBase.baseConnector.sqlEscape(sqlBase.getDateTime(expireDate));
return 'SELECT * FROM task_result WHERE tr_last_open_date <= ' + expireDateStr +
' AND NOT EXISTS(SELECT dc_key FROM doc_changes WHERE dc_key = tr_key LIMIT 1) LIMIT ' + maxCount + ';';
return 'SELECT * FROM task_result WHERE last_open_date <= ' + expireDateStr +
' AND NOT EXISTS(SELECT id FROM doc_changes WHERE doc_changes.id = task_result.id LIMIT 1) LIMIT ' + maxCount + ';';
}
function getExpired(maxCount, expireSeconds) {
return new Promise(function(resolve, reject) {

View File

@ -260,7 +260,7 @@ function* processDownloadFromStorage(dataConvert, cmd, task, tempDirs) {
let changes = yield promiseGetChanges(cmd.getDocId());
for (var i = 0; i < changes.length; ++i) {
var change = changes[i];
if (null === changesAuthor || changesAuthor !== change.dc_user_id_original) {
if (null === changesAuthor || changesAuthor !== change.user_id_original) {
if (null !== changesAuthor) {
changesBuffers.push(new Buffer(']', 'utf8'));
let dataZipFile = Buffer.concat(changesBuffers);
@ -269,15 +269,15 @@ function* processDownloadFromStorage(dataConvert, cmd, task, tempDirs) {
var filePath = path.join(changesDir, fileName);
fs.writeFileSync(filePath, dataZipFile);
}
changesAuthor = change.dc_user_id_original;
var strDate = baseConnector.getDateTime(change.dc_date);
changesHistoryData.push({'userid': changesAuthor, 'username': change.dc_user_name, 'date': strDate});
changesAuthor = change.user_id_original;
var strDate = baseConnector.getDateTime(change.change_date);
changesHistoryData.push({'userid': changesAuthor, 'username': change.user_name, 'date': strDate});
changesBuffers = [];
changesBuffers.push(new Buffer('[', 'utf8'));
} else {
changesBuffers.push(new Buffer(',', 'utf8'));
}
changesBuffers.push(new Buffer(change.dc_data, 'utf8'));
changesBuffers.push(new Buffer(change.change_data, 'utf8'));
}
if (null !== changesBuffers) {
changesBuffers.push(new Buffer(']', 'utf8'));

View File

@ -32,10 +32,10 @@ DROP TABLE IF EXISTS `doc_changes`;
--
CREATE TABLE IF NOT EXISTS `doc_callbacks` (
`dc_key` varchar(255) NOT NULL,
`dc_callback` text NOT NULL,
`dc_baseurl` text NOT NULL,
PRIMARY KEY (`dc_key`)
`id` varchar(255) NOT NULL,
`callback` text NOT NULL,
`baseurl` text NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
--
@ -50,14 +50,14 @@ CREATE TABLE IF NOT EXISTS `doc_callbacks` (
--
CREATE TABLE IF NOT EXISTS `doc_changes` (
`dc_key` varchar(255) NOT NULL,
`dc_change_id` int(10) unsigned NOT NULL,
`dc_user_id` varchar(255) NOT NULL,
`dc_user_id_original` varchar(255) NOT NULL,
`dc_user_name` varchar(255) NOT NULL,
`dc_data` longtext NOT NULL,
`dc_date` datetime NOT NULL,
PRIMARY KEY (`dc_key`,`dc_change_id`)
`id` varchar(255) NOT NULL,
`change_id` int(10) unsigned NOT NULL,
`user_id` varchar(255) NOT NULL,
`user_id_original` varchar(255) NOT NULL,
`user_name` varchar(255) NOT NULL,
`change_data` longtext NOT NULL,
`change_date` datetime NOT NULL,
PRIMARY KEY (`id`,`change_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
--
@ -72,15 +72,14 @@ CREATE TABLE IF NOT EXISTS `doc_changes` (
--
CREATE TABLE IF NOT EXISTS `task_result` (
`tr_key` varchar(255) NOT NULL,
`tr_format` varchar(45) NOT NULL,
`tr_status` tinyint(3) NOT NULL,
`tr_status_info` int(10) NOT NULL,
`tr_last_open_date` datetime NOT NULL,
`tr_title` varchar(255) NOT NULL,
`tr_user_index` int(10) unsigned NOT NULL DEFAULT 1,
`tr_change_id` int(10) unsigned NOT NULL DEFAULT 0,
PRIMARY KEY (`tr_key`)
`id` varchar(255) NOT NULL,
`status` tinyint(3) NOT NULL,
`status_info` int(10) NOT NULL,
`last_open_date` datetime NOT NULL,
`title` varchar(255) NOT NULL,
`user_index` int(10) unsigned NOT NULL DEFAULT 1,
`change_id` int(10) unsigned NOT NULL DEFAULT 0,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
--