SuperAPI AI 工具集

bitrix-sprint-migration

部署与运维

查看项目

更新于 10-15 17:07

技能介绍

用途

sprint.migration 是一个 Bitrix 框架的数据库迁移模块,以 Composer 包(andreyryabin/sprint.migration)形式分发,也可从 Marketplace 获取。它的核心目标是把项目中的数据库结构与内容变更写成 PHP 类,并纳入版本控制系统(VCS)管理,从而让数据库变更可追踪、可复现、可回滚。

需要区分的是:模块自身拥有的表、事件和代理应写入该模块的安装程序(bitrix-modules),而不是放进迁移文件。

主要能力

  • 版本类:迁移以 namespace Sprint\Migration; Version<YmdHis> extends Version 的形式定义,通过 up() 与 down() 方法描述正向与回滚操作。
  • 辅助与构建器:提供 HelperManager 辅助方法以及 builder 构建器,用于生成迁移文件与常见操作,具体方法名参见 helpers-builders 规则文档。
  • 命令行工具:通过 php {module}/tools/migrate.php <command> 执行迁移相关命令。
  • 配置文件:使用 migrations.*.php 配置文件进行设置。
  • 版本记录表:默认使用 sprint_migration_versions 表记录已应用的迁移。

使用方式

默认配置(config cfg)如下:

  • 迁移目录:{local|bitrix}/php_interface/migrations(若存在 local/php_interface 则使用 local)。
  • 版本表:sprint_migration_versions。
  • 类命名:namespace Sprint\Migration; Version<YmdHis> extends Version。
  • CLI:php {module}/tools/migrate.php <command>。

若模块未安装,应先检查 /local/modules/sprint.migration/ 与 /bitrix/modules/sprint.migration/,再通过 Loader::includeModule('sprint.migration') 判断;若确实缺失,建议通过 Marketplace 或 Composer 安装,不要自行编写迁移框架。

适用场景

  • 需要把 Bitrix 项目的数据库结构与内容变更纳入版本控制。
  • 需要以可回滚的 PHP 类方式编写、审查并应用迁移。
  • 需要借助 CLI 与配置文件批量管理迁移。

限制与注意事项

  • 基线要求:main 23.0+;已验证版本:sprint.migration 5.15.1、main 26.800.0。
  • 不要修改模块源码,只编写迁移文件与 migrations.*.php 配置。
  • 应通过 add 或 builder 创建文件;手工命名会破坏时间戳校验。
  • 实体应通过 CODE/XML_ID 标识,绝不使用来自其他数据库的 id。
  • 已应用的迁移不可变,如需修正应新增一个迁移向前修复。
  • 在共享或生产数据库上执行 up/down 必须获得明确的人工批准。
  • 关于 CLI 命令、配置、版本命名与控制台用户,参见 rules/cli-config.md;关于编写 Version::up()/down()、可重启批次与交换文件,参见 rules/writing.md;关于辅助与构建器映射及方法名,参见 rules/helpers-builders.md;关于安全规则、审查与应用清单,参见 rules/checklist.md。