跳到主要内容

迁移

Lens 使用 Alembic 来演进数据库 schema。你是否需要在这个页面上做些什么,取决于你当前的工作内容:

  • 将某个部署升级到一个更改了 schema 的版本——运行一次迁移, 然后再启动新版本。
  • 自己更改 schema(添加/删除列或表)——你需要编写一个新的 迁移脚本。

应用迁移​

alembic -c alembic.ini upgrade head

每当某个发行版说明中提到了 schema 变更时,请在拉取新代码之后、 启动后端之前运行此命令。它不会在后端启动时自动运行—— 必须由操作者(或者部署工具中的升级步骤)显式运行。

要检查当前的修订版本或回退一步:

alembic -c alembic.ini current
alembic -c alembic.ini downgrade -1

编写新的迁移脚本​

如果你以某种改变实际表结构的方式更改了 llm_d_lens/db/models/ 下的某个 *Row 模型(新增/删除/重命名/改变类型的列、新表、 新的索引或约束),请针对真实的差异生成一个迁移脚本:

alembic -c alembic.ini revision --autogenerate -m "add foo to bar"

提交之前,先查看 llm_d_lens/db/migrations/versions/ 下生成的 脚本——自动生成并不总能正确处理默认值、数据回填或重命名。 关于基线迁移的历史和边界情况(例如为什么 Base.metadata.create_all() 无法替代已有数据的数据库上的真实迁移),请参见完整的 迁移 README。

对于不涉及 schema 的更改——例如编辑现有 JSON 列(比如 extra) 内部的字段——你不需要编写迁移脚本。