diff --git a/.env b/.env index f1644a5..de0f091 100644 --- a/.env +++ b/.env @@ -1,2 +1,3 @@ PORT=5005 -NODE_ENV=development \ No newline at end of file +NODE_ENV=development +VERSION=1.6.8 \ No newline at end of file diff --git a/db/index.js b/db/index.js index fbff66d..34e715f 100644 --- a/db/index.js +++ b/db/index.js @@ -2,6 +2,7 @@ const { Sequelize } = require('sequelize'); const { join } = require('path'); const fs = require('fs'); const Umzug = require('umzug'); +const backupDB = require('./utils/backupDb'); const Logger = require('../utils/Logger'); const logger = new Logger(); @@ -25,9 +26,7 @@ const umzug = new Umzug({ const connectDB = async () => { try { - if (fs.existsSync('data/db.sqlite')) { - fs.copyFileSync('data/db.sqlite', 'data/backup_db.sqlite'); - } + backupDB(); await sequelize.authenticate(); logger.log('Connected to database'); diff --git a/db/utils/backupDb.js b/db/utils/backupDb.js new file mode 100644 index 0000000..572679b --- /dev/null +++ b/db/utils/backupDb.js @@ -0,0 +1,21 @@ +const fs = require('fs'); + +const backupDB = () => { + if (!fs.existsSync('data/db_backups')) { + fs.mkdirSync('data/db_backups'); + } + + const version = process.env.VERSION; + const slug = `db-${version.replace(/\./g, '')}-backup.sqlite`; + + const srcPath = 'data/db.sqlite'; + const destPath = `data/db_backups/${slug}`; + + if (fs.existsSync(srcPath)) { + if (!fs.existsSync(destPath)) { + fs.copyFileSync(srcPath, destPath); + } + } +}; + +module.exports = backupDB;