You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用SQLite和SQLAlchemy定义TEXT/BLOB类型而非VARCHAR的表

修改SQLAlchemy模型列类型为TEXT/BLOB

要把Mailings表中的列从默认VARCHAR改成TEXT或BLOB类型,只需在mapped_column中指定对应的SQLAlchemy类型即可,步骤如下:

  1. 导入所需类型
    先从SQLAlchemy库导入Text(对应TEXT类型)和LargeBinary(对应BLOB类型):

    from sqlalchemy import Text, LargeBinary
    
  2. 修改列定义
    针对需要变更类型的列,在mapped_column里传入指定类型。比如把textversion和htmlversion设为TEXT类型,若有二进制数据列(比如附件)则用LargeBinary:

    class Mailings(db.Model):
        __tablename__ = 'mailings'
        id: Mapped[str] = mapped_column(primary_key=True)
        title: Mapped[str]  # 保持默认VARCHAR
        textversion: Mapped[str] = mapped_column(Text)  # 改为TEXT类型
        htmlversion: Mapped[str] = mapped_column(Text)  # 改为TEXT类型
        permalink: Mapped[str]  # 保持默认VARCHAR
        # 若需BLOB类型,比如存储二进制附件:
        # attachment: Mapped[bytes] = mapped_column(LargeBinary)
    

说明

  • Text类型会适配不同数据库的TEXT实现(比如MySQL的TEXT、PostgreSQL的TEXT等),适合存储较长的文本内容;
  • LargeBinary对应数据库的BLOB类型,用于存储二进制数据(如文件、图片等),此时Mapped的类型要改为bytes以匹配;
  • 未指定类型的列(如title)仍会使用默认的VARCHAR类型。

内容的提问来源于stack exchange,提问作者MW_DEVEL

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 01:48:14