thinkPHP如何使用migrate实现数据库迁移

发布时间 - 2020-07-29 00:00:00    点击率:

下面由thinkphp框架教程栏目给大家介绍thinkphp使用migrate实现数据库迁移的方法,希望对需要的朋友有所帮助!

thinkPHP使用migrate实现数据库迁移

thinkPHP的数据库迁移工具:topthink/think-migration

一:安装topthink/think-migration

这里注意你安装topthink/think-migration时需要注意你的thinkPHP版本,这里我的thinkPHP版本为5.1,所以可以安装topthink/think-migration的2.0版本,无法安装3.0版本,选择你适合的版本进行安装

composer require topthink/think-migration=2.0.*

安装完成之后在命令行执行:

php think

如下表示migrate安装成功

二:使用topthink/think-migration实现数据库迁移

1:创建迁移类

在命令行执行

php think migrate:create CreateUser

执行完成之后我们就和在./database/migrateions目录下创建一个migrate迁移文件

2:实现数据库迁移

migrate方法使用文档:http://docs.phinx.org/en/latest/migrations.html

[1]:migrate代码说明:

在migrate中有三个方法

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

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

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

一般情况下我一般将migrate文件中的change方法删除,up方法专门放置新增和更新表的操作,down方法放置删除表和删除字段操作

(1)新增表:

// create the table
$table = $this->table('user', ['id' => 'user_id', 'comment' => '用户表', 'engine' => 'MyISAM', '']);
$table->addColumn('user_name', 'string', ['limit' => 15, 'default' => '', 'comment' => '用户名'])
    ->addColumn('password', 'string', ['limit' => 15, 'default' => '', 'comment' => '密码',])
    ->addColumn('status', 'boolean', ['limit' => 1, 'default' => 0, 'comment' => '状态'])
    ->addIndex(['user_name'], ['unique' => true])//为user_name创建索引并设置唯一(唯一索引)
    ->addTimestamps()//默认生成create_time和update_time两个字段
    ->create();

(2)更新表:

$this->table('user')
    ->addColumn('test', 'string', ['limit' => 15, 'default' => '', 'comment' => '测试'])//在user表中增加一个test字段
    ->update();

(3)删除表:

$this->table('user')->drop();

(4)删除字段

$this->table('user')
    ->removeColumn('test')//删除user表中的test字段
    ->save();

[2]:migrate命令:

migrate常用的命令有三个,分别为:

php think migrate:create CreateUser  #创建一个迁移类
php think migrate:run  #执行迁移
php think migrate:rollback #迁移回滚


# thinkphp  # 中不  # 命令行  # 我一  # 中有  # 要注意  # 给大家  # 分别为  # 会去  # 创建一个  # 时需 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Laravel如何生成PDF或Excel文件_Laravel文档导出工具与使用教程  如何用好域名打造高点击率的自主建站?  大学网站设计制作软件有哪些,如何将网站制作成自己app?  如何解决hover在ie6中的兼容性问题  如何快速搭建FTP站点实现文件共享?  如何确认建站备案号应放置的具体位置?  Laravel怎么实现前端Toast弹窗提示_Laravel Session闪存数据Flash传递给前端【方法】  新三国志曹操传主线渭水交兵攻略  Laravel如何保护应用免受CSRF攻击?(原理和示例)  如何在万网自助建站中设置域名及备案?  如何用wdcp快速搭建高效网站?  微信小程序 五星评分(包括半颗星评分)实例代码  Laravel怎么多语言本地化设置_Laravel语言包翻译与Locale动态切换【手册】  LinuxCD持续部署教程_自动发布与回滚机制  JavaScript如何实现音频处理_Web Audio API如何工作?  如何在阿里云完成域名注册与建站?  Laravel集合Collection怎么用_Laravel集合常用函数详解  网站制作报价单模板图片,小松挖机官方网站报价?  如何用腾讯建站主机快速创建免费网站?  宙斯浏览器文件分类查看教程 快速筛选视频文档与图片方法  浅谈javascript alert和confirm的美化  电视网站制作tvbox接口,云海电视怎样自定义添加电视源?  Laravel如何创建自定义Facades?(详细步骤)  香港服务器网站推广:SEO优化与外贸独立站搭建策略  如何在建站宝盒中设置产品搜索功能?  Laravel如何清理系统缓存命令_Laravel清除路由配置及视图缓存的方法【总结】  谷歌浏览器如何更改浏览器主题 Google Chrome主题设置教程  EditPlus中的正则表达式 实战(4)  Laravel如何升级到最新的版本_Laravel版本升级流程与兼容性处理  Laravel怎么创建控制器Controller_Laravel路由绑定与控制器逻辑编写【指南】  Laravel如何创建自定义Artisan命令?(代码示例)  移动端脚本框架Hammer.js  如何用手机制作网站和网页,手机移动端的网站能制作成中英双语的吗?  利用 Google AI 进行 YouTube 视频 SEO 描述优化  如何快速生成可下载的建站源码工具?  海南网站制作公司有哪些,海口网是哪家的?  如何在阿里云虚拟机上搭建网站?步骤解析与避坑指南  标准网站视频模板制作软件,现在有哪个网站的视频编辑素材最齐全的,背景音乐、音效等?  重庆市网站制作公司,重庆招聘网站哪个好?  JavaScript Ajax实现异步通信  惠州网站建设制作推广,惠州市华视达文化传媒有限公司怎么样?  如何快速查询网站的真实建站时间?  三星网站视频制作教程下载,三星w23网页如何全屏?  Laravel表单请求验证类怎么用_Laravel Form Request分离验证逻辑教程  制作无缝贴图网站有哪些,3dmax无缝贴图怎么调?  Laravel N+1查询问题如何解决_Eloquent预加载(Eager Loading)优化数据库查询  Laravel Asset编译怎么配置_Laravel Vite前端构建工具使用  Laravel的辅助函数有哪些_Laravel常用Helpers函数提高开发效率  Linux安全能力提升路径_长期防护思维说明【指导】  如何实现建站之星域名转发设置?