我正在寻找一个小型数据库,它可以“嵌入”到我的 Python 应用程序中,而无需运行单独的服务器,就像使用SQLite或Metakit 一样。我不需要 SQL 数据库,事实上存储像 Python 字典或 JSON 这样的自由格式数据更可取。
另一个要求是能够在服务器上运行数据库实例,并让我的应用程序实例(客户端)将数据库与服务器同步(双向),类似于CouchDB 复制可以执行的操作。
有没有数据库可以做到这一点?
根据您的描述,听起来您可以通过使用pickle
和 FTP 获得。
如果您不需要 SQL 数据库,那么 CouchDB 有什么问题?您可以生成一个本地进程来为数据库提供服务,并且您可以轻松编写服务器包装器以仅允许从您的应用程序访问。我不确定访问的故事,但我相信最新的 Ubuntu 使用 CouchDB 来获取可同步的用户级数据。
对于 CouchDB 来说,这似乎是一项完美的工作:2 路同步非常简单,无模式 JSON 文档是本机格式。如果您使用的是 python,那么couchdb-python是使用 CouchDB 的好方法。
BerkeleyDB 可能是另一种选择,它足够轻量级。如果你需要 Python 接口,easy_install bsddb3。
HSQLDB这样做,但不幸的是它是 Java 而不是 Python。
Firebird SQL可能更接近您想要的,因为它似乎有一个 Python 接口。