[feature] Add upgrade scripts; Add fixes for postgres

This commit is contained in:
Sergey Konovalov
2022-10-24 18:19:01 +03:00
committed by Sergey Konovalov
parent 99bda12ad1
commit abe92206da
5 changed files with 31 additions and 4 deletions

View File

@ -180,7 +180,7 @@
"options": {}
},
"pubsub": {
"maxChanges": 1000
"maxChanges": 0
},
"expire": {
"saveLock": 60,

View File

@ -506,7 +506,7 @@ function fillJwtByConnection(ctx, conn) {
}
function sendData(ctx, conn, data) {
conn.emit('message', JSON.stringify(data));
conn.emit('message', data);
const type = data ? data.type : null;
ctx.logger.debug('sendData: type = %s', type);
}
@ -1652,7 +1652,7 @@ exports.install = function(server, callbackFunction) {
element = arrayElements[j];
// Добавляем GMT, т.к. в базу данных мы пишем UTC, но сохраняется туда строка без UTC и при зачитывании будет неправильное время
objChangesDocument.push({docid: docId, change: element['change_data'].data,
objChangesDocument.push({docid: docId, change: element['change_data'],
time: element['change_date'].getTime(), user: element['user_id'],
useridoriginal: element['user_id_original']});
}

View File

@ -182,7 +182,7 @@ exports.insertChanges = function(ctx, tableChanges, startIndex, objChanges, docI
let time = [];
//Postgres 9.4 multi-argument unnest
let sqlCommand = `INSERT INTO ${tableChanges} (tenant, id, change_id, user_id, user_id_original, user_name, change_data, change_date) `;
sqlCommand += "SELECT * FROM UNNEST ($1::text[], $2::text[], $3::int[], $4::text[], $5::text[], $6::text[], $7::text[], $8::timestamp[]);";
sqlCommand += "SELECT * FROM UNNEST ($1::text[], $2::text[], $3::int[], $4::text[], $5::text[], $6::text[], $7::bytea[], $8::timestamp[]);";
let values = [tenant, id, changeId, userId, userIdOriginal, username, change, time];
let curLength = sqlCommand.length;
for (; i < objChanges.length; ++i) {

View File

@ -0,0 +1,18 @@
DELIMITER DLM00
DROP PROCEDURE IF EXISTS upgrade730 DLM00
CREATE PROCEDURE upgrade730()
BEGIN
IF (SELECT DATA_TYPE FROM information_schema.`COLUMNS` WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'doc_changes' AND COLUMN_NAME = 'change_data') <> 'longblob' THEN
SET SQL_SAFE_UPDATES=0;
ALTER TABLE `doc_changes` CHANGE COLUMN `change_data` `change_data` LONGBLOB NOT NULL ;
SET SQL_SAFE_UPDATES=1;
END IF;
END DLM00
CALL upgrade730() DLM00
DELIMITER ;

View File

@ -0,0 +1,9 @@
DO $$
BEGIN
BEGIN
ALTER TABLE doc_changes ALTER COLUMN change_data TYPE bytea USING change_data::bytea;
EXCEPTION
WHEN duplicate_column THEN RAISE NOTICE 'cant modify doc_changes.change_data colummn';
END;
END;
$$