ThinkPhp5 数据迁移(think-migration)

Posted 潘点点

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ThinkPhp5 数据迁移(think-migration)相关的知识,希望对你有一定的参考价值。

在thinkphp5中提供了数据迁移工具(think-migration),它是机遇phinx开发(文档地址:http://docs.phinx.org/en/latest/)

一:配置think-migration

在commond.php 中添加

<?php
return [
    "think\\\\migration\\\\command\\\\migrate\\\\Create",
    "think\\\\migration\\\\command\\\\migrate\\\\Run",
    "think\\\\migration\\\\command\\\\migrate\\\\Rollback",
    "think\\\\migration\\\\command\\\\migrate\\\\Status",
    "think\\\\migration\\\\command\\\\seed\\\\Create",
    "think\\\\migration\\\\command\\\\seed\\\\Run",
];
?>

注意由于think-migration存放在thinkphp/vendor中 所以在think中需要将vendor加入auoload

require __DIR__.\'/../thinkphp/vendor/autoload.php\';

 

二:命令行运行

 在命令行输入php think 可以看见

migrate:数据库迁移工具 seed:数据库填充工具

主要讨论migrate:

  migrate:create : 创建一个新的数据迁移类,php think migrate:create <file>,文件名须采用驼峰命名法

  forexample:php think migrate:create ScProductImage 文件会在制定目录下生成一个php文件

***********************************************************

migrate:run : 完成数据迁移工作 php think migrate:run

***********************************************************

migrate:status:查看migrate工作状态 php think migrate:status

 

 

***********************************************************************************************

  migrate:rollback : 回滚数据到指定的一个数据迁移版本 php think migrate:rollback -t <timeline>

  <timeline> 就是我们上图上面红框表示的值

 

三:migrate文件编写

     在migrate中有三个方法

     up:在migrate:run时执行(前提是文件中不存在change方法)

    down:在migrate:rollback时执行(前提是文件中不存在change方法)

    change:migrate:run 和migrate:rollback时执行 (如果存在该方法 则不会去执行up 与down)

 

以上是关于ThinkPhp5 数据迁移(think-migration)的主要内容,如果未能解决你的问题,请参考以下文章

Thinkphp 数据库迁移和填充

Thinkphp 数据库迁移和填充

ThinkPHP5数据库迁移工具 migration

tp5 migrate数据库迁移工具

tp5 数据库迁移工具 migrate&seed

thinkphp迁移工具报错implode(): Passing glue string after array is deprecated. Swap the parameters