拓冰建站拓冰建站
首页 / 资讯中心 / 正文

Open Agents 数据库迁移管理:Drizzle Kit 与部署自动迁移完整指南

Open Agents 数据库迁移管理Drizzle Kit 与部署自动迁移完整指南【免费下载链接】open-agentsAn open source template for building cloud agents.项目地址: https://gitcode.com/GitHub_Trending/op/open-agentsOpen Agents 迁移方案一句话看懂Open Agents 是一个开源的云代码 Agent 模板项目内置了基于Drizzle Kit的数据库迁移管理和部署时自动迁移机制。它用 schema.ts 描述表结构用 drizzle.config.ts 生成 SQL 迁移文件再在构建阶段自动执行迁移——开发者只需改一个文件剩下的交给流水线。核心概念Schema、迁移文件与 Journal 三件套Open Agents 的数据库层由三部分协作完成文件作用lib/db/schema.ts用 Drizzle ORM 声明式定义所有表结构users、accounts、sessions 等lib/db/migrations/Drizzle Kit 生成的 SQL 迁移文件每个文件是一次版本化的结构变更meta/_journal.json迁移日志记录每条迁移的序号、时间戳与标签保证执行顺序以最新的迁移文件为例内容就是纯 SQL0036_faulty_yellow_claw.sqlALTER TABLE sessions ADD COLUMN IF NOT EXISTS sandbox_provisioning_run_id text;迁移目录里已沉淀了 30 多条历史迁移从0000到0036项目演进过程中每一次表结构变更都以独立文件形式留档可追溯、可重放。本地开发Drizzle Kit 四大常用命令所有数据库操作命令都配置在 apps/web/package.json 的 scripts 中用 Bun 即可一键执行# 生成迁移文件schema 变更后执行 bun run db:generate # 将 schema 直接同步到本地数据库开发期快速调试 bun run db:push # 执行 SQL 迁移文件 bun run db:migrate # 图形化查看数据库Drizzle Studio bun run db:studio推荐的日常开发流修改schema.ts→db:generate生成迁移 → 提交.sql文件。db:push仅用于本地快速试错不应产生迁移文件。配置侧只需三行关键设置见 drizzle.config.tsexport default defineConfig({ schema: ./lib/db/schema.ts, // 声明式结构定义 out: ./lib/db/migrations, // SQL 迁移输出目录 dialect: postgresql, });部署自动迁移构建即迁移这是 Open Agents 最贴心的设计——package.json 中的 build 脚本被改成了build: bun run db:migrate:apply next build也就是说每次部署构建前都会先运行 lib/db/migrate.ts由它调用drizzle-orm的migrate()把 migrations/ 下的 SQL 按序应用到POSTGRES_URL指向的数据库。上线新表结构不再需要手动执行任何脚本。✅migrate.ts还内置了两层健壮性保护值得新手学习缺配置即跳过若未设置POSTGRES_URL打印提示后直接退出不会让部署失败旧库自动对账检测到数据库已有表结构但没有迁移历史时会逐条重放迁移 SQL并把表已存在这类可忽略的 PostgreSQL 错误码如42P07重复表、42701重复列自动跳过实现平滑接管旧库。迁移状态记录在drizzle.__drizzle_migrations表中每条迁移以 hash 时间戳去重重复部署不会重复执行。防漂移检查确保迁移文件与 Schema 同步改了schema.ts却忘了生成迁移scripts/check-migrations.ts 帮你兜底bun run db:check它先快照现有.sql文件再运行drizzle-kit generate若发现有新生成的迁移文件立即报错并提示你提交❌ Schema has drifted from migrations. 请运行db:generate并提交结果。建议在 CI 中挂上这一步让漏提交迁移文件这类事故在合并前就被拦下。新手上手清单配置连接在.env.local中设置POSTGRES_URL配置加载逻辑见 drizzle.config.ts首次建库本地执行bun run db:migrate全部迁移会按 journal 顺序执行日常迭代改 schema.ts →db:generate→ 提交生成的.sql上线无需任何手动操作构建阶段的自动迁移会接管一切保险丝定期运行db:check防止 schema 与迁移漂移。整套方案的核心思想就一句话结构定义、迁移 SQL、执行日志三者分离开发靠 Drizzle Kit上线靠构建钩子。对新手而言你只需要关心schema.ts这一个文件。✨【免费下载链接】open-agentsAn open source template for building cloud agents.项目地址: https://gitcode.com/GitHub_Trending/op/open-agents创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门