Loading

FastAdmin 下 Migrate 的安装使用

Fastadmin下安装使用Migrate数据库迁移工具

由于Fastadmin使用的Thinkphp框架为5.0.x 所以 Migrate版本也只能支持到 1.*
此处还需要注意的是,composer 当前为2.0版本,然而Fastadmin还是使用的composer 1.0版本,所以composer版本也要下载1版本

1. 安装

composer require topthink/think-migration=1.*

2. 查看下是否有 migrate 命令

php think

3. 创建迁移类(首字母必须大写)

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

php think migrate:create CreateUserTable

注:创建一个新的数据迁移类,php think migrate:create ,文件名须采用驼峰命名法
文件会在database/migrations 下面生成一个文件

4. 在migrate中有三个方法

up:在migrate:run时执行(前提是文件中不存在change方法)
down:在migrate:rollback时执行(前提是文件中不存在change方法)
change:migrate:run 和migrate:rollback时执行 (如果存在该方法 则不会去执行up 与down)
下面就是一个一份migrate文件:

<?php
use think\migration\Migrator;
use think\migration\db\Column;

class CreateUserTable extends Migrator
{
    /**
     * 建立用户表
     */
    public function up()
    {
        $table = $this->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(添加外键)

5. 完成数据迁移工作 migrate:run

php think migrate:run

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

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

php think send:create UserSeeder

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

<?php

use think\migration\Seeder;

class UserTableSeeder extends Seeder
{
    /**
     * Run Method.
     *
     * Write your database seeder using this method.
     *
     * More information on writing seeders is available here:
     * http://docs.phinx.org/en/latest/seeding.html
     */
    public function run()
    {
        $data  =
           [
               'username'        =>  'admin' ,
               'nickname'        =>  'Bob',
               'password'        =>  '9OHkSqf4SZkZNkMuCzTwU58KSKF7qblCLgJKq6GuWjc',
               'salt'            =>  'qfin3eg8e4g0c4okgkkg4cc04gcscwk ',
               'login_status'    =>  '1',
               'login_code'      =>  '123456',
               'last_login_ip'   =>  '127.0.0.1',
               'last_login_time' =>  getDateTime(),
               'create_time'     =>  getDateTime(),
               'update_time'     =>  getDateTime(),
            ];
        $this->table('user')->insert($data)->save();
    }
}

7. 开始进行数据库填充 send:run

php think seed:run

posted @ 2021-02-23 11:35  纯白、色  阅读(365)  评论(0编辑  收藏  举报