SuperAPI AI 工具集

Create database migration

数据与分析

查看项目

更新于 10-16 01:11

技能介绍

用途:为 Ghost 的 MySQL 数据库创建迁移,用于新增表、为已有表添加列、添加设置或其他 schema 变更。本技能是 docs/practices/database-migrations.md 指南配套的可执行检查清单,动手前应先阅读该文档。

主要能力与流程:若新增表的结构仍在变动,可标记为开发中而暂不写迁移。创建空迁移文件必须使用脚本,不可手动创建:cd ghost && pnpm migrate:create <kebab-case-slug>,slug 须为 kebab-case(如 add-column-to-posts);该命令会在 ghost/core/server/data/migrations/versions 下创建目录和空文件,并在发布后首个迁移时把 core 与 admin 包版本提升到 RC。随后按代码库既有模式填写迁移内容,优先使用 ghost/core/server/data/migrations/utils/* 中的工具函数。

还需更新 ghost/core/server/data/schema/schema.js,使其与迁移的最新变更一致;从仓库根目录手动测试:pnpm knex-migrator migrate --v {version directory} --force;回滚测试 down():pnpm knex-migrator rollback --v {previous version} --force,再向前迁移。运行迁移集成测试(覆盖初始化、回滚、前向迁移与幂等性):cd ghost && pnpm test:single test/integration/migrations/migration.test.js;迁移必须通过 MySQL 与 SQLite 的数据库测试套件。

适用范围与限制:若新增或删除表,需相应更新 ghost/core/server/data/exporter/table-lists.js,因为 ghost/test/unit/server/data/exporter/index.test.js 的一致性断言会检查每个 schema 表都在导出器列表中分类;表列表变动时运行 cd ghost && pnpm test:single test/unit/server/data/exporter/index.test.js。运行 schema 完整性测试并更新哈希:cd ghost && pnpm test:single test/unit/server/data/schema/integrity.test.js。最后运行核心单元测试并迭代通过:cd ghost && pnpm test:unit。示例见 examples.md,必须遵守的规则见 rules.md。具体收费、平台等信息暂未提供。