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

如何在FastAPI中使用SQLModel创建PostgreSQL的text类型字段

FastAPI + SQLModel 配置PostgreSQL TEXT类型字段方案

默认情况下,SQLModel会将Python的str类型字段映射为PostgreSQL的VARCHAR类型,如果需要存储无长度限制的长文本,需要手动指定为TEXT类型。

实现方法

你摸索出来的方案是完全可用的,核心是通过Field的sa_column参数透传SQLAlchemy原生的字段定义:

from sqlmodel import SQLModel, Field
# 引入SQLAlchemy原生的Column和TEXT类型
from sqlalchemy import Column, TEXT


class BaseModel(SQLModel):
    # 其他原有字段保持不变
    col_1: str = Field(default='Y')
    col_2: str = Field(default='N')
    col_3: str = Field(default='0')
    col_4: str = Field(default='0')
    # 定义TEXT类型字段
    col_5: str = Field(sa_column=Column(TEXT))

补充说明

如果需要给TEXT类型字段设置默认值,直接在Column参数中添加default配置即可:

col_5: str = Field(sa_column=Column(TEXT, default="默认文本内容"))

这种写法也适用于其他PostgreSQL独有的字段类型(比如JSONB、ARRAY等),只要替换TEXT为对应的SQLAlchemy原生类型即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 11:15:00