【问题标题】:How to find SQLAlchemy generic datatype from vendor-specific datatype如何从特定于供应商的数据类型中查找 SQLAlchemy 通用数据类型
【发布时间】:2021-01-20 15:35:55
【问题描述】:

给定特定于供应商的 SQLAlchemy 数据类型,例如 sqlalchemy.dialects.postgresql.INTEGER,找到与该供应商特定类型最对应的通用 SQLAlchemy 数据类型的最佳方法是什么?

例如,如果我有特定于供应商的类型sqlalchemy.dialects.postgresql.INTEGER,我想映射回sqlalchemy.sql.sqltypes.Integer

我知道在某些情况下这是不可能的,例如,如果数据库支持一种深奥的类型,而该类型没有直接映射回 SA 通用数据类型。我主要只对可以直接映射回 SA 通用数据类型的数据类型感兴趣。

【问题讨论】:

    标签: python types sqlalchemy orm metadata


    【解决方案1】:

    此功能已添加到 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'>
    
    

    【讨论】:

    • 您能否在答案中添加一个小的用法示例?
    • @MaxU --- 完成。
    • 谢谢,这很有帮助! :) 我找不到此方法的在线文档。
    猜你喜欢
    • 2021-04-02
    • 1970-01-01
    • 2023-03-13
    • 2022-11-05
    • 1970-01-01
    • 1970-01-01
    • 2019-11-11
    • 2015-08-07
    • 1970-01-01
    相关资源
    最近更新 更多