2

CouchDBにフィクスチャデータを入力するためのrakeタスクを設定し、最初にデータベース内のデータを削除する必要があります。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に相当するものは何ですか?リレーショナルデータベース用に設定されたこの概念はドキュメント指向のデータベースには適用できないため、まったく異なるアプローチを取る必要がありますか?

よろしくお願いします!

4

2 に答える 2

1

テーブルとスキーマがないため、切り捨てるものはありません。代わりにドキュメントを削除する必要があります。ただし、「削除元」などを実行することはできないため、ドキュメントを取得してから、HTTP BulkDocumentAPIを使用して削除する必要があります。

開発環境にはそれが必要だと思うので、ドキュメントがたくさんあるべきではなく、このソリューションは受け入れられます。

また、最初のドキュメントの束を取得し、一括削除してから、別のドキュメントの束などを取得することもできます。モデルごとに繰り返します。それがお役に立てば幸いです。

于 2009-08-26T12:22:11.657 に答える
0

データベース内のすべてのドキュメントを削除する最も簡単な方法は、データベースを削除してから再作成することだと思います。それはあなたの問題を解決しますか?再作成後に元に戻すことができるように、設計ドキュメントのオフラインコピーが必要になる場合があります。

CouchDBデータベースからドキュメントを一括削除する方法を知りません。

ああ-特定のモデルに属するドキュメントのみを削除したいですか?その場合、ビュー(そのモデルに属するドキュメントを反復処理する特定のビューまたは_all_docs)を反復処理し、一度に1つのドキュメントを削除する必要があると思います。

于 2009-08-25T08:29:23.633 に答える