database-backup-dropbox
Advanced tools
Comparing version
{ | ||
"name": "database-backup-dropbox", | ||
"version": "0.0.1", | ||
"version": "0.0.2", | ||
"description": "Backups database and copies file to DropBox", | ||
"main": "./src/app.js", | ||
"scripts": { | ||
"test": "echo \"Error: no test specified\" && exit 1" | ||
"prepublish": "tsc", | ||
"start": "tsc & node ./src/app.js" | ||
}, | ||
@@ -9,0 +10,0 @@ "repository": { |
# database-backup-dropbox | ||
Backups database and copies file to DropBox | ||
``` | ||
Usage: database-backup-droxbox [options] | ||
Options: | ||
--fileNamePrefix [required] | ||
--filePath [required] | ||
--databaseName [required] | ||
--databaseUser [required] | ||
--databasePassword [required] | ||
--databaseHost [required] | ||
--accessToken [required] | ||
``` |
@@ -13,2 +13,3 @@ "use strict"; | ||
const argv = require('yargs') | ||
.usage('Usage: $0 [options]') | ||
.demand('fileNamePrefix', 'Filename Prefix') | ||
@@ -30,34 +31,31 @@ .demand('filePath', 'File Path') | ||
co(function* () { | ||
while (true) { | ||
const dropBoxGateway = new dropbox_gateway_1.DropBoxGateway(); | ||
const fileName = `${fileNamePrefix}_${moment().format('MM-DD-YYYY-HH-mm-ss')}.Bak`; | ||
const sqlConfig = { | ||
user: databaseUser, | ||
password: databasePassword, | ||
server: databaseHost, | ||
database: databaseName | ||
}; | ||
const pool = yield sql.connect(sqlConfig); | ||
const sqlResult = yield pool.request().query(`BACKUP DATABASE ${databaseName} TO DISK = '${path.join(filePath, fileName)}'`); | ||
pool.close(); | ||
const fileSize = fs.statSync(path.join(filePath, fileName)).size; | ||
const chunkSize = 100000; | ||
const sessionId = yield dropBoxGateway.startSession(accessToken); | ||
for (let i = 0; i < fileSize; i = i + chunkSize) { | ||
const buffer = readChunk.sync(path.join(filePath, fileName), i, chunkSize); | ||
for (let j = 0; j < 5; j++) { | ||
try { | ||
yield dropBoxGateway.appendSession(accessToken, sessionId, i, buffer); | ||
break; | ||
} | ||
catch (err) { | ||
winston.error(err); | ||
yield delay(1000); | ||
} | ||
const dropBoxGateway = new dropbox_gateway_1.DropBoxGateway(); | ||
const fileName = `${fileNamePrefix}_${moment().format('MM-DD-YYYY-HH-mm-ss')}.Bak`; | ||
const sqlConfig = { | ||
user: databaseUser, | ||
password: databasePassword, | ||
server: databaseHost, | ||
database: databaseName | ||
}; | ||
const pool = yield sql.connect(sqlConfig); | ||
const sqlResult = yield pool.request().query(`BACKUP DATABASE ${databaseName} TO DISK = '${path.join(filePath, fileName)}'`); | ||
pool.close(); | ||
const fileSize = fs.statSync(path.join(filePath, fileName)).size; | ||
const chunkSize = 100000; | ||
const sessionId = yield dropBoxGateway.startSession(accessToken); | ||
for (let i = 0; i < fileSize; i = i + chunkSize) { | ||
const buffer = readChunk.sync(path.join(filePath, fileName), i, chunkSize); | ||
for (let j = 0; j < 5; j++) { | ||
try { | ||
yield dropBoxGateway.appendSession(accessToken, sessionId, i, buffer); | ||
break; | ||
} | ||
winston.info(`${i} / ${fileSize}`); | ||
catch (err) { | ||
winston.error(err); | ||
yield delay(1000); | ||
} | ||
} | ||
yield dropBoxGateway.endSession(accessToken, sessionId, `/${fileName}`, fileSize); | ||
yield delay(43200000); | ||
winston.info(`${i} / ${fileSize}`); | ||
} | ||
yield dropBoxGateway.endSession(accessToken, sessionId, `/${fileName}`, fileSize); | ||
}).catch((err) => { | ||
@@ -64,0 +62,0 @@ winston.error(err); |
@@ -15,2 +15,3 @@ // Imports | ||
const argv = require('yargs') | ||
.usage('Usage: $0 [options]') | ||
.demand('fileNamePrefix', 'Filename Prefix') | ||
@@ -31,2 +32,4 @@ .demand('filePath', 'File Path') | ||
const databasePassword = argv.databasePassword; | ||
// 'FZCdx-RSopAAAAAAAAAAiakLpQQc01oxOYEL0WDE_imLZZvN0jx1lbl2M6tSEJDa' | ||
const accessToken = argv.accessToken; | ||
@@ -36,49 +39,44 @@ | ||
while (true) { | ||
const dropBoxGateway = new DropBoxGateway(); | ||
const dropBoxGateway = new DropBoxGateway(); | ||
const fileName = `${fileNamePrefix}_${moment().format('MM-DD-YYYY-HH-mm-ss')}.Bak`; | ||
const fileName = `${fileNamePrefix}_${moment().format('MM-DD-YYYY-HH-mm-ss')}.Bak`; | ||
const sqlConfig = { | ||
user: databaseUser, | ||
password: databasePassword, | ||
server: databaseHost, | ||
database: databaseName | ||
}; | ||
const sqlConfig = { | ||
user: databaseUser, | ||
password: databasePassword, | ||
server: databaseHost, | ||
database: databaseName | ||
}; | ||
const pool = yield sql.connect(sqlConfig); | ||
const sqlResult = yield pool.request().query(`BACKUP DATABASE ${databaseName} TO DISK = '${path.join(filePath, fileName)}'`); | ||
pool.close(); | ||
const pool = yield sql.connect(sqlConfig); | ||
const sqlResult = yield pool.request().query(`BACKUP DATABASE ${databaseName} TO DISK = '${path.join(filePath, fileName)}'`); | ||
pool.close(); | ||
const fileSize = fs.statSync(path.join(filePath, fileName)).size; | ||
const fileSize = fs.statSync(path.join(filePath, fileName)).size; | ||
const chunkSize = 100000; | ||
const chunkSize = 100000; | ||
const sessionId = yield dropBoxGateway.startSession(accessToken); | ||
const sessionId = yield dropBoxGateway.startSession(accessToken); | ||
for (let i = 0; i < fileSize; i = i + chunkSize) { | ||
const buffer = readChunk.sync(path.join(filePath, fileName), i, chunkSize); | ||
for (let i = 0; i < fileSize; i = i + chunkSize) { | ||
const buffer = readChunk.sync(path.join(filePath, fileName), i, chunkSize); | ||
for (let j = 0; j < 5; j++) { | ||
try { | ||
yield dropBoxGateway.appendSession(accessToken, sessionId, i, buffer); | ||
break; | ||
} catch (err) { | ||
winston.error(err); | ||
yield delay(1000); | ||
} | ||
for (let j = 0; j < 5; j++) { | ||
try { | ||
yield dropBoxGateway.appendSession(accessToken, sessionId, i, buffer); | ||
break; | ||
} catch (err) { | ||
winston.error(err); | ||
yield delay(1000); | ||
} | ||
winston.info(`${i} / ${fileSize}`); | ||
} | ||
yield dropBoxGateway.endSession(accessToken, sessionId, `/${fileName}`, fileSize); | ||
winston.info(`${i} / ${fileSize}`); | ||
} | ||
yield delay(43200000); // 12 Hours | ||
yield dropBoxGateway.endSession(accessToken, sessionId, `/${fileName}`, fileSize); | ||
} | ||
}).catch((err) => { | ||
winston.error(err); | ||
}); |
No tests
QualityPackage does not have any tests. This is a strong signal of a poorly maintained or low quality package.
Found 1 instance in 1 package
11389
1.41%1
-50%18
500%204
-1.45%