• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • dedecms
  • ecshop
  • z-blog
  • UcHome
  • UCenter
  • drupal
  • WordPress
  • 帝国cms
  • phpcms
  • 动易cms
  • phpwind
  • discuz
  • 科汛cms
  • 风讯cms
  • 建站教程
  • 运营技巧
您的位置:首页 > CMS教程 >建站教程 > ThinkPHP如何使用migrate实现数据库迁移

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

作者:站长图库 字体:[增加 减小] 来源:互联网 时间:2022-04-29

站长图库向大家介绍了ThinkPHP,migrate,数据库迁移等相关知识,希望对您有所帮助

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安装成功

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

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

1:创建迁移类

在命令行执行

php think migrate:create CreateUser

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

ThinkPHP如何使用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 #迁移回滚



分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • laravel与thinkphp之间的区别与优缺点
  • ThinkPhp5.1制作微信支付以及支付后的几种状态说明
  • ThinkPHP3.2.3如何从php5升级到php7
  • 详解thinkphp下部分内容的ajax无刷新分页
  • 你知道Thinkphp5.1让验证码在Electron-vue中怎么用?
  • 关于ThinkPHP的join关联查询不使用默认的表前缀
  • ThinkPHP5通过ajax插入图片并实时显示(完整代码)
  • 分析 thinkphp5 显示render不兼容问题
  • ThinkPHP5访问怎么去除/public/index.php
  • Thinkphp5.1详细讲解中间件的用法

相关文章

  • 2022-04-29PHP怎么实现正则去掉空格
  • 2022-04-29PHP中如何使用构造方法和this关键字?如何引入构造方法?
  • 2022-04-29PHP中如何利用compact创建数组
  • 2022-04-29CSS3背景图片固定滑动效果
  • 2022-04-29一分钟解决mysql_config not found的问题
  • 2022-04-29浅谈小程序怎么实现“五星评价”功能(支持点击+滑动)
  • 2022-04-29PhotoShop制作血渍污渍动画游戏文字效果教程
  • 2022-04-29Day.js :一个非常好用的轻量的处理时间和日期库
  • 2022-04-29Photoshop简单方法制作时尚的艺术字教程
  • 2022-04-29Photoshop制作破碎玻璃字体效果教程

文章分类

  • dedecms
  • ecshop
  • z-blog
  • UcHome
  • UCenter
  • drupal
  • WordPress
  • 帝国cms
  • phpcms
  • 动易cms
  • phpwind
  • discuz
  • 科汛cms
  • 风讯cms
  • 建站教程
  • 运营技巧

最近更新的内容

    • 关于uniApp editor微信滑动问题
    • 利用纹理素材及图层样式制作个性的金色纹理字
    • 利用滤镜及图层样式制作简单的积雪字
    • 提高网站排名的三个方法
    • 详解关于laravel自动路由
    • PS制作常用水晶按钮
    • 如何用PHP获取referer判断来路防止非法访问
    • WordPress如何创建page页面并添加跳转链接
    • DEDECMS注册成功页面加入马上激活链接转向注册邮
    • 为什么Javascript小数相减会出现一长串的小数位数?

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有