我正在对不同类型的数据库进行大量的内省,希望能够比较两个列类型。例如,使用 declarative_base()
定义为 Boolean
类型的字段,然后转换为特定的 TINYINT
用于 MySQL 方言,因此可以进行以下检查:
model_a.__table__.columns['col'].type == model_b.__table__.columns['col'].type
这个不起作用,这个也不行:
(type_a == type_b) or issubclass(type_b, type_a)
如何比较两列的数据类型是否为“亲和性”?(通过检查代码,我看到列类型附有一个名为
Comparator
的类,但我不确定它是否有帮助以及如何使用它)。是否可以在SQLAlchemy配置中强制指定列类型(避免方言特定的转换)?
str(column.type)
将返回NUMBER
,而repr(column.type)
将返回NUMBER(precision=9, scale=0, asdecimal=False)
。 - undefined