You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何标记Evolve数据库迁移完成?SkipNextMigrations选项报错

解决Evolve无法识别--skip-next-migrations选项的问题

可能的原因与解决办法

1. 检查Evolve版本兼容性

SkipNextMigrations选项并非所有Evolve版本都支持,先确认你的Evolve版本:

./evolve --version

如果版本较旧,建议升级到最新稳定版;若因依赖限制无法升级,查看对应版本的官方文档,确认该功能的参数名称(部分旧版本可能使用--skip或其他参数名)。

2. 修正命令行参数格式

部分版本中,--skip-next-migrations需要指定跳过的迁移数量而非布尔值true,比如跳过1个迁移脚本的正确命令:

./evolve migrate mysql -c "$CONNECTION_STRING" -l ../migrations --command-timeout 36000 --skip-next-migrations 1

同时注意参数的大小写:部分CLI实现严格区分短横线分隔(--skip-next-migrations)和驼峰式(--SkipNextMigrations),优先使用官方文档对应版本的参数格式。

3. 替代方案:手动标记迁移为已完成

如果命令行选项始终无法生效,可直接操作Evolve的元数据记录表(默认表名为changelog):

  • 计算目标迁移脚本的校验值:
    ./evolve checksum mysql -c "$CONNECTION_STRING" -l ../migrations
    
  • 在changelog表中插入一条记录,将目标脚本标记为已应用:
    字段需包含:
    • id:唯一标识(可自增)
    • version:迁移脚本的版本号(如1对应V1__xxx.sql)
    • description:脚本描述(与文件名中__后的内容一致)
    • script_name:迁移脚本的完整文件名
    • checksum:上述命令计算得到的校验值
    • status:设为Applied
    • applied_on:当前时间
    • applied_by:执行用户

这样Evolve会认为该迁移已完成,不会再执行对应的脚本。

内容的提问来源于stack exchange,提问作者Josh Withee

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 02:15:38