· 9 years ago · Nov 04, 2016, 06:32 PM
1
2var sqlite3 = require("sqlite3").verbose();
3var db = new sqlite3.Database('database/pagine.sqlite3');
4var async = require("async");
5var deasync = require("deasync");
6
7
8var mysql = require('mysql');
9var connection = mysql.createConnection({
10 host : 'localhost',
11 user : 'root',
12 password : '123456',
13 database : 'test3'
14});
15connection.connect();
16
17
18
19
20
21var query;
22
23
24
25var getSqliteTables = function(db, callback) {
26 query = "select * from sqlite_master where type = 'table'";
27 db.all(query, function(err, rows) {
28 if (err) callback(err);
29 callback(rows); // rows[x].name
30 });
31};
32
33
34var getTableInfo = function(db, table, callback) {
35 query = "PRAGMA table_info(" + table + ")";
36 db.all(query, function(err, rows) {
37 if (err) callback(err);
38 callback(rows);
39 });
40};
41
42
43var rowdef = "";
44var tabledef = "";
45var i = 0;
46
47var createTables = function(callback) {
48 getSqliteTables(db, function(tables) {
49 tables.forEach(function(table) {
50 getTableInfo(db, table.name, function(cols) {
51 i = 0;
52 tabledef = "CREATE TABLE IF NOT EXISTS " + table.name + " (";
53
54 cols.forEach(function(col) {
55 i++;
56 rowdef = col.name;
57 rowdef = rowdef + ' ' + col.type;
58 if (col.notnull != 0) {
59 rowdef = rowdef + ' NOT NULL';
60 }
61 rowdef = rowdef + ' DEFAULT ' + col.dflt_value;
62 if (col.pk != 0) {
63 rowdef = rowdef + ' PRIMARY KEY';
64 }
65 if (i !== cols.length) {
66 rowdef = rowdef + ',';
67 }
68 tabledef = tabledef + rowdef;
69 });
70 tabledef = tabledef + ')';
71 connection.query(tabledef, function(err, rows, fields) {
72 if (err) console.log(err);
73 //console.log(rows);
74 });
75
76 });
77 });
78
79 callback(null, true);
80
81 });
82};
83
84
85var y = 0;
86
87var travasoDati = function(callback) {
88 getSqliteTables(db, function(tables) {
89 i = 0;
90 var fine = false;
91 tables.forEach(function(table) {
92
93 query = 'select * from ' + table.name;
94
95 db.run(query, function(err, rows) {
96 console.log(err);
97 console.log(rows);
98 });
99
100 /*
101 i++;
102 query = 'select * from ' + table.name + '';
103 db.each(query, function(err, row) {
104
105 rows.forEach(function(row) {
106 console.log(row);
107
108 fine = false;
109
110 query = connection.query('INSERT INTO ' + table.name + ' SET ?', row, function(err, result) {
111 if (err) {
112 console.log(err);
113 } else {
114 y++;
115 console.log(y + ' ' + table.name);
116 }
117 fine = true;
118 });
119
120 });
121
122
123 while(fine === false) {
124 deasync.runLoopOnce();
125 }
126 */
127
128
129 /****
130 (function(i) {
131 var y = 0;
132 async.waterfall( [
133
134 function(callback) {
135 query = 'select * from ' + table.name + ' limit 1000';
136 db.all(query, function(err, rows) {
137 if (err) console.log(err);
138 callback(null, rows);
139 });
140 },
141
142 function(callback) {
143 query = 'select * from ' + table.name + '';
144 db.all(query, function(err, rows) {
145 rows.forEach(function(row) {
146 console.log(row);
147
148 query = connection.query('INSERT INTO ' + table.name + ' SET ?', row, function(err, result) {
149 if (err) {
150 console.log(err);
151 } else {
152 y++;
153 console.log(y + ' ' + table.name);
154 }
155 });
156
157 });
158 });
159
160 callback(null, " OK " + table.name);
161 },
162 function(data, callback) {
163 // console.log(table.name);
164 callback(null, data);
165 }
166 ], function(err, result) {
167 if (err) console.log(err);
168 console.log('result = ' + result);
169 }
170 );
171 })(i);
172 *****/
173
174
175 });
176 });
177 callback(null, "FINITO");
178};
179
180
181travasoDati(function(err, res) {
182 console.log(res);
183});
184
185
186//async.series([createTables(callback));
187
188
189
190/*
191setInterval(function() {
192 query = "Select * from details limit 1, 100";
193 db.each(query, function(err, row) {
194 if (err) console.log( "errore: " + err );
195 console.log(row.id);
196
197 for ( var col in row) {
198 console.log(col + ' ' + row[col]);
199 }
200
201 });
202
203}, 3000);
204
205*/
206
207
208
209
210
211/*
212connection.query('SELECT * from audiobooks limit 2', function(err, rows, fields) {
213 if (err) throw err;
214
215 //console.log(rows[0]["title"]);
216
217 rows.forEach(function(row) {
218 // console.log(row["title"]);
219 });
220
221 // console.log(JSON.parse( JSON.stringify(rows) ));
222 // console.log(fields);
223});
224*/
225
226
227/*
228var post = {name: "Ciaooooo"};
229var query = connection.query('INSERT INTO access SET ?', post, function(err, result) {
230 console.log(result);
231 console.log(result.affectedRows);
232 console.log(result.insertId);
233});
234console.log(query.sql);
235*/
236
237
238
239
240
241
242
243
244
245
246// process.stdin.resume();//so the program will not close instantly
247
248function exitHandler(options, err) {
249 if (options.cleanup) {
250 console.log('cleaning: db.close() connection.end()');
251 db.close();
252 connection.end();
253 }
254 if (err) console.log(err.stack);
255 if (options.exit) process.exit();
256}
257
258//do something when app is closing
259process.on('exit', exitHandler.bind(null,{cleanup:true}));
260
261//catches ctrl+c event
262process.on('SIGINT', exitHandler.bind(null, {exit:true}));
263
264//catches uncaught exceptions
265process.on('uncaughtException', exitHandler.bind(null, {exit:true}));