zoukankan      html  css  js  c++  java
  • 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 thinkmigrationMigrator;
    use thinkmigrationdbColumn;
    
    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 thinkmigrationSeeder;
    
    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

  • 相关阅读:
    linux MySQL 初始化数据库
    linux 建立 MySQL 账号
    linux MySQL 安装
    Background-Size
    .net文件压缩和解压及中文文件夹名称乱码问题
    C# 浅拷贝与深拷贝区别
    移动端手势库hammerJS 2.0.4官方文档翻译
    期待已久的2012年度最佳jQuery插件揭晓
    Hammer.js
    jQuery Validate验证框架详解
  • 原文地址:https://www.cnblogs.com/jkcx/p/14435137.html
Copyright © 2011-2022 走看看