langgrah使用pgsql做会话存储会自己创建表吗

是的,LangGraph 使用 PostgreSQL 做会话存储时,会自己自动创建所需的表。

你不需要手动编写 SQL 建表语句,LangGraph 提供了内置的方法来完成这一步。具体机制如下:

⚙️ 自动建表的核心方法: setup()

在使用 PostgreSQL 作为存储后端时(无论是用于短期记忆的 PostgresSaver 还是用于长期记忆的 PostgresStore ),你只需要在代码中调用一次 .setup() 方法,它就会自动在你的数据库中创建好所有必要的表结构 。

通常在首次连接并初始化 Checkpointer 时调用:from langgraph.checkpoint.postgres import PostgresSaver

DB_URI = "postgresql://user:password@host:port/dbname"

with PostgresSaver.from_conn_string(DB_URI) as checkpointer:

首次运行时,调用 setup() 自动创建数据库表

checkpointer.setup()

注意: setup() 是一个一次性的操作,表创建成功后,后续运行可以注释掉或移除这行代码 。

📋 会自动创建哪些表?

当你调用 setup() 后,LangGraph 默认会在 PostgreSQL 的 public schema 下创建以下 4 张核心表,用于管理对话状态和检查点: 表名 作用说明

checkpoints 核心表,存储对话的检查点状态(包含 thread_id、状态快照等)

checkpoint_blobs 存储状态通道中的具体二进制数据(blob)

checkpoint_writes 记录检查点之间的中间写入操作,保证状态一致性

checkpoint_migrations 记录数据库结构的版本迁移历史此外,如果你还使用了 PostgresStore (用于长期记忆或向量存储),它还会额外创建如 store 和 store_vectors 等表 。

💡 补充说明

权限要求:虽然表是自动创建的,但你在 DB_URI 中配置的数据库用户必须拥有创建表(CREATE TABLE)的权限,否则 setup() 会报错 。

指定 Schema:默认表会建在 public 下。如果你想指定其他 schema,可以在数据库连接字符串(DB_URI)中通过 options 参数指定(例如: ?options=-csearch_path%3Dyour_schema,public ) 。

相关推荐
蒲公英eric4 小时前
从页面检查到功能验证:DVWA 授权绕过模块完整漏洞分析教程
web安全·ai·ctf·dvwa·ai安全·授权绕过模块
袋鼠云数栈4 小时前
实时湖仓如何真正做到“数据够新”?
大数据·数据库·人工智能·数据治理
ACP广源盛139246256735 小时前
M6/M5 Pro Mac mini 端侧 AI 落地@ACP#YLB3116 中端多盘存储扩展在 AI 服务中的机会与应用场景
大数据·网络·数据库·人工智能·嵌入式硬件·macos
AI老陈说5 小时前
Nano Banana 2 AI 角色一致性怎么保持?Flux Art 同一角色换动作与版本管理
ai·ai工具·ai生图
ACP广源盛139246256735 小时前
M6/M5 Pro Mac mini 端侧 AI 新形态@ACP#GSV5800 Serdes 长距离视频传输在 AI 服务中的机会与落地场景
大数据·网络·数据库·人工智能·嵌入式硬件·macos·音视频
倔强的石头_7 小时前
事务边界与批量写入:避免长事务、锁等待和日志压力
数据库
努力努力再努力wz7 小时前
【Redis入门系列】从 KEYS 到 SCAN:渐进式遍历、Cursor 与位反转原理
数据库·redis·缓存
坐吃山猪8 小时前
【多线程】Lock与Condition
大数据·数据库
Lightpwd8 小时前
Spring Boot 多数据源落地:AbstractRoutingDataSource + 注解切面(附源码)
数据库·后端
三声三视8 小时前
审计清单函数名写成 def?tri-checklist 的 diff 解析在 Python 改名场景下悄悄翻车
人工智能·ai·skillhub·tri-checklist·tri-skills