Удалить документ с пустым идентификатором - PullRequest
4 голосов
/ 16 апреля 2010

У меня есть база данных CouchDB в производстве. Один из документов был отредактирован (в Futon другим разработчиком).
И он потерял свой ID (не спрашивайте меня, как он это сделал).

Так что теперь идентификатор документа является пустой строкой, что делает невозможным редактирование или удаление через Futon.
Можно ли как-нибудь взломать CouchDB, чтобы удалить этот документ?

Ответы [ 4 ]

1 голос
/ 19 апреля 2010

Технически, идентификатор документа является неизменным, поэтому на самом деле изменение поле _id напрямую невозможно. Возможно, другой документ был создан как копия первого?

Ошибка в CouchDB 1.1.0 позволяла функциям обновления создавать пустые идентификаторы строк.

A аналогичный вопрос спрашивает об этом, и я дал пошаговое руководство по удалению пустых идентификаторов там.

1 голос
/ 20 апреля 2010

Не удалось удалить документ. Но сама база данных может быть удалена.
И я не мог воспроизвести ошибку в локали. Другой разработчик говорит, что он просто удалил параметр _id и сохранил. Я не знаю, что случилось в CouchDB, когда он это сделал. Но когда я это делаю, он только воссоздает новый документ (как мы и ожидали).

Итак, я использовал couch_docs для локального получения данных.
Поскольку идентификатор пуст, couch_docs не импортирует его. Так что вам даже не нужно удалять его вручную.

Затем я снова импортирую все записи в другую базу данных. Я изменяю ссылки на имя базы данных в моей конфигурации, и все работает нормально.
Уничтожение базы данных не является проблемой, хотя там есть пустой идентификатор.

0 голосов
/ 15 февраля 2012

Это может быть вызвано (и исправлено!) Из-за некоторой проверки ошибок CouchDB отсутствует для обработчиков _update, как описано в Как удалить документ couchdb с пустым "" идентификатором документа?

0 голосов
/ 19 апреля 2010

Я не пробовал, но LoveSeat должен иметь возможность открывать и редактировать файлы couchedb ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...