thinkphp5 migrate数据库迁移工具


Posted in PHP onFebruary 20, 2018

tp5相对与tp3.2有很大的不同

migrate是其中一点,通过migrate程序员可以在php代码中创建数据库修改回滚等操作

首先下载migrate扩展,命令行到当前项目目录下执行

composer require topthink/think-migration

通过使用php think命令可以查看migrate是否成功下载

thinkphp5 migrate数据库迁移工具

使用migrate:create migrate文件名(首字母大写的驼峰法),在database下生成migrate文件

有可能建立失败提示没有什么方法一般是composer获取的tp版本过低,考虑修改composer.json文件里的migrate的版本为1.*或^1.0

重新composer update即可

thinkphp5 migrate数据库迁移工具

在application 下的 database.php 里配置好数据库

以下是其中一份migrate文件的内容(创建完后有一个默认方法change(),删除它)

use think\migration\Migrator;
 use think\migration\db\Column;
 
 class CreateUserTable extends Migrator
 {
   
   /**
   * 建立用户表
   */
   public function up(){
     $table = $this->table('user');
     $table->addColumn('username' , 'string' , ['limit' => 30])
        ->addColumn('passwork' , 'string' , ['limit' => 32])
        ->addColumn('email' , 'string' , ['limit' => 25])
        ->addColumn('lastlogin_ip' , 'string' , ['limit' => 15])
        ->addTimestamps('create_time' , 'lastlogin_time')
        ->addColumn('status' , 'integer' , ['limit' => 1 , 'default' => 1])
        ->setId('user_id')
        ->save();
   }
   
   /**
   * 提供回滚的删除用户表方法
   */
   public function down(){
     $this->dropTable('user');
   }
 }

以上的一些方法 ,官方给予的文档我没看到在哪,网上我看的是小腾讲解的

使用migrate:run会执行所有的migrate的up方法

通过migrate:rollback可以回滚上一条执行的migrate文件(带 -t  0 参数回滚全部)

通过migrate:status可以查看当前migrate执行的情况

执行run方法后,user表建立成功

thinkphp5 migrate数据库迁移工具

非常的方便

PHP 相关文章推荐
Apache+php+mysql在windows下的安装与配置图解(最新版)
Nov 30 PHP
Zend framework处理一个http请求的流程分析
Feb 08 PHP
zen cart新进商品的随机排序修改方法
Sep 10 PHP
PHP中去掉字符串首尾空格的方法
May 19 PHP
浅析PHP原理之变量(Variables inside PHP)
Aug 09 PHP
PHP Curl出现403错误的解决办法
May 29 PHP
PHP 实现判断用户是否手机访问
Jan 21 PHP
php实现session自定义会话处理器的方法
Jan 27 PHP
php实现约瑟夫问题的方法小结
Mar 23 PHP
PHP用户管理中常用接口调用实例及解析(含源码)
Mar 09 PHP
PHP使用第三方即时获取物流动态实例详解
Apr 27 PHP
php用xpath解析html的代码实例讲解
Feb 14 PHP
Laravel 5.4.36中session没有保存成功问题的解决
Feb 19 #PHP
自写的利用PDO对mysql数据库增删改查操作类
Feb 19 #PHP
PHP实现QQ、微信和支付宝三合一收款码实例代码
Feb 19 #PHP
浅析PHP数据导出知识点
Feb 17 #PHP
PHP 应用容器化以及部署方法
Feb 12 #PHP
PHP使用Redis长连接的方法详解
Feb 12 #PHP
PHP长连接实现与使用方法详解
Feb 11 #PHP
You might like
Laravel中如何轻松容易的输出完整的SQL语句
2020/07/26 PHP
javascript 事件绑定问题
2011/01/01 Javascript
读jQuery之十二 删除事件核心方法
2011/07/31 Javascript
JS面向对象编程浅析
2011/08/28 Javascript
jquery实现的带缩略图的焦点图片切换(自动播放/响应鼠标动作)
2013/01/23 Javascript
jquery固定底网站底部菜单效果
2013/08/13 Javascript
Jquery动态添加及删除页面节点元素示例代码
2014/06/16 Javascript
图片放大镜jquery.jqzoom.js使用实例附放大镜图标
2014/06/19 Javascript
详解JavaScript中Date.UTC()方法的使用
2015/06/12 Javascript
基于JavaScript实现回到页面顶部动画代码
2016/05/24 Javascript
js判断某个字符出现的次数的简单实例
2016/06/03 Javascript
使用jQuery Rotare实现微信大转盘抽奖功能
2016/06/20 Javascript
浅析vue component 组件使用
2017/03/06 Javascript
详解Angular2表单-模板驱动的表单(Template-Driven Forms)
2017/08/04 Javascript
微信小程序 配置顶部导航条标题颜色的实现方法
2017/09/20 Javascript
JavaScript Date对象应用实例分享
2017/10/30 Javascript
基于Vue框架vux组件库实现上拉刷新功能
2017/11/28 Javascript
Angular 作用域scope的具体使用
2017/12/11 Javascript
nodejs(officegen)+vue(axios)在客户端导出word文档的方法
2018/07/31 NodeJs
JavaScript引用类型Function实例详解
2018/08/09 Javascript
Vue.js 中的 v-show 指令及用法详解
2018/11/19 Javascript
[06:20]2015国际邀请赛第三日top10
2015/08/08 DOTA
详解Python map函数及Python map()函数的用法
2017/11/16 Python
flask中使用蓝图将路由分开写在不同文件实例解析
2018/01/19 Python
Django rest framework实现分页的示例
2018/05/24 Python
对pandas中两种数据类型Series和DataFrame的区别详解
2018/11/12 Python
Django 实现 Websocket 广播、点对点发送消息的代码
2020/06/03 Python
CSS3实现各种图形的示例代码
2016/10/19 HTML / CSS
整理HTML5中表单的常用属性及新属性
2016/02/19 HTML / CSS
应届生法律顾问求职信
2013/11/19 职场文书
电大本科自我鉴定
2014/02/05 职场文书
乐山大佛导游词
2015/02/02 职场文书
Java基于字符界面的简易收银台
2021/06/26 Java/Android
MySQL 服务和数据库管理
2021/11/11 MySQL
Golang 遍历二叉树
2022/04/19 Golang
SQL Server #{}可以防止SQL注入
2022/05/11 SQL Server