使用sqlite的自以为是的持久性

microcosm-sqlite的Python项目详细描述


微观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. 入口点可以包含从数据集名称到 返回路径的函数。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java OnResizeListener或OnDrawListener或类似的东西   java Orika映射嵌套子列表   保存时java Heroku请求超时代码H12   数据库在Java中出现socket读取超时异常的原因是什么?   java如何更改来自Sqlite数据库的特定数据在Listview中的行颜色   java JAXB解组器无法正确处理XML中的列表   java Android日期时区让我抓狂   java不透明属性在Swing中如何工作?   eclipse从JavaEE代码生成流程图   java如何在Hibernate中从相关表中获取计数   java Glassfish部署了项目的依赖项库   java使内容适合JavaFx中的WebView   java不满意的链接错误libcrypto。所以1.0.0   循环中java数组的使用   java找出哪个包调用服务