CouchDB更改数据库目录

我正在尝试更改沙发数据库的目录。 我正在使用python脚本将csv文件导入到CouchDB。 脚本运行正常。 这是为了以防万一:

from couchdbkit import Server, Database from couchdbkit.loaders import FileSystemDocsLoader from csv import DictReader import sys, subprocess, math, os def parseDoc(doc): for k,v in doc.items(): if (isinstance(v,str)): #print k, v, v.isdigit() # #see if this string is really an int or a float if v.isdigit()==True: #int doc[k] = int(v) else: #try a float try: if math.isnan(float(v))==False: doc[k] = float(v) except: pass return doc def upload(db, docs): db.bulk_save(docs) del docs return list() def uploadFile(fname, dbname): #connect to the db theServer = Server() db = theServer.get_or_create_db(dbname) #loop on file for upload reader = DictReader(open(fname, 'rU'), dialect = 'excel') docs = list() checkpoint = 100 i = 0 for doc in reader: newdoc = parseDoc(doc) docs.append(newdoc) if len(docs)%checkpoint==0: docs = upload(db,docs) i += 1 print 'Number : %d' %i #don't forget the last batch docs = upload(db,docs) if __name__=='__main__': x = '/media/volume1/Crimes_-_2001_to_present.csv' filename = x dbname = 'test' uploadFile(filename, dbname) 

我看到了很多关于如何更改追加数据库的目录。 如果将/etc/couchdb/local.ini保持原样(安装后为原始),则脚本会将数据附加到默认目录/var/lib/couchdb/1.0.1/。 当我修改local.ini将数据库存储到另一个磁盘时:

database_dir = / media / volume1 view_index_dir = / media / volume1

并重新启动后的CouchDB服务,我得到这个错误:

restkit.errors.RequestError:socket.error:[Errno 111]连接被拒绝

我已经检查了打开的套接字(couchdb使用5984作为默认),它不被打开。 但是当我启动CouchDB服务时,我没有遇到任何错误。 任何想法如何解决它?

我认为这个错误可能是由于你在Local.ini中改变了目录的位置,但是当你试图与现有的数据库建立新的连接时,在那里找不到它。

因此,将database_name.couch文件移动到您可以放在local.ini中的新位置,然后尝试建立连接。 我认为这应该工作。