adminmatrix/matrix_migration 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

adminmatrix/matrix_migration

Composer 安装命令:

composer require adminmatrix/matrix_migration

包简介

基于 Phinx 的数据库迁移工具,支持 ThinkPHP 框架,提供数据库版本控制和迁移管理功能

README 文档

README

一个基于 Phinx 的数据库迁移工具,专为 ThinkPHP 框架设计。

功能特点

  • 基于 Phinx 框架的数据库迁移工具
  • 支持 ThinkPHP 框架集成
  • 提供命令行工具进行数据库迁移管理
  • 支持数据库版本控制
  • 支持迁移回滚
  • 自动执行迁移脚本

环境要求

  • PHP >= 8.3
  • ThinkPHP 框架
  • MySQL 或其他支持的数据库

安装

通过 Composer 安装:

composer require adminmatrix/matrix_migration

使用教程

1. 创建迁移文件

php think migrate:create CreateUsersTable [--app=app_name] [--connection=connection_name]

参数说明:

  • --app: 指定应用名称,默认为空(使用默认应用)
  • --connection: 指定数据库连接,默认为配置文件中的默认连接

这将在 database/migrations 目录下创建一个新的迁移文件。

2. 编写迁移文件

在生成的迁移文件中,您可以定义 up()down() 方法:

<?php
use Phinx\Migration\AbstractMigration;

class CreateUsersTable extends AbstractMigration
{
    public function up()
    {
        $table = $this->table('users');
        $table->addColumn('username', 'string')
              ->addColumn('password', 'string')
              ->addColumn('email', 'string')
              ->addColumn('created_at', 'datetime')
              ->addColumn('updated_at', 'datetime')
              ->create();
    }

    public function down()
    {
        $this->table('users')->drop()->save();
    }
}

3. 执行迁移

php think migrate:run [--app=app_name] [--connection=connection_name] [--target=version]

参数说明:

  • --app: 指定应用名称,默认为空(使用默认应用)
  • --connection: 指定数据库连接,默认为配置文件中的默认连接
  • --target: 指定要迁移到的版本号,默认为最新版本

4. 回滚迁移

php think migrate:rollback [--app=app_name] [--connection=connection_name] [--target=version] [--date=YYYY-MM-DD]

参数说明:

  • --app: 指定应用名称,默认为空(使用默认应用)
  • --connection: 指定数据库连接,默认为配置文件中的默认连接
  • --target: 指定要回滚到的版本号
  • --date: 指定要回滚到的日期

5. 查看迁移状态

php think migrate:status [--app=app_name] [--connection=connection_name] [--format=format]

参数说明:

  • --app: 指定应用名称,默认为空(使用默认应用)
  • --connection: 指定数据库连接,默认为配置文件中的默认连接
  • --format: 输出格式,可选值:json, array, 默认为表格格式

6. 重置迁移

php think migrate:reset [--app=app_name] [--connection=connection_name]

参数说明:

  • --app: 指定应用名称,默认为空(使用默认应用)
  • --connection: 指定数据库连接,默认为配置文件中的默认连接

7. 刷新迁移

php think migrate:refresh [--app=app_name] [--connection=connection_name] [--seed]

参数说明:

  • --app: 指定应用名称,默认为空(使用默认应用)
  • --connection: 指定数据库连接,默认为配置文件中的默认连接
  • --seed: 是否同时运行数据填充

常用命令

命令描述参数
migrate:create创建新的迁移文件--app, --connection
migrate:run执行所有未执行的迁移--app, --connection, --target
migrate:rollback回滚最后一次迁移--app, --connection, --target, --date
migrate:reset回滚所有迁移--app, --connection
migrate:refresh重置并重新运行所有迁移--app, --connection, --seed
migrate:status显示迁移状态--app, --connection, --format

注意事项

  1. 迁移文件命名建议使用驼峰命名法
  2. 每次迁移后会自动记录在 phinxlog 表中
  3. 确保数据库配置正确
  4. 建议在开发环境中测试迁移脚本
  5. 使用 --app 参数可以指定多应用场景下的迁移
  6. 使用 --connection 参数可以切换不同的数据库连接

常见问题

  1. 迁移失败怎么办?

    • 检查数据库配置是否正确
    • 查看错误日志
    • 确保数据库用户有足够的权限
    • 检查迁移文件语法是否正确
  2. 如何修改迁移文件?

    • 不建议直接修改已执行的迁移文件
    • 创建新的迁移文件来修改表结构
    • 使用 migrate:rollback 回滚后再修改
  3. 如何添加种子数据?

    • 使用 migrate:seed 命令
    • database/seeds 目录下创建种子文件
    • 使用 migrate:refresh --seed 同时执行迁移和填充
  4. 如何处理多应用场景?

    • 使用 --app 参数指定应用名称
    • 迁移文件会保存在对应应用的 database/migrations 目录下

贡献

欢迎提交 Issue 和 Pull Request。

许可证

MIT License

adminmatrix/matrix_migration 适用场景与选型建议

adminmatrix/matrix_migration 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 30 次下载、GitHub Stars 达 0, 最近一次更新时间为 2025 年 10 月 24 日, 在 PHP 生态内属于活跃度较高的组件。

我们在过去多个企业项目中使用过 adminmatrix/matrix_migration 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 adminmatrix/matrix_migration 我们能提供哪些服务?
定制开发 / 二次开发

基于 adminmatrix/matrix_migration 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 30
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 18
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: Unknown
  • 更新时间: 2025-10-24