Cscott has uploaded a new change for review.
https://gerrit.wikimedia.org/r/96355
Change subject: Add read-only functionality to Db module; bug fix for Db.get().
......................................................................
Add read-only functionality to Db module; bug fix for Db.get().
Change-Id: I1737fd5bcef392007dd4edfe22bf8b886e508cc1
---
M lib/db.js
1 file changed, 14 insertions(+), 6 deletions(-)
git pull
ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Collection/OfflineContentGenerator/bundler
refs/changes/55/96355/1
diff --git a/lib/db.js b/lib/db.js
index a6d7a5f..2cc2331 100644
--- a/lib/db.js
+++ b/lib/db.js
@@ -4,15 +4,22 @@
var when = require('when');
var nodefn = require("when/node/function");
-var Db = module.exports = function(filename) {
+var Db = module.exports = function(filename, options) {
+ options = options || {};
// use promises!
var deferred = when.defer();
- var db = new sqlite3.Database(filename,
nodefn.createCallback(deferred));
+ var mode = options.readonly ? sqlite3.OPEN_READONLY :
+ ( sqlite3.OPEN_CREATE | sqlite3.OPEN_READWRITE );
+ var db = new sqlite3.Database(
+ filename, mode, nodefn.createCallback(deferred)
+ );
// this.db is a promise for the database, once tables have been created
this.db = deferred.promise.then(function() {
- return nodefn.call(db.run.bind(db),
- "CREATE TABLE IF NOT EXISTS
"+
- "kv_table (key TEXT PRIMARY
KEY, val TEXT);");
+ if (!options.readonly) {
+ return nodefn.call(db.run.bind(db),
+ "CREATE TABLE IF NOT
EXISTS "+
+ "kv_table (key TEXT
PRIMARY KEY, val TEXT);");
+ }
}).then(function() { return db; });
};
@@ -22,7 +29,8 @@
return nodefn.call(db.get.bind(db),
"SELECT val FROM kv_table
WHERE key = ?;",
'' + key);
- }).then(function(val) {
+ }).then(function(row) {
+ var val = row.val;
return nojson ? val : JSON.parse(val);
});
};
--
To view, visit https://gerrit.wikimedia.org/r/96355
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I1737fd5bcef392007dd4edfe22bf8b886e508cc1
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Collection/OfflineContentGenerator/bundler
Gerrit-Branch: master
Gerrit-Owner: Cscott <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits