gpt4 book ai didi

python - SQLAlchemy 列类型比较

转载 作者:太空狗 更新时间:2023-10-30 01:28:06 25 4
gpt4 key购买 nike

我正在对不同的数据库类型进行大量的数据库自省(introspection),我希望能够比较两种列类型。例如,定义为 Boolean 的字段使用 declarative_base() 输入然后转换为特定的 TINYINT对于 MySQL 方言,所以检查如下:

model_a.__table__.columns['col'].type == model_b.__table__.columns['col'].type

行不通,这个也行:

(type_a == type_b) or issubclass(type_b, type_a)

如何比较数据类型“affinity”的两列? (通过检查代码,我看到列类型附加了一个 Comparator 类,但我不确定它是否有任何帮助以及如何使用它)是否也可以在 SQLAlchemy 配置中强制列类型(通过避免方言特定的转换)?

最佳答案

(回答一个老问题,因为我一直在研究这个)。

最快的解决方案是比较类型的 str():

断言 str(type_a) == (type_b)

这适用于简单类型,但如果您有任何 Variant 类型或包装器(例如,MutableDict 包装 Postgres JSON)那么你将不得不处理一个特殊情况。

关于python - SQLAlchemy 列类型比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34787794/

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