用途:在 mx-space/core 项目中创建新的数据库迁移文件,适用于修改数据库结构、迁移数据或更新配置格式的场景。
主要能力:迁移文件放在 apps/core/src/migration/version/ 下,命名格式为 v<major>.<minor>.<patch>.ts(如 v9.1.0.ts)。模板导出默认异步函数 v(db: Db),可先检查是否需要迁移、是否已迁移,再执行 updateMany 或游标批量更新。常见场景包括重命名字段($rename)、添加默认值($set)、数据格式转换、删除字段($unset)、创建索引(createIndex)。
使用方式:编写迁移后需在 apps/core/src/migration/history.ts 中导入并加入 VersionList,例如 { name: 'v9.1.0', run: v910 }。迁移在应用启动时自动执行,已执行的记录写入 mx_migration 集合,不会重复运行。测试文件放在 apps/core/test/src/migration/v<version>.spec.ts,使用 vitest 与 dbHelper 连接数据库验证迁移结果。
限制与注意:迁移应保持幂等,可重复运行而无副作用;先检查是否需要迁移以避免多余操作;大数据集使用游标防止内存溢出;迁移失败会抛异常并阻止应用启动;生产环境运行前应备份数据。具体命令与完整代码以官方资料为准,暂未提供其他安装或运行命令。