TP5 数据库迁移工具 migrate 教程
第一步: 安装compose,不赘述,安装详情可百度或查看https://pkg.phpcomposer.com/#how-to-install-composer
第二步: 通过 composer 安装ThinkPHP 5.*
composer create-project topthink/think=5.0.* tp5 --prefer-dist
第三步: 给TP5 安装 migration,在项目根目录shift+右键,在当前目录打开cmd窗口,在cmd窗口输入
composer require topthink/think-migration=1.*
备注:不要安装2.0版本的扩展 5.0只支持1.*的扩展,大家可以在项目的根目录composer.json里面 找到 think-migration 后面改成 1.*
第四步: 在cmd窗口输入
php think
若出现
表示安装成功
第五步: 创建迁移类,前提:appplication 下面的 database.php 文件必须要配置好数据库
php think migrate:create CreateUserTable
备注:CreateUserTable为表名,首字母必须大写,会在database/migrations 下面生成一个文件

第六步:
在migrate中有三个方法
up:在migrate:run时执行(前提是文件中不存在change方法)
down:在migrate:rollback时执行(前提是文件中不存在change方法)
change:migrate:run 和migrate:rollback时执行 (如果存在该方法 则不会去执行up 与down)
在创建完文件类过后删除里面的change方法
下面就是一个一份migrate文件:
table('user');
$table->addColumn('username', 'string',array('limit' => 32,'default'=>'','comment'=>'用户名'))
->addColumn('nickname', 'string',array('limit' => 32,'default'=>'','comment'=>'昵称'))
->addColumn('password', 'string',array('limit' => 100,'default'=>'','comment'=>'用户密码'))
->addColumn('salt', 'string',array('limit' => 50,'default'=>'','comment'=>'盐'))
->addColumn('login_status', 'integer',array('limit' => 11,'default'=>0,'comment'=>'登陆状态'))
->addColumn('login_code', 'string',array('limit' => 32,'default'=>0,'comment'=>'排他性登陆标识'))
->addColumn('last_login_ip', 'string',array('limit' => 30,'default'=>0,'comment'=>'最后登录IP'))
->addColumn('last_login_time', 'timestamp',array('comment'=>'最后登录时间'))
->addTimestamps() //默认生成create_time和update_time两个字段
->addIndex(array('username'), array('unique' => true))
->create();
}
/**
* 提供回滚的删除用户表方法
*/
public function down(){
$this->dropTable('user');
}
createTable(创建表)
renameTable(重命名表)
addColumn(添加字段)
renameColumn(重命名字段)
addIndex(添加索引)
addForeignKey(添加外键)
第七步:完成数据迁移工作 migrate:run
php think migrate:run
备注:如果迁移错误可以通过 migrate:rollback -t 回滚到制定的版本
第八步: 创建数据库的填充文件 send:create
php think send:create UserSeeder
第九步: 开始进行数据库填充 send:run
php think seed:run
备注:此博客参考https://blog.csdn.net/LTY__NI/article/details/84313539
TP5 数据库迁移工具 migrate 教程的更多相关文章
- PHP系列 | ThinkPHP5数据库迁移工具 migration
了解更多,请关注微信公众号 ThinkPHP5数据库迁移工具 migration 什么是Migration? migration用谷歌翻译是移民的意思,在PHP中我们将它理解为迁移,将Migratio ...
- flask-admin章节三:数据库迁移工具 alembic初步使用
1. 概述 基于flask框架构建web,一般会使用sqlchemy(在flask中使用sqlchemy可以参考这里)作为数据库引擎. 这样业务的逻辑就可以做到不跟具体的数据库类型相耦合,具体后端业务 ...
- php大力力 [050节] 兄弟连高洛峰 PHP教程 2014年[数据库、PDO教程]
php大力力 [050节] 兄弟连高洛峰 PHP教程 2014年[数据库.PDO教程] 第14章 数据库252.[2014]兄弟连高洛峰 PHP教程14.1.1 复习数据库[已发布,点击下载]253. ...
- TP5调用微信JSSDK 教程 - 测试成功案例
前提:必需了解TP5的全局配置,扩展目录,composer,依赖注入的概念: 第一步:首先配置加载官方JSSDK类 "autoload": { "files": ...
- MySQL数据库的安装教程及相关问题
MySQL数据库的安装教程及相关问题 2018-07-13 MySQL数据库的下载及安装教程 问题1:Authentication plugin 'caching_sha2_password' can ...
- TP5数据库操作方法
一.TP5数据库操作方法 1.name()方法作用 : 指定默认的数据表名(不含前缀)示例 : Db::name(‘weiba_post’);返回 : Db对象 2.setTable()方法作用 : ...
- 雷林鹏分享:Ruby 数据库访问 - DBI 教程
Ruby 数据库访问 - DBI 教程 本章节将向您讲解如何使用 Ruby 访问数据库.Ruby DBI 模块为 Ruby 脚本提供了类似于 Perl DBI 模块的独立于数据库的接口. DBI 即 ...
- TP5数据库操作方法总结
一.TP5数据库操作方法 1.name()方法 作用 : 指定默认的数据表名(不含前缀) 示例 : Db::name('weiba_post'); 返回 : ...
- AndoridSQLite数据库开发基础教程(10)
AndoridSQLite数据库开发基础教程(10) 添加触发器 触发器(TRIGGER)是由事件来触发某个操作.这些事件包括INSERT.DELETE.UPDATE和UPDATE OF.当数据库系统 ...
随机推荐
- Git笔记整理
git 分支: &.创建分支 创建分支很简单:git branch <分支名> &.切换分支 git checkout <分支名& ...
- 不同浏览器中scrollHeight的比较
每个浏览器的兼容性不同所以就有了如下判断方案 document.body是DOM中Document对象里的body节点, document.documentElement是文档对象根节点(html)的 ...
- 备忘:移植ucos-III到stm32f103c8t6
由于本人对linux系统内核这块比较感兴趣,下一份工作想做linux驱动相关的:于是最近一旦有空都在研究linux内核源码,面对linux内核这个庞然大物,越看越觉得不能太过急躁,且由于还要工作,只能 ...
- PDF 补丁丁 0.6.0.3383 版发布(修复书签编辑器坐标定位错误的问题)
新的测试版本修复了书签编辑器坐标定位错误的问题. 另外,增加了鼠标双击关闭功能标签的功能.
- day48-python爬虫学习三
Python的urllib和urllib2模块都做与请求URL相关的操作,但他们提供不同的功能.他们两个最显着的差异如下: urllib2可以接受一个Request对象,并以此可以来设置一个URL的h ...
- git常用命令学习笔记
安装好git之后即可使用git来管理项目了,鼠标右键点击 git bash出现命令黑窗口,接下来执行git指令即可. https://git-scm.com/book/zh/v2 以下整理了git常用 ...
- python 生成器(generator)的生成方式
generator包括生成器和带yield的generator函数. 写了一个生成杨辉三角的小例子: # -*- coding:utf-8 -*- def triangles(): l = [1] w ...
- Apache代理转发http到https
site.conf ProxyPass /maps https://maps.googleapis.com/maps LoadModule proxy_module modules/mod_proxy ...
- 使用junit和eclemma进行简单的代码测试
1.Junit和Hamcrest的安装 可以在https://mvnrepository.com/上面下载所需要的Junit和Hamcrest的jar包,然后在项目中新建一个lib文件夹,将下载好的j ...
- web前端框架之Vue hello world
[博客园cnblogs笔者m-yb原创,转载请加本文博客链接,笔者github: https://github.com/mayangbo666,公众号aandb7,QQ群927113708] http ...