TP5数据库迁移

首先,准备工作当然是安装 compose  ,但是在这里我就不给大家讲解了,有兴趣的朋友可以点击下面的链接去学习

         https://pkg.phpcomposer.com/#how-to-install-composer 

  

  • 1、通过 composer  安装ThinkPHP 5.*
  • composer create-project topthink/think=5.0.* tp5  --prefer-dist

   

    2、进入项目根目录按住shift+鼠标右键选择在当前目录打开cmd,然后给TP5 安装 migration

composer require topthink/think-migration=1.*

       注:不要安装2.0版本的扩展 5.0只支持1.*的扩展,大家可以在项目的根目录composer.json里面       找到 think-migration 后面改成 1.*

 

    3、安装完成过后我们来查看下是否有 migrate 命令

php think

   

   好了,在命令行下运行查看帮助,可以看到新增的命令

 

   4、接下来我们通过 migrate:create 来创建迁移类(首字母必须大写)

     前提:appplication 下面的 database.php 文件必须要配置好数据库

php think migrate:create CreateUserTable

   注:创建一个新的数据迁移类,php think migrate:create ,文件名须采用驼峰命名法

​       文件会在database/migrations 下面生成一个文件

       

 

  5、 在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(添加外键)

  •  

   6、完成数据迁移工作 migrate:run

php think migrate:run

  注:如果迁移错误可以通过 migrate:rollback  -t 回滚到制定的版本

   7、接下来创建数据库的填充文件 send:create 

php think send:create UserSeeder

 下面是一个seender文件的详情:

  'admin' ,
                'nickname'        =>  'Bob',
                'password'        =>  '9OHkSqf4SZkZNkMuCzTwU58KSKF7qblCLgJKq6GuWjc',
                'salt'            =>  'qfin3eg8e4g0c4okgkkg4cc04gcscwk ',
                'login_status'    =>  '1',
                'login_code'      =>  '123456',
                'last_login_ip'   =>  '127.0.0.1',
                'last_login_time' =>  date('Y:m:d H:i:s',time()),
                'create_time'     =>  date('Y:m:d H:i:s',time()),
                'update_time'     =>  date('Y:m:d H:i:s',time()),
            ];
        $this->table('user')->insert($data)->save();
    }
}

 

  8、开始进行数据库填充 send:run

php think seed:run

 

 

Over....

好了,教程已经完了,又不懂的小伙伴可以联系我,欢迎大家随时提问。

[6]

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值