gpt4 book ai didi

linux - CouchDB 更改数据库目录

转载 作者:太空狗 更新时间:2023-10-29 11:22:01 25 4
gpt4 key购买 nike

我正在尝试更改 couch 数据库的目录。我正在使用 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] Connection refused

我检查了打开的套接字(couchdb 默认使用 5984),但没有打开。但是当我启动 CouchDB 服务时我没有得到任何错误。有什么解决办法吗?

最佳答案

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

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

关于linux - CouchDB 更改数据库目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28351512/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com