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

相关推荐

  • wordpress 绑定多个域名方法

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

    记事本 2023年11月18日
  • ThinkPHP6(PHP)链接达梦数据库配置

    ThinkPHP6(PHP)不能直接通过现有的扩展和代码直接连接达梦数据库,要通过先在PHP中安装达梦的PDO驱动(扩展)和DM驱动(扩展),要在安装达梦的时候勾选驱动(如果有也可…

    2023年11月19日
  • 宝塔面板一键迁移网站及数据库

    两个服务器间迁移数据太麻烦了,宝塔面板中有宝塔一键迁移插件安装上,注意是在要迁出数据的服务器上安装,安装完成后,在一键迁移插件设置中输入 新服务器的面板地址及面板API密钥。按照提…

    2023年11月18日
  • 服务器编译安装PHP7.4

    1、安装基础组件,为后期安装准备 安装oniguruma 安装libsodium 安装PHP # gmp 使用 –with-gmp 不使用  –enable-gmp # …

    记事本 2023年11月18日
  • laravel、thinkphp 打印getLastSql

    laravel打印最后执行sql语句 ThinkPHP 输出最后执行sql,可以在语句后面直接输出

    记事本 2025年1月24日
  • Mac系统下PhpStorm试用版下载地址

    PhpStorm 是 JetBrains 公司开发的一款商业的PHP集成开发工具,旨在提高用户效率,可深刻理解用户的编码,提供智能代码补全,快速导航以及即时错误检查。 Mac系统,…

    2024年3月16日
  • CentOS免密登录

    CentOS免密登录需要配置SSH登录密码与密钥身份验证。以下是一个简单的步骤: 此外,为了方便使用,可以设置别名,将登录命令写入到配置文件中。例如,在配置文件中添加别名alias…

    记事本 2023年12月27日
  • 城市分站站群-轻松让你收录破百万

    你是否还为你的网站没有收录而烦恼?不要慌,多城市分站站群,可以轻松让你的网站收录突破百万。多城市分站就是能够让你的网站自动生成全国3000多个县级及以上城市的分站系统,并且能够在你…

    2022年11月18日
  • 宝塔面板安装nginx/php/mysql

    安装完宝塔面板后,使用生成的用户名密码登录到服务器,首次登录时会出现用户协议,滑到最底下后点击 我已阅读并同意 进入面板 输入宝塔的账号密码进行绑定,如果没有账号点击未有账号,免费…

    2023年11月18日
  • 迅时网关默认IP及用户名

    MX120G是迅时推出的大容量、高性能、高可靠的语音接入网关,支持完备的办公电话功能,提供灵活多样的接入手段。MX120G具有极高的性价比,特别适用于大型呼叫中心和高端IP语音集成…

    2018年11月18日

发表回复

登录后才能评论
WeChat