Backups to store server version in zip details and check and show alert for old backups created before version 2.0.0

This commit is contained in:
advplyr 2022-04-13 18:51:06 -05:00
parent 79a82df914
commit 05dff2583a
3 changed files with 29 additions and 8 deletions

View file

@ -92,6 +92,12 @@ class BackupManager {
var details = data.toString('utf8').split('\n')
var backup = new Backup({ details, fullPath: tempPath })
if (!backup.serverVersion) {
Logger.error(`[BackupManager] Invalid backup with no server version - might be a backup created before version 2.0.0`)
return res.status(500).send('Invalid backup. Might be a backup created before version 2.0.0.')
}
backup.fileSize = await getFileSize(backup.fullPath)
var existingBackupIndex = this.backups.findIndex(b => b.id === backup.id)
@ -133,6 +139,11 @@ class BackupManager {
var details = data.toString('utf8').split('\n')
var backup = new Backup({ details, fullPath: fullFilePath })
if (!backup.serverVersion) {
Logger.error(`[BackupManager] Old unsupported backup was found "${backup.fullPath}"`)
}
backup.fileSize = await getFileSize(backup.fullPath)
var existingBackupWithId = this.backups.find(b => b.id === backup.id)
if (existingBackupWithId) {

View file

@ -1,5 +1,6 @@
const Path = require('path')
const date = require('date-and-time')
const version = require('../../package.json').version
class Backup {
constructor(data = null) {
@ -11,6 +12,7 @@ class Backup {
this.filename = null
this.path = null
this.fullPath = null
this.serverVersion = null
this.fileSize = null
this.createdAt = null
@ -25,6 +27,7 @@ class Backup {
details.push(this.id)
details.push(this.backupMetadataCovers ? '1' : '0')
details.push(this.createdAt)
details.push(this.serverVersion)
return details.join('\n')
}
@ -32,6 +35,7 @@ class Backup {
this.id = data.details[0]
this.backupMetadataCovers = data.details[1] === '1'
this.createdAt = Number(data.details[2])
this.serverVersion = data.details[3] || null
this.datePretty = date.format(new Date(this.createdAt), 'ddd, MMM D YYYY HH:mm')
@ -51,7 +55,8 @@ class Backup {
path: this.path,
filename: this.filename,
fileSize: this.fileSize,
createdAt: this.createdAt
createdAt: this.createdAt,
serverVersion: this.serverVersion
}
}
@ -67,6 +72,8 @@ class Backup {
this.path = Path.join('backups', this.filename)
this.fullPath = Path.join(this.backupDirPath, this.filename)
this.serverVersion = version
this.createdAt = Date.now()
}
}