SuperAPI AI 工具集

db-migrate

数据与分析

查看项目

更新于 10-16 00:29

技能介绍

用途:db-migrate 用于跨框架管理数据库迁移,支持创建新迁移、查看迁移状态、校验迁移文件。它通过扫描项目标记文件自动识别迁移框架,并驱动该框架的原生 CLI,不自行发明命令。

主要能力:

  • 检测框架:扫描 alembic.ini、prisma/schema.prisma、knexfile.、flyway.conf、db/migrate/、manage.py、atlas.hcl、typeorm.config.、ormconfig.*、liquibase.properties 等标记文件,并检查 package.json、pyproject.toml、requirements.txt、Gemfile 中的依赖。若检测到多个框架会询问用户,未检测到则请用户指明。
  • 创建迁移:按项目已有命名规范生成迁移文件,支持 --name 指定名称,支持 --dry-run 预览;生成后读回文件展示,并执行校验。
  • 状态查询:运行框架状态命令,展示已应用迁移(含时间戳)、待应用迁移和当前 schema 版本。
  • 校验:检查回滚是否存在、命名规范、外键索引覆盖、破坏性操作(DROP TABLE、DROP COLUMN、TRUNCATE、DELETE FROM)以及数据与结构混合变更。

使用方式:根据 $ARGUMENTS 或用户表述确定操作,默认 create。创建时若未提供 --name 会先询问名称。执行连接数据库的命令前会检查环境变量(APP_ENV、RAILS_ENV、NODE_ENV、DJANGO_SETTINGS_MODULE)、DATABASE_URL 或配置主机及 --env/profile,疑似生产环境会先要求确认。

限制:破坏性操作只报告不自动修复,需用户明确确认;不自动修复破坏性操作或数据与结构混合变更;自动生成的迁移需人工复核;MySQL 的 DDL 自动提交,检测到时会提示而非假设事务包裹。最终报告仅使用命令实际输出,不猜测文件路径或迁移名称。