useAiWork开发者文档
技术架构

数据库、迁移与持久化

理解 D1 访问、Drizzle schema 以及不同功能的数据存储位置。

数据库入口

src/integrations/database/client.ts 通过 getCloudflareContext({ async: true }) 获取 NEXT_TAG_CACHE_D1,再创建 Drizzle D1 客户端。Schema 在 src/integrations/database/schema.ts,迁移 SQL 在 drizzle/。

修改 Worker 绑定时必须与客户端一致;本地 D1 database not found 应先检查 context 和资源绑定,而不是改成另一套数据库访问方式。

修改数据结构

代码片段
pnpm db:generate
pnpm db:migrate:dev

先修改 Schema,生成迁移并审阅 SQL,再应用本地迁移和测试。生产迁移使用 pnpm db:migrate:prod,该命令写远端数据库,需要在正式发布流程中确认目标资源。

不要通过修改已应用迁移去改变线上结构。历史数据新增字段时提供兼容读取或迁移,并覆盖旧数据样例。

数据保存位置

数据位置开发注意事项
简历与求职 AI 会话
D1
按账户限定访问,校验持久化 JSON
提示词与绑定
D1
内置只读,用户内容按所有者读取
AI 图片历史
D1
存任务和结果引用,不存 API Key
平台生成图片
对象存储
数据库保存受保护访问地址
自定义模型密钥
浏览器 localStorage
账号隔离;请求时临时提交
通用聊天记录
浏览器 localStorage
无云端同步,写入失败保留快照
编辑器 AI 修改对话
组件内存
关闭后结束,不自动持久化

实现入口

  • src/features/resume/api/service.ts:简历持久化。
  • src/features/career/api/session-service.ts:求职会话。
  • src/features/ai-image/api/history-service.ts:图片历史。
  • src/features/ai-settings/api/repository.ts:提示词持久化。

本页目录