1. 1#!/usr/bin/env node
2. 1
3. 1function createdb(callback) {
4. 0 var existsSync = require('fs').existsSync || require('path').existsSync;
5. 1 var path = require('path');
6. 1
7. 1 var sqlite3 = require('../../lib/sqlite3');
8. 1
9. 1 var count = 1000000;
10. 1 var db_path = path.join(__dirname,'big.db');
11. 1
12.1000000 function randomString() {
13.1000000 var str = '';
14.1000000 var chars = 'abcdefghijklmnopqrstuvwxzyABCDEFGHIJKLMNOPQRSTUVWXZY0123456789 ';
15.50519288 for (var i = Math.random() * 100; i > 0; i--) {
16.50519288 str += chars[Math.floor(Math.random() * chars.length)];
17.50519288 }
18.1000000 return str;
19.1000000 };
20. 1
21. 1
22. 0 if (existsSync(db_path)) {
23. 0 console.log('okay: database already created (' + db_path + ')');
24. 0 if (callback) callback();
25. 0 } else {
26. 1 console.log("Creating test database... This may take several minutes.");
27. 1 var db = new sqlite3.Database(db_path);
28. 1 db.serialize(function() {
29. 1 db.run("CREATE TABLE foo (id INT, txt TEXT)");
30. 1 db.run("BEGIN TRANSACTION");
31. 1 var stmt = db.prepare("INSERT INTO foo VALUES(?, ?)");
32.1000000 for (var i = 0; i < count; i++) {
33.1000000 stmt.run(i, randomString());
34.1000000 }
35. 1 stmt.finalize();
36. 1 db.run("COMMIT TRANSACTION", [], function () {
37. 1 db.close(callback);
38. 1 });
39. 1 });
40. 1 }
41. 1};
42. 1
43. 1if (require.main === module) {
44. 1 createdb();
45. 1}
46. 1
47. 1module.exports = createdb;
48. 1