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 相关文章推荐
phplock(php进程锁) v1.0 beta1
Nov 24 PHP
php中的三元运算符使用说明
Jul 03 PHP
php木马webshell扫描器代码
Jan 25 PHP
php绘图之加载外部图片的方法
Jan 24 PHP
PHP实现支持SSL连接的SMTP邮件发送类
Mar 05 PHP
yii分页组件用法实例分析
Dec 28 PHP
Centos6.5和Centos7 php环境搭建方法
May 27 PHP
详谈配置phpstorm完美支持Codeigniter(CI)代码自动完成(代码提示)
Apr 07 PHP
laravel框架关于搜索功能的实现
Mar 15 PHP
为你的 Laravel 验证器加上多验证场景的实现
Apr 07 PHP
php7 新增功能实例总结
May 25 PHP
PHP如何通过带尾指针的链表实现'队列'
Oct 22 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
php数组函数序列 之shuffle()和array_rand() 随机函数使用介绍
2011/10/29 PHP
php下载文件的代码示例
2012/06/29 PHP
PHP setTime 设置当前时间的代码
2012/08/27 PHP
PHP实现微信JS-SDK接口选择相册及拍照并上传的方法
2016/12/05 PHP
php 三大特点:封装,继承,多态
2017/02/19 PHP
PHP后台实现微信小程序登录
2018/08/03 PHP
一个判断抢购时间是否到达的简单的js函数
2014/06/23 Javascript
Javascript基础教程之switch语句
2015/01/18 Javascript
iframe跨域通信封装详解
2015/08/11 Javascript
JavaScript暂停和继续定时器的实现方法
2016/07/18 Javascript
JS触发服务器控件的单击事件(详解)
2016/08/06 Javascript
基于SpringMVC+Bootstrap+DataTables实现表格服务端分页、模糊查询
2016/10/30 Javascript
Vue组件之全局组件与局部组件的使用详解
2017/10/09 Javascript
vue项目中,main.js,App.vue,index.html的调用方法
2018/09/20 Javascript
JavaScript 反射和属性赋值实例解析
2019/10/28 Javascript
javascript设计模式 ? 中介者模式原理与用法实例分析
2020/04/20 Javascript
Vue中强制组件重新渲染的正确方法
2021/01/03 Vue.js
[48:20]OpTic vs Serenity 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
Python实现微信公众平台自定义菜单实例
2015/03/20 Python
剖析Django中模版标签的解析与参数传递
2015/07/21 Python
Python计算已经过去多少个周末的方法
2015/07/25 Python
Python调用C语言的方法【基于ctypes模块】
2018/01/22 Python
PYTHON基础-时间日期处理小结
2018/05/05 Python
Python实现动态添加属性和方法操作示例
2018/07/25 Python
Python 输入一个数字判断成绩分数等级的方法
2018/11/15 Python
如何在django里上传csv文件并进行入库处理的方法
2019/01/02 Python
Python GUI编程完整示例
2019/04/04 Python
Python virtualenv虚拟环境实现过程解析
2020/04/18 Python
详解python算法常用技巧与内置库
2020/10/17 Python
Python根据字符串调用函数过程解析
2020/11/05 Python
python反爬虫方法的优缺点分析
2020/11/25 Python
Python读取pdf表格写入excel的方法
2021/01/22 Python
自动化职业生涯规划书范文
2014/01/03 职场文书
护士检查书
2014/01/17 职场文书
国庆节新闻稿
2015/07/17 职场文书
奇妙的 CSS shapes(CSS图形)
2021/04/05 HTML / CSS