我正在寻找一个可以“嵌入”我的Python应用程序的小型数据库,而无需运行单独的服务器,就像使用SQLite或Metakit一样。我不需要SQL数据库,实际上存储像Python字典或JSON这样的自由格式数据是可取的。
另一个要求是能够在服务器上运行数据库实例,并让我的应用程序实例(客户端)将数据库与服务器同步(双向),类似于{{3}复制可以做到。
是否有数据库可以执行此操作?
答案 0 :(得分:2)
根据您的描述,听起来您可以使用pickle
和FTP。
答案 1 :(得分:1)
如果您不需要SQL数据库,那么CouchDB有什么问题?您可以生成本地进程来为数据库提供服务,并且您可以轻松编写服务器包装器以仅允许从您的应用程序进行访问。我不确定访问故事,但我相信最新的Ubuntu使用CouchDB来实现可同步的用户级数据。
答案 2 :(得分:1)
看起来像CouchDB的完美工作:2路同步非常简单,无架构JSON文档是本机格式。如果您正在使用python,couchdb-python是使用CouchDB的好方法。
答案 3 :(得分:1)
您是否需要客户端脱机工作,然后在重新连接到网络时重新同步?我不知道MongoDB是否可以处理脱机客户端场景,但如果客户端一直处于联机状态,MongoDB也可能是一个很好的解决方案。它有漂亮的goode python support。仍然是一个单独的过程,但可能比在CouchDB上更容易在Windows上运行。
答案 4 :(得分:1)
BerkeleyDB可能是另一种选择,它足够轻巧。如果你需要Python接口,请easy_install bsddb3。
答案 5 :(得分:0)
HSQLDB这样做,但不幸的是它是Java而不是Python。
Firebird SQL可能更接近你想要的东西,因为它似乎有一个Python界面。