backups: move limits and storage into separate keys

This commit is contained in:
Girish Ramakrishnan
2023-08-15 08:14:35 +05:30
parent 630853abb5
commit cd9d49116e
8 changed files with 101 additions and 73 deletions
@@ -7,19 +7,20 @@ exports.up = async function(db) {
if (!result.length) return;
const backupConfig = JSON.parse(result[0].value);
// split policy from backupConfig and make limits a sub-object
// split policy, limits from backupConfig
const backupPolicy = backupConfig.schedulePattern && backupConfig.retentionPolicy ? { schedule: backupConfig.schedulePattern, retention: backupConfig.retentionPolicy } : null;
const newBackupConfig = _.omit(backupConfig, 'copyConcurrency', 'syncConcurrency', 'memoryLimit', 'downloadConcurrency',
const storageConfig = _.omit(backupConfig, 'copyConcurrency', 'syncConcurrency', 'memoryLimit', 'downloadConcurrency',
'deleteConcurrency', 'uploadPartSize', 'schedulePattern', 'retentionPolicy', 'mountStatus');
newBackupConfig.limits = _.pick(backupConfig, 'copyConcurrency', 'syncConcurrency', 'memoryLimit', 'downloadConcurrency',
const limits = _.pick(backupConfig, 'copyConcurrency', 'syncConcurrency', 'memoryLimit', 'downloadConcurrency',
'deleteConcurrency', 'uploadPartSize');
await db.runSql('START TRANSACTION');
await db.runSql('UPDATE settings SET value=? WHERE name=?', [ JSON.stringify(newBackupConfig), 'backup_config']);
await db.runSql('UPDATE settings SET value=?,name=? WHERE name=?', [ JSON.stringify(storageConfig), 'storage_config', 'backup_config']); // rename
if (backupPolicy) {
await db.runSql('INSERT INTO settings (name, value) VALUES (?, ?)', [ 'backup_policy', JSON.stringify(backupPolicy) ]);
}
await db.runSql('INSERT INTO settings (name, value) VALUES (?, ?)', [ 'backup_limits', JSON.stringify(limits) ]);
await db.runSql('COMMIT');
};