gpt4 book ai didi

python - 在 Pyramid 中使用 SQlAlchemy 声明性基础和 autoload=true

转载 作者:行者123 更新时间:2023-11-28 17:52:11 25 4
gpt4 key购买 nike

我是 Pyramid 的新手,我不知道如何在 Pyramid 中使用 autoload=true 选项。我使用 pyramid_routesalchemy 使用粘贴创建我的项目。

问题是有一个 init.py 文件使用了 initialize_sql(这个函数定义了 Base.metadata.bind = engine)。在我的一个模型类中,我想使用 autoload=true 选项(使用声明性基础),但我总是收到以下错误:

sqlalchemy.exc.UnboundExecutionError: No engine is bound to this Table's MetaData. Pass an engine to the Table via autoload_with=<someengine>, or associate the MetaData with an engine via metadata.bind=<someengine>

实际上 Base.metadata.bind = engine 是在 initialize_sql 函数中定义的,我真的不知道文件加载的顺序,但我几乎可以肯定 init.py 在模型之前加载,因此元数据已经绑定(bind)到引擎...

因此,我的问题是:如何在不更改整个 init 和模型结构的情况下在我的类中使用自动加载?

如果有人有提示...提前致谢

最佳答案

是的,这里的基本思想是如果没有有效的引擎就无法声明自动加载的表,因此您需要将初始化代码与模型代码分开,并确保在设置引擎之前不会导入模型,并且将其连接到元数据。

下面的链接描述得更好,但看起来您已经采取了正确的方法。

SQLAlchemy declarative syntax with autoload (reflection) in Pylons

关于python - 在 Pyramid 中使用 SQlAlchemy 声明性基础和 autoload=true,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7802981/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com