如何从特定于供应商的数据类型中查找 SQLAlchemy 通用数据类型
How to find SQLAlchemy generic datatype from vendor-specific datatype
给定一个特定于供应商的 SQLAlchemy 数据类型,例如 sqlalchemy.dialects.postgresql.INTEGER
,找到最适合该供应商特定类型的通用 SQLAlchemy 数据类型的最佳方法是什么?
例如,如果我有特定于供应商的类型 sqlalchemy.dialects.postgresql.INTEGER
,我想映射回 sqlalchemy.sql.sqltypes.Integer
。
我知道在某些情况下这可能是不可能的,例如,如果数据库支持没有直接映射回 SA 通用数据类型的深奥类型。我主要只对直接映射回 SA 通用数据类型的数据类型感兴趣。
此功能已添加到 SQLAlchemy 1.4
https://github.com/sqlalchemy/sqlalchemy/pull/5714
示例:
from sqlalchemy.dialects.mssql import DATETIME2
mssql_type = DATETIME2()
print(type(mssql_type)) # <class 'sqlalchemy.dialects.mssql.base.DATETIME2'>
generic_type = mssql_type.as_generic()
print(type(generic_type)) # <class 'sqlalchemy.sql.sqltypes.DateTime'>
给定一个特定于供应商的 SQLAlchemy 数据类型,例如 sqlalchemy.dialects.postgresql.INTEGER
,找到最适合该供应商特定类型的通用 SQLAlchemy 数据类型的最佳方法是什么?
例如,如果我有特定于供应商的类型 sqlalchemy.dialects.postgresql.INTEGER
,我想映射回 sqlalchemy.sql.sqltypes.Integer
。
我知道在某些情况下这可能是不可能的,例如,如果数据库支持没有直接映射回 SA 通用数据类型的深奥类型。我主要只对直接映射回 SA 通用数据类型的数据类型感兴趣。
此功能已添加到 SQLAlchemy 1.4
https://github.com/sqlalchemy/sqlalchemy/pull/5714
示例:
from sqlalchemy.dialects.mssql import DATETIME2
mssql_type = DATETIME2()
print(type(mssql_type)) # <class 'sqlalchemy.dialects.mssql.base.DATETIME2'>
generic_type = mssql_type.as_generic()
print(type(generic_type)) # <class 'sqlalchemy.sql.sqltypes.DateTime'>