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 ) 。

相关推荐
weixin_511255211 小时前
MySQL升级记录
数据库·mysql
程序猿乐锅2 小时前
【黑马点评 | 第八篇】Redisson分布式锁
java·数据库·spring boot·redis·分布式·spring·缓存
Leo.yuan2 小时前
2026年本地化Data Agent优质厂商盘点:哪些产品更适合企业生产环境
大数据·数据库·人工智能
长谷深风1113 小时前
Tool与Skill:AI能力设计的分水岭
java·人工智能·ai·大模型·aiagent
做运维的阿瑞3 小时前
数据库增删改的安全写法
数据库·sql·mysql
Harzerr3 小时前
AI行业日报|2026-09-28:5个热点事件
ai·行业动态·技术趋势
程序边界3 小时前
迁移评估不再拍脑袋,这个数据迁移工具的量化报告把我救了(上)
数据库
2601_956743683 小时前
2026年上海GEO优化公司交付力测评:从AI信息链路看可核验、可量化、可归属的能力分野
人工智能·ai·上海·行业观察
阿狗童鞋3 小时前
Redis实战指南
数据库·redis·缓存
进击的雷神4 小时前
想法直接变视频,角色还不崩?我上手测了下这个多智能体框架 ViMax
ai·视频·短剧·vimax