Arm1.ru

node-couchdb-mover

На днях написал свою первую тулзу node.js. Писал лишь отчасти для себя, т.к. для меня она пока не очень актуальна, а вот кое для кого даже очень.

Тулза для CouchDB. Т.к. CouchDB хранит после изменений/удалений документов ревизии и не всегда их очищает, бывает, что база адски растёт в размере. Например, у ребят, для которых эта тулза актуальна сейчас, то, что должно весить 6 гигов, весит 50-60. Может быть они где-то запустили что-то или накосячили, понаменяв и понаписав кучу всего в базу, чем люто увеличили её размер. В общем, проще просто создать новую чистую базу и перенести туда все живые документы.

Тулза просто берёт все документы из 1 базы в CouchDB, и кладёт их в другую. Работает пока довольно топорно, берёт все документы скопом и потом по 1 кладёт в базу. Для баз с относительно небольшим количеством документов работает нормально, а вот если их там тысяч этак 80, то у меня на компе получение документов длилось около 4-5 минут. Поэтому переделаю её вскоре, чтобы брала документы пачками и фигачила внесение в базу не асинхронно, а по очереди.

Но пока пользоваться можно. Тулзу можно встроить, например, в свой node.js проект.

В консоли:
npm install node-couchdb-mover

В коде:
var mover = require('node-couchdb-mover');
mover.moveDocuments( 'dbName1', 'dbName2');

Кроме того, её можно использовать прямо из консоли:
npm install -g node-couchdb-mover
couchdb-mover --from=dbName1 --to=dbName2

 

Ну, и как это положено, исходники на гитхабе | пакет на npmjs.org.

keyboard_return back