视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
thinkPHP如何使用migrate实现数据库迁移
2020-11-02 18:44:51 责编:小采
文档
 下面由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 #迁移回滚

下载本文
显示全文
专题