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安全能力提升路径_长期防护思维说明【指导】
如何实现建站之星域名转发设置?

