ThinkPHP 数据迁移使用

ThinkPHP数据库迁移工具可以将数据库结构和数据很容易的在不同的数据库之间管理迁移,使用起来也很方便。

composer require topthink/think-migration  //如果是 TP5 可能出现错误要安装 1.0版本
#composer require topthink/think-migration=1.0.* 
//执行命令,创建一个操作文件,一定要用大驼峰写法,如下
php think migrate:create AnyClassNameYouWant

执行后就会在项目根目录多一个database目录自动创建一个文件,就可以在里面添加你想要的操作了

可以使用 php think ,查看相关的命令,命令如下

ThinkPHP 数据迁移使用

php think migrate:create 创建迁移文件

php think migrate:run 运行迁移文件

php think migrate:rollback 回滚

php think migrate:status 查看迁移状态

迁移文件示例

<?php

use think\migration\Migrator;
use think\migration\db\Column;
 
class  AnyClassNameYouWant extends  Migrator
{
    /**
    * Change Method.
    *
    * Write your reversible migrations using this method.
    *
    * More information on writing migrations is available here:
    * http://docs.phinx.org/en/latest/migrations.html#the-abstractmigration-class
    *
    * The following commands can be used in this method and Phinx will
    * automatically reverse them when rolling back:
    *
    * createTable
    * renameTable
    * addColumn
    * renameColumn
    * addIndex
    * addForeignKey
    *
    * Remember to call "create()" or "update()" and NOT "save()" when working
    * with the Table class.
    */
    
    public  function  change()
    {
        // create the table
        $table  =  $this->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();
    }

}

字段相关设置可以参考下面

如果你想设置int 类型可以这样写
->addColumn('a', 'integer', ['limit' => '10','default' => 0,'signed'=>false,'comment'=>''])

如果你想设置bigint 类型可以这样写
->addColumn('g', 'biginteger', ['limit' => '10','default' => 0,'signed'=>false,'comment'=>'备注'])

如果你想设置tinyint类型可以这样写
->addColumn('h', 'integer', ['limit' => '255','default' => 0,'signed'=>false,'comment'=>''])

如果你想设置decimal类型可以这样写
->addColumn('j', 'decimal', ['precision'=>4,'scale'=>'2','default' => '0.00','comment'=>''])

如果你想设置set类型可以这样写
->addColumn('i', 'set', ['values' => ['1','2'],'default'=>'1','comment'=>''])

如果你想设置text类型可以这样写
->addColumn('k', 'text', ['default' => '','comment'=>''])

如果你想设置longtext类型可以这样写
->addColumn('l', 'text', ['limit' => '4294967295','default' => '','comment'=>''])

设置唯一索引 unique
->addIndex('order_id', array('unique' => true))

原创文章,作者:admin,如若转载,请注明出处:https://ntib.cn/320.html

(0)
adminadmin
上一篇 2023年11月22日 下午11:09
下一篇 2023年12月5日 下午2:31

相关推荐

  • 2024年还能不能通过买卖域名建站赚钱

    如何做好企业网站建设现在手机端用户越来越多,域名和网站的使用量逐渐的降低,好像域名都没那么重要了,那么现在还能不能通过买卖域名建站赚钱呢,好像也可以,但应该不会像最初那么容易了。 一方面通过电脑查信息…

    2023年11月22日
  • 阿里云轻量服务器配置及安装宝塔面板

    如何做好企业网站建设为什么选择轻量服务器? 1、轻量服务器比 ECS 同等服务器会便宜很多,如果是新用户还是可以考虑 ECS 的, 2、带宽大,轻量服务器 限峰值带宽30Mbps ,但是每月又流量限制…

    2023年11月18日
  • 最新Brizy 插件国内不能使用解决办法

    如何做好企业网站建设Brizy插件是一款适用于WordPress网站的可视化页面构建工具。它提供了一个直观且易于使用的页面编辑器,让用户可以通过拖放方式创建和设计自定义页面,而无需编写任何代码。 不过…

    2024年10月25日
  • wordpress 绑定多个域名方法

    如何做好企业网站建设WordPress在安装的时候会默认绑定当前的域名,如安装时域名为 a.com,在访问www.a.com时,会自动跳到a.com,绑定其它域名时也会跳转,给大家分享一下WordPr…

    记事本 2023年11月18日
  • windows 系统安装 PHP的redis扩展

    如何做好企业网站建设因为用windows系统开发PHP网站或应用,有一些需要用到redis,所有需要安装redis,默认是已经安装好了 PHP,首先需要下载redis,下载地址:https://git…

    2023年11月18日
  • git放弃本地修改代码全部使用远程

    如何做好企业网站建设git强制覆盖:    git fetch –all    git reset –hard origin/master    git pull  git强制覆盖本地命令(单条执行)…

    记事本 2023年11月18日
  • fastadmin 自定义下拉按钮如何自动弹出

    如何做好企业网站建设fastadmin添加自定义按钮时,如果带下拉菜单是,默认是需要点击才会弹出菜单,这样有点不方便,我们可以设置鼠标放上时,自动弹出,鼠标拿走就消失那种,可以在js index 方法…

    2023年12月11日
  • WordPress 配置WP SMTP 插件发送邮件

    如何做好企业网站建设WordPress 如果由发送邮件的需求时可以使用 WP SMTP 插件,发送邮件的场景有,注册验证、找回密码、客户下单、留言等等。WP SMTP 插件的配置也比较简单,下面以QQ…

    2023年11月18日
  • PHP安装OCI8扩展访问 Oracle 数据库

    如何做好企业网站建设1、安装oracle客户端 检查是否安装成功,安装成功时显示下图 2、修改 /etc/ld.so.conf,添加下方代码 3、添加软连接 4、添加环境变量 /etc/profile…

    2024年6月5日
  • nginx 配置 php-fpm时出现502解决办法

    如何做好企业网站建设一直使用面板来配置服务器环境,只需简单几步就可以配置好自己想要的web环境了,偶尔也需要不使用面板来配置 nginx+PHP 环境,一顿操作后,发现访问网站时返回 An error…

    2024年11月9日

发表回复

登录后才能评论
WeChat