CouchDB データベースの名前を変更するための API や、同じことを行う Futon のオプションが表示されません。
別のデータベースに複製してから元のデータベースを削除する以外に、データベースの名前を変更するワンステップの方法はありますか?
CouchDB データベースの名前を変更するための API や、同じことを行う Futon のオプションが表示されません。
別のデータベースに複製してから元のデータベースを削除する以外に、データベースの名前を変更するワンステップの方法はありますか?
Dominic と PPPaul が言ったことに追加します...
ファイルの名前を変更することは絶対に正しい方法です (所有権を誤って変更しないように、同じユーザーとして名前を変更するようにしてくださいroot
)。
はい、これは完全に実行されている実稼働環境で行うのに完全に安全です。HTTP/REST API の多くの利点の 1 つは、DB へのステートフル接続を持つアダプターがないことです。各リクエストは新しいリクエストです。したがって、基本的に、名前変更が完了した後の CouchDB への最初のリクエストでは、新しい名前を使用できます。
しかし、待ってください。
本当に素晴らしいことの 1 つは、名前を変更した後でも、CouchDB サーバーにはファイル自体への開いたファイル ハンドルが残っていることです (inode の名前を変更しても影響を受けません)。そのため、CouchDB サーバーが実際に再起動されるまで、古い名前でもDBにアクセスできます。
コメントのATfPTによる素晴らしい観察です。DB 名は小文字で始める必要があるようです。そうしないと、Futon に表示されません。
私が覚えていたもう 1 つのこと: DB ファイルがどこにあるかを調べるには、これを実行します。couch-config --db-dir
データベース ファイル自体 (/var/lib/couchdb
インストールによっては にあります) にアクセスできる場合は、単純に名前を変更できます。
私の知る限り、それはデータベースを効果的に「名前変更」します。念のため、この操作を実行するときはサーバーが実行されていないことを確認します。
データベースを破損させたくない場合は、CouchDB が実行されていないときに .couch ファイルの名前を変更します。