ThinkPHP数据库迁移工具
创始人
2024-05-23 20:46:12
0

安装

composer require topthink/think-migration

创建迁移工具文件

//执行命令,创建一个操作文件,一定要用大驼峰写法,如下
php think migrate:create AnyClassNameYouWant
//执行完成后,会在项目根目录多一个database目录,这里面存放类库操作文件
//文件名类似/database/migrations/20190615151716_any_class_name_you_want.php

编辑文件

table('users',array('engine'=>'MyISAM'));$table->addColumn('username', 'string',array('limit'  =>  15,'default'=>'','comment'=>'用户名,登陆使用'))->addColumn('password', 'string',array('limit'  =>  32,'default'=>md5('123456'),'comment'=>'用户密码')) ->addColumn('login_status', 'boolean',array('limit'  =>  1,'default'=>0,'comment'=>'登陆状态'))->addColumn('login_code', 'string',array('limit'  =>  32,'default'=>0,'comment'=>'排他性登陆标识'))->addColumn('last_login_ip', 'integer',array('limit'  =>  11,'default'=>0,'comment'=>'最后登录IP'))->addColumn('last_login_time', 'datetime',array('default'=>0,'comment'=>'最后登录时间'))->addColumn('is_delete', 'boolean',array('limit'  =>  1,'default'=>0,'comment'=>'删除状态,1已删除'))->addIndex(array('username'), array('unique'  =>  true))->create();}}

执行迁移工具

php think migrate:run 

表支持的参数选项

选项描述
comment给表结构设置文本注释
row_format设置行记录模格式
engine表引擎 (默认 InnoDB)
collation表字符集 (默认 utf8\_general\_ci)
signed是否无符号 signed(默认 true)

常用列

  • biginteger
  • binary
  • boolean
  • date
  • datetime
  • decimal
  • float
  • integer
  • string
  • text
  • time
  • timestamp
  • uuid

所有的类型都支持的参数

OptionDescription
limit文本或者整型的长度
lengthlimit别名
default默认值
null允许 NULL 值 (不该给主键设置
after在哪个字段名后 (只对MySQL有效)
comment给列设置文本注释

索引的用法

      ->addIndex(['email','username'], ['limit' => ['email' => 5, 'username' => 2]])->addIndex('user_guid', ['limit' => 6])->addIndex('email',['type'=>'fulltext'])

如上面例子所示,默认是普通索引,mysql可设置生效复合索引,mysql可以设置fulltext.

自动版本升级降级

该项目可以升级和还原,就像git/svn一样rollback。

如果希望实现自动升级降级,那就把逻辑写在change方法里,只最终调用createupdate方法,不要调用save方法。

change方法内仅支持以下操作

  • createTable
  • renameTable
  • addColumn
  • renameColumn
  • addIndex
  • addForeignKey

如果真的有调用其他方法,可以写到updown方法里,这里的逻辑不支持自动还原,up写升级的逻辑,down写降级的逻辑。

    public function change(){// create the table$table = $this->table('user_logins');$table->addColumn('user_id', 'integer')->addColumn('created', 'datetime')->create();}/*** Migrate Up.*/public function up(){}/*** Migrate Down.*/public function down(){}

 

相关内容

热门资讯

喜欢穿一身黑的男生性格(喜欢穿... 今天百科达人给各位分享喜欢穿一身黑的男生性格的知识,其中也会对喜欢穿一身黑衣服的男人人好相处吗进行解...
发春是什么意思(思春和发春是什... 本篇文章极速百科给大家谈谈发春是什么意思,以及思春和发春是什么意思对应的知识点,希望对各位有所帮助,...
网络用语zl是什么意思(zl是... 今天给各位分享网络用语zl是什么意思的知识,其中也会对zl是啥意思是什么网络用语进行解释,如果能碰巧...
为什么酷狗音乐自己唱的歌不能下... 本篇文章极速百科小编给大家谈谈为什么酷狗音乐自己唱的歌不能下载到本地?,以及为什么酷狗下载的歌曲不是...
华为下载未安装的文件去哪找(华... 今天百科达人给各位分享华为下载未安装的文件去哪找的知识,其中也会对华为下载未安装的文件去哪找到进行解...
怎么往应用助手里添加应用(应用... 今天百科达人给各位分享怎么往应用助手里添加应用的知识,其中也会对应用助手怎么添加微信进行解释,如果能...
家里可以做假山养金鱼吗(假山能... 今天百科达人给各位分享家里可以做假山养金鱼吗的知识,其中也会对假山能放鱼缸里吗进行解释,如果能碰巧解...
四分五裂是什么生肖什么动物(四... 本篇文章极速百科小编给大家谈谈四分五裂是什么生肖什么动物,以及四分五裂打一生肖是什么对应的知识点,希...
一帆风顺二龙腾飞三阳开泰祝福语... 本篇文章极速百科给大家谈谈一帆风顺二龙腾飞三阳开泰祝福语,以及一帆风顺二龙腾飞三阳开泰祝福语结婚对应...
美团联名卡审核成功待激活(美团... 今天百科达人给各位分享美团联名卡审核成功待激活的知识,其中也会对美团联名卡审核未通过进行解释,如果能...