@@ -15,75 +15,273 @@ class Program
1515
1616 static void Main ( string [ ] args )
1717 {
18-
19- if ( ! ValidateArgs ( args ) )
20- {
21- args = new string [ 100 ] ;
22- Console . WriteLine ( @"Please Enter Server Address: " ) ;
23- args [ 0 ] = Console . ReadLine ( ) ;
24-
25- Console . WriteLine ( @"Please Enter Server Port: " ) ;
26- args [ 1 ] = Console . ReadLine ( ) ;
18+ string command = string . Empty ;
19+
2720
28- Console . WriteLine ( @"Please Enter Database Name: " ) ;
29- args [ 2 ] = Console . ReadLine ( ) ;
30-
31- Console . WriteLine ( @"Please Enter Database Username: " ) ;
32- args [ 3 ] = Console . ReadLine ( ) ;
21+ if ( args . Length == 0 )
22+ {
23+ Helper . LogHelper . Log ( "No args provided." ) ;
24+ PrintInstructions ( ) ;
25+ return ;
26+ }
3327
34- Console . WriteLine ( @"Please Enter Database Password: " ) ;
35- args [ 4 ] = Console . ReadLine ( ) ;
28+ command = args [ 0 ] . ToLower ( ) ;
3629
37- Console . WriteLine ( @"Please Enter SQL Scripts Path: " ) ;
38- args [ 5 ] = Console . ReadLine ( ) ;
30+ if ( command == "runscripts" || command == "backup" )
31+ {
32+ if ( command == "runscripts" )
33+ {
34+ RunScripts ( args ) ;
35+ }
36+ else if ( command == "backup" )
37+ {
38+ Backup ( args ) ;
39+ }
3940 }
40- if ( ! ValidateSqlPath ( args [ 5 ] ) )
41+ else
4142 {
43+ Console . Write ( "Wrong command\n " ) ;
44+ PrintInstructions ( ) ;
4245 return ;
4346 }
44- //generate sql connect string
45- SqlConnectionString = string . Format ( @"Server={0},{1};Initial Catalog={2};Persist Security Info=False;User ID={3};Password={4};Connection Timeout=30;" , args [ 0 ] , args [ 1 ] , args [ 2 ] , args [ 3 ] , args [ 4 ] ) ;
46-
47- //init basic scheme for sqltoolkit
48- Business . DatabaseVersion . Init ( ) ;
4947
5048
51- Helper . LogHelper . Log ( "===============BEGIN=================" ) ;
5249
53- //backup database before upgrade
54- Business . SQLServer . Backup ( args [ 2 ] , "/home/sqlbackup/devopslabs.bak" ) ;
50+ }
5551
5652
57- //run upgrade sql scripts
58- var scriptsFolder = args [ 5 ] ;
59- Business . DatabaseVersion . Upgrade ( scriptsFolder ) ;
6053
61- Helper . LogHelper . Log ( "===============End=================" ) ;
54+ /// <summary>
55+ /// upgarde sql scheme
56+ /// </summary>
57+ private static void RunScripts ( string [ ] args )
58+ {
59+ string database_server = string . Empty ;
60+ string database_name = string . Empty ;
61+ string database_username = string . Empty ;
62+ string database_password = string . Empty ;
63+ string sqlscripts_path = string . Empty ;
6264
63- }
65+ for ( int i = 0 ; i < args . Length ; i ++ )
66+ {
67+ switch ( args [ i ] )
68+ {
69+ case "-s" :
70+ if ( i + 1 < args . Length )
71+ {
72+ database_server = args [ i + 1 ] ;
73+ }
74+ else
75+ {
76+ Console . Write ( ( "Missing argument to -s.\n Supply argument as -s \" database server with port\" \n " ) ) ;
77+ return ;
78+ }
79+ break ;
80+ case "-n" :
81+ if ( i + 1 < args . Length )
82+ {
83+ database_name = args [ i + 1 ] ;
84+ }
85+ else
86+ {
87+ Console . Write ( ( "Missing argument to -n.\n Supply argument as -n \" database name\" \n " ) ) ;
88+ return ;
89+ }
90+ break ;
91+ case "-u" :
92+ if ( i + 1 < args . Length )
93+ {
94+ database_username = args [ i + 1 ] ;
95+ }
96+ else
97+ {
98+ Console . Write ( ( "Missing argument to -u.\n Supply argument as -u \" database username\" \n " ) ) ;
99+ return ;
100+ }
101+ break ;
102+ case "-p" :
103+ if ( i + 1 < args . Length )
104+ {
105+ database_password = args [ i + 1 ] ;
106+ }
107+ else
108+ {
109+ Console . Write ( ( "Missing argument to -p.\n Supply argument as -p \" database password\" \n " ) ) ;
110+ return ;
111+ }
112+ break ;
113+ case "-path" :
114+ if ( i + 1 < args . Length )
115+ {
116+ sqlscripts_path = args [ i + 1 ] ;
117+ }
118+ else
119+ {
120+ Console . Write ( ( "Missing argument to -path.\n Supply argument as -path \" sql scripts path\" \n " ) ) ;
121+ return ;
122+ }
123+ break ;
124+ }
125+ }
64126
65- private static bool ValidateArgs ( string [ ] args ) {
66- if ( args . Length < 6 )
127+ if ( string . IsNullOrEmpty ( database_server ) )
128+ {
129+ Console . Write ( ( "Missing argument -s.\n Supply argument -s \" database server with port\" \n " ) ) ;
130+ return ;
131+ }
132+ if ( string . IsNullOrEmpty ( database_name ) )
133+ {
134+ Console . Write ( ( "Missing argument -n.\n Supply argument -n \" database name\" \n " ) ) ;
135+ return ;
136+ }
137+ if ( string . IsNullOrEmpty ( database_username ) )
67138 {
68- Helper . LogHelper . Log ( "请提供完整的参数信息" ) ;
69- return false ;
139+ Console . Write ( ( "Missing argument -u.\n Supply argument -u \" database username\" \n " ) ) ;
140+ return ;
141+ }
142+ if ( string . IsNullOrEmpty ( database_password ) )
143+ {
144+ Console . Write ( ( "Missing argument -p.\n Supply argument -p \" database password\" \n " ) ) ;
145+ return ;
70146 }
71- return true ;
147+ if ( string . IsNullOrEmpty ( sqlscripts_path ) ) {
148+ Console . Write ( ( "Missing argument -path.\n Supply argument -path \" sql scripts path\" \n " ) ) ;
149+ return ;
150+ }
151+
152+
153+ SqlConnectionString = string . Format ( @"Server={0};Initial Catalog={1};Persist Security Info=False;User ID={2};Password={3};Connection Timeout=30;" , database_server , database_name , database_username , database_password ) ;
154+
155+ //init basic scheme for sqltoolkit
156+ Business . DatabaseVersion . Init ( ) ;
157+ Helper . LogHelper . Log ( "===============BEGIN=================" ) ;
158+ //run upgrade sql scripts
159+ Business . DatabaseVersion . Upgrade ( sqlscripts_path ) ;
160+ Helper . LogHelper . Log ( "===============End=================" ) ;
161+
72162 }
73163
74- private static bool ValidateSqlPath ( string path )
164+ /// <summary>
165+ /// backup database
166+ /// </summary>
167+ private static void Backup ( string [ ] args )
75168 {
76- if ( ! Directory . Exists ( path ) )
169+ string database_server = string . Empty ;
170+ string database_name = string . Empty ;
171+ string database_username = string . Empty ;
172+ string database_password = string . Empty ;
173+ string backup_path = string . Empty ;
174+
175+ for ( int i = 0 ; i < args . Length ; i ++ )
176+ {
177+ switch ( args [ i ] )
178+ {
179+ case "-s" :
180+ if ( i + 1 < args . Length )
181+ {
182+ database_server = args [ i + 1 ] ;
183+ }
184+ else
185+ {
186+ Helper . LogHelper . Log ( ( "Missing argument to -s.\n Supply argument as -s \" database server with port\" \n " ) ) ;
187+ return ;
188+ }
189+ break ;
190+ case "-n" :
191+ if ( i + 1 < args . Length )
192+ {
193+ database_name = args [ i + 1 ] ;
194+ }
195+ else
196+ {
197+ Helper . LogHelper . Log ( ( "Missing argument to -n.\n Supply argument as -n \" database name\" \n " ) ) ;
198+ return ;
199+ }
200+ break ;
201+ case "-u" :
202+ if ( i + 1 < args . Length )
203+ {
204+ database_username = args [ i + 1 ] ;
205+ }
206+ else
207+ {
208+ Helper . LogHelper . Log ( ( "Missing argument to -u.\n Supply argument as -u \" database username\" \n " ) ) ;
209+ return ;
210+ }
211+ break ;
212+ case "-p" :
213+ if ( i + 1 < args . Length )
214+ {
215+ database_password = args [ i + 1 ] ;
216+ }
217+ else
218+ {
219+ Helper . LogHelper . Log ( ( "Missing argument to -p.\n Supply argument as -p \" database password\" \n " ) ) ;
220+ return ;
221+ }
222+ break ;
223+ case "-path" :
224+ if ( i + 1 < args . Length )
225+ {
226+ backup_path = args [ i + 1 ] ;
227+ }
228+ else
229+ {
230+ Helper . LogHelper . Log ( ( "Missing argument to -path.\n Supply argument as -path \" backup path\" \n " ) ) ;
231+ return ;
232+ }
233+ break ;
234+ }
235+ }
236+ if ( string . IsNullOrEmpty ( database_server ) )
237+ {
238+ Console . Write ( ( "Missing argument -s.\n Supply argument -s \" database server with port\" \n " ) ) ;
239+ return ;
240+ }
241+ if ( string . IsNullOrEmpty ( database_name ) )
77242 {
78- Helper . LogHelper . Log ( string . Format ( "Error:The path you supply is not exist,path:{0}" , path ) ) ;
79- return false ;
243+ Console . Write ( ( "Missing argument -n.\n Supply argument -n \" database name\" \n " ) ) ;
244+ return ;
245+ }
246+ if ( string . IsNullOrEmpty ( database_username ) )
247+ {
248+ Console . Write ( ( "Missing argument -u.\n Supply argument -u \" database username\" \n " ) ) ;
249+ return ;
80250 }
81- return true ;
251+ if ( string . IsNullOrEmpty ( database_password ) )
252+ {
253+ Console . Write ( ( "Missing argument -p.\n Supply argument -p \" database password\" \n " ) ) ;
254+ return ;
255+ }
256+ if ( string . IsNullOrEmpty ( backup_path ) )
257+ {
258+ Console . Write ( ( "Missing argument -path.\n Supply argument -path \" backup path\" \n " ) ) ;
259+ return ;
260+ }
261+
262+
263+
264+ SqlConnectionString = string . Format ( @"Server={0};Initial Catalog={1};Persist Security Info=False;User ID={2};Password={3};Connection Timeout=30;" , database_server , database_name , database_username , database_password ) ;
265+
266+ //backup database before upgrade
267+ Business . SQLServer . Backup ( database_name , backup_path ) ;
268+
82269 }
83270
84-
85271
86-
272+ /// <summary>
273+ /// Tool Instructions
274+ /// </summary>
275+ private static void PrintInstructions ( )
276+ {
277+ String inst = "Welcome to Lean-Soft SQLToolkit.\n " +
278+ "Provide command you want to run\n " +
279+ "---- Usage ----\n " +
280+ "runscripts [-s <database server>][-n <database name>][-u <database user>][-p <database password>][-path <sql scripts path>]\n " +
281+ "backup [-s <database server>][-n <database name>][-u <database user>][-p <database password>][-path <backup path>]" ;
282+ Console . WriteLine ( inst ) ;
283+ }
284+
87285
88286 }
89287}
0 commit comments