sqlalchemy自动加载的orm持久性

问题描述 投票:6回答:2

我们正在使用sqlalchemy的自动加载功能进行列映射,以防止在我们的代码中进行硬编码。

class users(Base):
    __tablename__ = 'users'
    __table_args__ = {
        'autoload': True,
        'mysql_engine': 'InnoDB',
        'mysql_charset': 'utf8'
    }

是否有一种方法可以序列化或缓存自动加载的元数据/规范,因此我们不必每次需要从其他脚本/函数引用我们的orm类时都经过自动加载过程?

我看过烧杯缓存和泡菜,但没有找到明确的答案,如果有可能或如何做。

理想情况下,仅当我们对数据库结构进行了更改但从所有其他脚本/函数引用了数据库映射的非自动加载/永久/缓存版本后,才运行autload映射脚本。

有什么想法吗?

我们正在使用sqlalchemy的自动加载功能进行列映射,以防止在我们的代码中进行硬编码。 class users(Base):__tablename__ ='users'__table_args__ = {'autoload':True,...

python caching orm sqlalchemy autoload
2个回答
6
投票

[我现在要做的是在通过数据库连接(MySQL)运行反射后,对元数据进行腌制,一旦有腌菜可用,就使用该腌制的元数据在绑定有SQLite引擎的元数据上反映架构。


0
投票

我的解决方案与@ user1572502的解决方案并没有很大不同,但可能很有用。我将缓存的元数据文件放置在~/.sqlalchemy_cache中,但它们可以在任何地方。

© www.soinside.com 2019 - 2024. All rights reserved.