我用 sqlite 运行 Etherpad Lite 已有两年了。现在我将数据库迁移到 MySQL 或 Redis。我bin/migrateDirtyDBtoMySQL.js
以此为灵感编写了自己的小迁移脚本。这里是:
require("ep_etherpad-lite/node_modules/npm").load({}, function(er,npm) {
process.chdir(npm.root+'/..');
var settings = require("ep_etherpad-lite/node/utils/Settings");
var sqlite3 = require('sqlite3');
var sqliteDb = new sqlite3.Database('var/sqlite.db');
var db = require("ep_etherpad-lite/node/db/DB");
db.init(function() {
db = db.db;
sqliteDb.each("SELECT * FROM store", function(err, row) {
db.set(row.key,row.value);
});
});
});
安装 sqlite3 依赖项后它可以工作,但我的 sqlite.db 文件超过 700 MB,并且调用:
node migrateSqliteDBtoEtherpad.js
以终止信号终止。我如何使用 nodejs 和 etherpad-lite 处理如此庞大的数据库?