Python eXist(XMLDB)のデータのバックアップを行う
eXistに登録しているデータをファイルに退避するソースです。
オフィシャルのマニュアルには見当たりませんが、
getDocumentListing(String collection)
このメソッドで該当のコレクションに登録されている
ドキュメントの一覧が取得できます。
ドキュメントの一覧を取得後、個別にデータを取得し、
ファイルに出力することで、バックアップ機能を
実現しています。
import xmlrpclib
#バックアップを行うコレクション
base_uri = '/db/sample/'
#バックアップファイルの保存先
backup_dir = 'data/'
#eXistサーバ
xmlrpc_url = 'http://www.example.com:8080/exist/xmlrpc'
def save_file(srv, doc_name):
"""
ドキュメントの取得とファイル出力
"""
result = srv.getDocumentAsString(base_uri + doc_name, {})
f = open(backup_dir + doc_name, 'w')
f.write(result)
f.close()
if __name__ == '__main__':
srv = xmlrpclib.ServerProxy(xmlrpc_url)
#バックアップ対象のコレクションに登録されている
#ドキュメントの一覧を取得する
doc_list = srv.getDocumentListing(base_uri)
for doc_name in doc_list:
save_file(srv, doc_name)
もどる