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

相关推荐
roman_日积跬步-终至千里1 小时前
【资源控制】自助查询的智能路由
java·大数据·数据库
SelectDB1 小时前
无锡锡商银行 数据仓库演进:Apache Doris / SelectDB 的技术能力与实践
数据库
SelectDB2 小时前
雨润集团 统一实时数据仓库:Apache Doris / SelectDB 的技术能力与实践
数据库
SelectDB2 小时前
天翼云 Iceberg 湖仓一体:Apache Doris / SelectDB 的技术能力与实践
数据库
腾视科技-AIoT2 小时前
私有云时代来临:AI NAS如何重塑你的数字生活?
人工智能·ai·生活·nas·ai算力模组·ainas·腾视科技
fthux2 小时前
装闭 RenoPit 源码解析(12):从AI分析结果到React避坑报告
人工智能·ai·开源·github·open source·renopit
l1258652 小时前
# RAG重排序实战:硅基流动bge-reranker-v2-m3在线API vs 本地CrossEncoder,一篇讲透两种方案
数据库·人工智能·python·深度学习·算法·机器学习·langchain
DS随心转APP2 小时前
生成word文档的ChatGPT格式乱码终结者:AI导出鸭横向测评与工程化架构解析 摘要
人工智能·ai·chatgpt·word·deepseek·ai导出鸭
张洛闻Eren3 小时前
MySQL 管理复制拓扑【MySQL第四课】
linux·运维·数据库·mysql