Ответ 1
Невозможно удалить данные, кроме удаления каждого документа (или обновления пула известного документа doc-id с помощью _rev=xxx and "_deleted:true"
в _bulk
)
Удаление и повторное создание в порядке.
Есть ли способ удалить все данные из базы данных CouchDB?
То, что я делаю сейчас, это удаление и повторная создание всей базы данных
curl -X DELETE http://localhost:5984/foobar
curl -X PUT http://localhost:5984/foobar
но я не уверен, что это лучший способ сделать это.
Невозможно удалить данные, кроме удаления каждого документа (или обновления пула известного документа doc-id с помощью _rev=xxx and "_deleted:true"
в _bulk
)
Удаление и повторное создание в порядке.
Я нашел этот букмарклет, который добавляет вам функции в представление Futon. Он добавляет, что вы выбираете все, удаляете все кнопки и удаляете флажки delete. Это может быть хорошим началом, но вы можете немного изменить его, поскольку он не работает все время.
http://www.elijahmanor.com/couch-potato-bookmarklet-lazy-features-for-couchdbs-futon/
В приведенном ниже коде удаляются все базы данных (не все записи!) с помощью Node.js. Вам нужно установить nano и после этого выполнить следующий код:
var nano = require('nano')('http://localhost:5984');
nano.db.list(function(err, body) {
body.forEach(function(db) {
nano.db.destroy(db);
});
});
Вот питон script, чтобы выполнить задание:
import couchdb
couch = couchdb.Server('http://localhost:5984/')
couchdb = 'DATABASE'
db = couch[couchdb]
for id in db:
db.delete(db[id])
Я сделал инструмент командной строки для выполнения некоторых операций на моем сервере CouchDB, кроме тех, которые были предоставлены Futon. Он поддерживает удаление, резервное копирование и восстановление документов.
Здесь вы можете найти .
Вы можете использовать этот плагин db db. Что он делает, это стереть все документы в вашей сумке db. Он может использоваться как на серверных, так и на клиентских приложениях javascript. Вот ссылка: Пакет Db Стереть плагин
Благодаря ответу amagard я написал небольшой скрипт на Python для удаления всех документов и последующего сжатия базы данных:
import couchdb
user = "user"
passwd = "pass"
dbName = "databaseName"
couch = couchdb.Server("http://%s:%[email protected]:5984/" % (user, passwd))
db = couch[dbName]
print("start delete and compact routine")
count = 0
while True:
print("requesting next 100 documents...")
items = db.view("_all_docs", limit=100)
if len(items) == 0:
print("no documents available")
break;
for item in items:
count += 1
documentID = item.id.encode("utf-8")
print ("deleting document: %s (count: %d)" % (documentID, count))
db.delete(db[documentID])
print("deleted %d documents, requesting compact" % (count))
db.compact();
print("finished");
Сжатые мои большие 10 ГБ журналирования базы данных до 40 МБ, но занял всю ночь подряд.