2023-07-12 10:01:53 +05:30
|
|
|
'use strict';
|
|
|
|
|
|
2025-02-13 14:03:25 +01:00
|
|
|
const _ = require('../src/underscore.js');
|
2023-07-13 11:50:57 +05:30
|
|
|
|
2023-07-12 10:01:53 +05:30
|
|
|
exports.up = async function(db) {
|
|
|
|
|
const result = await db.runSql('SELECT * FROM settings WHERE name=?', [ 'backup_config' ]);
|
|
|
|
|
if (!result.length) return;
|
|
|
|
|
|
|
|
|
|
const backupConfig = JSON.parse(result[0].value);
|
2023-08-15 08:14:35 +05:30
|
|
|
// split policy, limits from backupConfig
|
2023-07-13 12:27:44 +05:30
|
|
|
const backupPolicy = backupConfig.schedulePattern && backupConfig.retentionPolicy ? { schedule: backupConfig.schedulePattern, retention: backupConfig.retentionPolicy } : null;
|
2023-07-13 11:50:57 +05:30
|
|
|
|
2025-02-13 14:03:25 +01:00
|
|
|
const storageConfig = _.omit(backupConfig, ['copyConcurrency', 'syncConcurrency', 'memoryLimit', 'downloadConcurrency',
|
|
|
|
|
'deleteConcurrency', 'uploadPartSize', 'schedulePattern', 'retentionPolicy', 'mountStatus']);
|
|
|
|
|
const limits = _.pick(backupConfig, ['copyConcurrency', 'syncConcurrency', 'memoryLimit', 'downloadConcurrency',
|
|
|
|
|
'deleteConcurrency', 'uploadPartSize']);
|
2023-07-12 10:01:53 +05:30
|
|
|
|
|
|
|
|
await db.runSql('START TRANSACTION');
|
2023-08-21 21:54:25 +05:30
|
|
|
await db.runSql('UPDATE settings SET value=?,name=? WHERE name=?', [ JSON.stringify(storageConfig), 'backup_storage', 'backup_config']); // rename
|
2023-07-13 12:27:44 +05:30
|
|
|
if (backupPolicy) {
|
2023-07-13 12:49:58 +05:30
|
|
|
await db.runSql('INSERT INTO settings (name, value) VALUES (?, ?)', [ 'backup_policy', JSON.stringify(backupPolicy) ]);
|
2023-07-13 12:27:44 +05:30
|
|
|
}
|
2023-08-15 08:14:35 +05:30
|
|
|
await db.runSql('INSERT INTO settings (name, value) VALUES (?, ?)', [ 'backup_limits', JSON.stringify(limits) ]);
|
2023-07-12 10:01:53 +05:30
|
|
|
await db.runSql('COMMIT');
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
exports.down = async function(/* db */) {
|
|
|
|
|
};
|