Основанное на модели удаление данных CouchDB в Rails - PullRequest
2 голосов
/ 21 августа 2009

Я хочу настроить задачу rake, чтобы заполнить мой CouchDB данными о приборах и сначала нужно избавиться от данных в базе данных. Хороший пример для всей процедуры с использованием MySQL можно найти здесь . Эти примеры содержат следующую часть для удаления данных модели в базе данных MySQL:

# the list of models (pluralized) you want to import, in order
models = ['Cities','Neighborhoods','Shops','Reviews']

# truncate existing tables
models.reverse.each { |model| ActiveRecord::Base.connection.execute("truncate table #{model.underscore}") }

Что будет эквивалентно CouchDB? Должен ли я придерживаться совершенно другого подхода, поскольку эта концепция, созданная для реляционных баз данных, не может быть применена к базам данных, ориентированным на документы?

Большое спасибо заранее!

Ответы [ 2 ]

1 голос
/ 26 августа 2009

Нет таблиц и схем, поэтому усекать нечего. Вместо этого вы должны удалить документы. Но невозможно сделать такие вещи, как «удалить из», поэтому вам нужно извлечь документы, а затем удалить их, используя HTTP Bulk Document API .

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

Также вы можете получить первую группу документов, массовое удаление, а затем получить еще одну группу документов и т. Д. Повторите для каждой модели. Надеюсь, это поможет.

0 голосов
/ 25 августа 2009

Я думаю, что самый простой способ избавиться от всех документов в вашей базе данных - просто удалить базу данных, а затем заново создать ее. Это решает вашу проблему? Возможно, вы захотите иметь автономную копию документации по дизайну, чтобы вы могли вернуть ее после повторного создания.

Мне неизвестен способ массового удаления документов из базы данных CouchDB.

Ах - так вы хотите удалить только документы, принадлежащие одной конкретной модели? В этом случае, я думаю, вам придется перебирать представление (либо конкретное представление, перебирающее документы, принадлежащие этой модели, либо _all_docs) и удалять один документ за раз.

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