-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathpddev-nukedb.js
56 lines (48 loc) · 1.79 KB
/
pddev-nukedb.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
#!/usr/bin/env node
'use strict';
const sql = require('mssql/msnodesqlv8');
const args = require('args');
const SqlService = require('./sql/sqlService');
const config = require('./config.json');
args.option('databaseName', 'The database you want to act on');
(async () => {
const postgratorConfig = await require('./postgratorConfig');
const sqlService = new SqlService();
// console.log(process.argv);
const options = args.parse(process.argv);
const databaseName = options.databaseName ? options.databaseName : postgratorConfig.database;
//const sqlScripts = await sqlService.transformSqlScripts({ databaseName: databaseName }); //await require('./sqlScripts/sqlScriptService')({ databaseName: databaseName });
let masterPool = {};
let dbPool = {};
try {
const sqlMasterConnectionOptions = {
connectionString: `Driver=SQL Server;Server=(local);Database=master;Trusted_Connection=true;`,
};
// this wasn't working on all machines
// const sqlMasterConnectionOptions = {
// driver: 'msnodesqlv8',
// server: '(local)',
// database: 'master',
// options: {
// trustedConnection: true
// }
// };
const sqlDbConnectionOptions = {
connectionString: `Driver=SQL Server;Server=(local);Database=${databaseName};Trusted_Connection=true;`,
};
masterPool = await new sql.ConnectionPool(sqlMasterConnectionOptions).connect();
console.log('connected to master using instance ${c}...');
await sqlService.nukeDb(masterPool, sqlDbConnectionOptions, {databaseName: databaseName, username: config.username, password: config.password});
}
catch (err) {
console.log(err);
}
finally {
if (masterPool && masterPool.close) {
masterPool.close();
}
if (dbPool && dbPool.close) {
dbPool.close();
}
}
})();