Skip to content

Commit 6241e76

Browse files
committed
Added a readme
1 parent fa2a3d3 commit 6241e76

7 files changed

+257
-54
lines changed

package-lock.json

+46-46
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

+9-4
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
{
2-
"name": "devtools",
3-
"version": "1.0.0",
4-
"description": "Stuff developers need to run on their local machines",
2+
"name": "pddev",
3+
"version": "1.0.1",
4+
"description": "Helpful console utilities for developers to use on their local machines",
55
"main": "pddev.js",
66
"bin": {
77
"pddev": "pddev.js",
8-
"pddev-migrate": "pddev-migrate.js",
8+
"pddev-migratedb": "pddev-migratedb.js",
9+
"pddev-nukedb": "pddev-nukedb.js",
910
"pddev-rebuilddb": "pddev-rebuilddb.js",
1011
"pddev-restoredb": "pddev-restoredb.js",
1112
"pddev-test": "pddev-test.js"
@@ -15,6 +16,10 @@
1516
},
1617
"author": "Tim Hardy",
1718
"license": "ISC",
19+
"repository": {
20+
"type": "git",
21+
"url": "https://github.com/premierdesigns/pddev"
22+
},
1823
"dependencies": {
1924
"args": "^5.0.0",
2025
"fs-extra": "^7.0.1",
File renamed without changes.

pddev-nukedb.js

+91
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,91 @@
1+
#!/usr/bin/env node
2+
'use strict';
3+
const sql = require('mssql/msnodesqlv8');
4+
const args = require('args');
5+
const SqlService = require('./sql/sqlService');
6+
const SqlMigrationService = require('./sqlMigrationService');
7+
const config = require('./config.json');
8+
9+
args.option('databaseName', 'The database you want to act on');
10+
11+
(async () => {
12+
const sqlService = new SqlService();
13+
const sqlMigrationService = new SqlMigrationService();
14+
// console.log(process.argv);
15+
const options = args.parse(process.argv);
16+
17+
//const sqlScripts = await sqlService.transformSqlScripts({ databaseName: options.databaseName }); //await require('./sqlScripts/sqlScriptService')({ databaseName: options.databaseName });
18+
19+
let masterPool = {};
20+
let dbPool = {};
21+
22+
try {
23+
const sqlMasterConnectionOptions = {
24+
driver: 'msnodesqlv8',
25+
server: '(local)',
26+
database: 'master',
27+
options: {
28+
trustedConnection: true
29+
}
30+
};
31+
const sqlDbConnectionOptions = {
32+
connectionString: `Driver=SQL Server;Server=(local);Database=${options.databaseName};Trusted_Connection=true;`,
33+
};
34+
35+
masterPool = await new sql.ConnectionPool(sqlMasterConnectionOptions).connect();
36+
console.log('connected to master...');
37+
38+
// **** drop database
39+
let result = await sqlService.runScript(
40+
masterPool,
41+
sqlService.scriptNames.dropDatabase,
42+
`attempting to drop database ${options.databaseName}...`,
43+
{databaseName: options.databaseName});
44+
45+
// **** create database
46+
result = await sqlService.runScript(
47+
masterPool,
48+
sqlService.scriptNames.createDatabase,
49+
`creating database ${options.databaseName}...`,
50+
{databaseName: options.databaseName});
51+
52+
// **** create local user if not exists
53+
result = await sqlService.runScript(
54+
masterPool,
55+
sqlService.scriptNames.createLocalUserIfNotExists,
56+
`ensuring localuser exists...`,
57+
{
58+
username: config.username, password: config.password
59+
});
60+
masterPool.close();
61+
62+
// **** initialize security
63+
dbPool = await new sql.ConnectionPool(sqlDbConnectionOptions).connect();
64+
console.log(`connected to ${options.databaseName}...`);
65+
66+
result = await sqlService.runScript(
67+
dbPool,
68+
sqlService.scriptNames.initSecurityForLocalUser,
69+
`initializing security for localuser on database ${options.databaseName}...`,
70+
{
71+
databaseName: options.databaseName,
72+
username: config.username,
73+
password: config.password,
74+
});
75+
76+
console.log(`${options.databaseName} dropped and created - DONE`);
77+
dbPool.close();
78+
}
79+
catch (err) {
80+
console.log(err);
81+
}
82+
finally {
83+
if (masterPool) {
84+
masterPool.close();
85+
}
86+
if (dbPool) {
87+
dbPool.close();
88+
}
89+
}
90+
91+
})();

pddev-rebuilddb.js

+2-3
Original file line numberDiff line numberDiff line change
@@ -80,9 +80,8 @@ args.option('databaseName', 'The database you want to act on');
8080
console.log(`${options.databaseName} dropped and created - DONE`);
8181
dbPool.close();
8282

83-
// console.log(`migrating sql in local sql folder...`);
84-
// sqlMigrationService.migrateSql();
85-
83+
console.log(`migrating sql in local sql folder...`);
84+
sqlMigrationService.migrateSql();
8685
}
8786
catch (err) {
8887
console.log(err);

pddev.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@ const args = require('args');
66
// this app from an npm package (assuming we make one), that part will be taken care of for you.
77
args
88
.option('databaseName', 'The database you want to act on')
9-
.command('migrate', 'Migrate database using scripts in local sql folder', ['m'])
9+
.command('migratedb', 'Migrate database using scripts in local sql folder', ['m'])
10+
.command('nukedb', 'Nuke database (drop, then create empty)', ['n'])
1011
.command('rebuilddb', 'Rebuild your database (drop, create, migrate)', ['r'])
1112
.command('restoredb', 'Restore database from bak file', ['s'])
1213
.command('test', 'Test cool new console stuffs', ['t']);

0 commit comments

Comments
 (0)