ThinkPHP6.0 数据迁移工具 migration 入门使用教程

本文介绍了如何在ThinkPHP6.0框架下利用Composer安装数据库迁移工具,通过创建和执行迁移文件来管理数据库结构。创建迁移文件涉及change方法,用于定义表结构和操作,如添加字段和索引。执行迁移通过`migrate:run`命令实现,回滚则使用`migrate:rollback`,支持按版本或日期回滚。

开始前需要做好的准备工作:

  • 搭建好 PHP 开发环境(推荐 phpstudy,PHP>=7.2.5,MySql5.7.x)。
  • 安装好 ThinkPHP6.0,并做配置可正常连接到 MySql 数据库。
  • 安装好 Composer。

安装数据库迁移工具

使用 Composer 安装数据库迁移工具:

composer require topthink/think-migration

安装成功后,通过php think list查看相关指令:
Alt text
上面截图中红色框线区域为数据库迁移相关指令。我们常用的其中的三个:

  • migrate:create 创建一个迁移
  • migrate:rollback 回滚
  • migrate:run 执行迁移

下文我以用户表为例进行介绍。

创建迁移文件

  • 首先通过migrate:create指令生成一个迁移脚本(含基础代码结构的文件)

    php think migrate:create User
    

    执行成功的结果如下:
    Alt text
    我们可以看到,执行结果是在项目根目录多一个database/migrations目录,来存放迁移脚本文件,文件名格式YYYYMMDDHHMMSS_my_new_migration.php,前 14 个字符就是当前时间戳(精确到秒),后面就是自定义的迁移名称。

  • 修改迁移脚本内容
    上文自动创建的迁移脚本文件只是一个框架文件,并没有具体实现。我们可以在这个文件中编码来创建新表、插入数据、增加索引和修改字段等。其中有一个空方法change,我们就在这个方法内进行迁移。

    • 修改前的迁移脚本文件内容:
    <?php
    
    use think\migration\Migrator;
    use think\migration\db\Column;
    
    class User extends Migrator
    {
         
         
        /**
        * Change Method.
        *
        * Write your reversible migrations using this method.
        *
        * More information on writing migrations is available here:
        * http://docs.phinx.org/en/latest/migrations.html#the-abstractmigration-class
        *
        * The following commands can be used in this method and Phinx will
        * automatically reverse them when rolling back:
        *
        *    createTable
        *    renameTable
        *    addColumn
        *    renameColumn
        *    addIndex
        *    addForeignKey
        *
        * Remember to call "create()" or "update()" and NOT "save()" when working
        * with the Table class.
        */
        public function change()
        {
         
         
    
        }
    }
    
    

    旧版本中updown方法,而目前最新版本只需要在change方法中定义up的代码逻辑,不需要定义down方法,因为回滚的时候新版本会自动识别。

    注意:change方法存在的时候,updown方法会被自动忽略。如果你确实想用这些方法,你可以创建另外一个迁移文件。

    • 定义迁移文件内容如下:
    <?php
    
    use 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

西涯三锋

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值