跳转到主要内容

带意见的SQLite持久化

项目描述

microcosm-sqlite

使用SQLite进行带意见的数据加载。

虽然大多数分布式应用程序运行时都会使用网络数据存储来处理可变状态,但对于仅在运行时只读的数据,SQLite的使用模式非常合适。

特别是,microcosm-sqlite假设应用程序将

  • 提前构建数据集,并以静态工件的形式(例如在源控制中)发布
  • 在运行时加载不可变数据集,而不将整个数据集加载到内存中

编写模型

持久化数据预计将使用SQLAlchemy的声明性基类。由于不同的数据集可能被不同的SQLite数据库携带,因此每个声明性基类都需要有一个唯一的名称和独立的引擎配置,这通过将DataSet作为声明性基类的基类来实现

Base = DataSet.create("some_name")


class SomeModel(Base):
    __tablename__ = "sometable"

    id = Column(Integer, primary_key=True)

使用存储

基本持久化操作通过存储进行抽象

class SomeStore(Store):

    @property
    def model_class(self):
        return SomeModel


 store = SomeStore()
 results = store.search()

配置SQLite

每个DataSet默认使用:memory:存储,但可以以两种方式自定义

  1. 可以配置SQLiteBindFactory以使用自定义路径

    loader = load_from_dict(
        sqlite=dict(
            paths={
                "some_name": "/path/to/database",
            },
        ),
    )
    graph = create_object_graph("example", loader=loader)
    
  2. microcosm.sqlite入口点可以包含从数据集名称到返回路径的函数的映射。

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源代码发行版

本版本没有可用的源代码发行版文件。请参阅生成发行版存档的教程

构建发行版

microcosm_sqlite-2.0.0-py3-none-any.whl (22.2 kB 查看哈希值)

上传时间 Python 3

支持