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 相关文章推荐
php录入页面中动态从数据库中提取数据的实现
Oct 09 PHP
模仿OSO的论坛(四)
Oct 09 PHP
PHP中str_replace函数使用小结
Oct 11 PHP
分享一段PHP制作的中文拼音首字母工具类
Dec 11 PHP
WordPress开发中用于获取近期文章的PHP函数使用解析
Jan 05 PHP
PHP图片裁剪与缩放示例(无损裁剪图片)
Feb 08 PHP
PHP中让json_encode不自动转义斜杠“/”的方法
Feb 28 PHP
thinkPHP5.0框架命名空间详解
Mar 18 PHP
在PHP 7下安装Swoole与Yar,Yaf的方法教程
Jun 02 PHP
PHP 访问数据库配置通用方法(json)
May 20 PHP
php常用的工具开发整理
Sep 26 PHP
Laravel ORM 数据model操作教程
Oct 21 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
How do I change MySQL timezone?
2008/03/26 PHP
巧用php中的array_filter()函数去掉多维空值的代码分享
2012/09/07 PHP
PHP实现抽奖功能实例代码
2020/06/30 PHP
Tinymce+jQuery.Validation使用产生的BUG
2010/03/29 Javascript
Javascript 实用小技巧
2010/04/07 Javascript
jQuery EasyUI Dialog拖不下来如何解决
2015/09/28 Javascript
Javascript iframe交互并兼容各种浏览器的解决方法
2016/07/12 Javascript
JS实现HTML表格排序功能
2016/08/05 Javascript
ionic隐藏tabs的方法
2016/08/29 Javascript
微信小程序中的swiper组件详解
2017/04/14 Javascript
vue实现多条件和模糊搜索功能
2019/05/28 Javascript
使用Webpack提升Vue.js应用程序的4种方法(翻译)
2019/10/09 Javascript
微信小程序入门之绘制时钟
2020/10/22 Javascript
CentOS 8.2服务器上安装最新版Node.js的方法
2020/12/16 Javascript
vue+elementui通用弹窗的实现(新增+编辑)
2021/01/07 Vue.js
Python实现将绝对URL替换成相对URL的方法
2015/06/28 Python
python实现红包裂变算法
2016/02/16 Python
python opencv调用笔记本摄像头
2019/08/28 Python
python redis 批量设置过期key过程解析
2019/11/26 Python
python实现俄罗斯方块小游戏
2020/04/24 Python
Python多线程threading创建及使用方法解析
2020/06/17 Python
Python高并发解决方案实现过程详解
2020/07/31 Python
AHAVA美国官方网站:死海海泥护肤品牌
2016/10/18 全球购物
吉列剃须刀英国官网:Gillette英国
2019/03/28 全球购物
Myprotein西班牙官网:欧洲第一大运动营养品牌
2020/02/24 全球购物
傲盾软件面试题
2015/08/17 面试题
售后服务经理岗位职责
2014/02/25 职场文书
元旦文艺汇演主持词
2014/03/26 职场文书
幼儿教师演讲稿
2014/05/06 职场文书
节能环保标语
2014/06/12 职场文书
2014年护士个人工作总结
2014/11/11 职场文书
确保工程质量承诺书
2015/04/29 职场文书
如何使用vue3打造一个物料库
2021/05/08 Vue.js
windows下快速安装nginx并配置开机自启动的方法
2021/05/11 Servers
教你用python实现一个无界面的小型图书管理系统
2021/05/21 Python
在Python中如何使用yield
2021/06/07 Python