亚洲精品成人_精品成人一区_999视频在线播放_免费黄色在线_亚洲成人久久久_久久www免费视频

db-migrate

參照Laravel開發的easyswoole數據庫版本遷移工具。

組件要求

  • php: >=7.1.0
  • easyswoole/command: ^1.1
  • easyswoole/component: ^2.0
  • easyswoole/ddl: ^1.0
  • easyswoole/mysqli: ^2.2
  • easyswoole/spl: ^1.0
  • easyswoole/utility: ^1.0

安裝方法

composer require easyswoole/db-migrate

倉庫地址

easyswoole/db-migrate

基本使用

在全局 boostrap 事件中注冊 MigrateCommand 并添加配置信息

bootstrap.php

\EasySwoole\Command\CommandManager::getInstance()->addCommand(new \EasySwoole\DatabaseMigrate\MigrateCommand());
$config = new \EasySwoole\DatabaseMigrate\Config\Config();
// 數據地址
$config->setHost("127.0.0.1");
// 數據庫端口
$config->setPort(3306);
// 數據庫用戶名
$config->setUser("root");
// 數據庫密碼
$config->setPassword("123456");
// 數據庫庫名
$config->setDatabase("easyswoole");
// 數據庫超時時長
$config->setTimeout(5.0);
// 數據庫字符集
$config->setCharset("utf8mb4");
//===========可選配置修改項,以下參數均有默認值===========
// 遷移記錄的數據庫表名
$config->setMigrateTable("migrations");
// 遷移文件目錄的絕對路徑
$config->setMigratePath(EASYSWOOLE_ROOT . '/Database/Migrates/');
// 遷移模板文件的絕對路徑
$config->setMigrateTemplate(EASYSWOOLE_ROOT . '/vendor/easyswoole/db-migrate/src/Resource/migrate._php');
// 遷移模板類的類名
$config->setMigrateTemplateClassName("MigratorClassName");
// 遷移模板類的表名
$config->setMigrateTemplateTableName("MigratorTableName");
// 遷移模板創建表的模板文件的絕對路徑
$config->setMigrateCreateTemplate(EASYSWOOLE_ROOT . '/vendor/easyswoole/db-migrate/src/Resource/migrate_create._php');
// 遷移模板修改表的模板文件的絕對路徑
$config->setMigrateAlterTemplate(EASYSWOOLE_ROOT . '/vendor/easyswoole/db-migrate/src/Resource/migrate_alter._php');
// 遷移模板刪除表的模板文件的絕對路徑
$config->setMigrateDropTemplate(EASYSWOOLE_ROOT . '/vendor/easyswoole/db-migrate/src/Resource/migrate_drop._php');
// 數據填充目錄絕對路徑
$config->setSeederPath(EASYSWOOLE_ROOT . '/Database/Seeds/');
// 數據填充模板類的類名
$config->setSeederTemplateClassName("SeederClassName");
// 數據填充模板文件的絕對路徑
$config->setSeederTemplate(EASYSWOOLE_ROOT . '/vendor/easyswoole/db-migrate/src/Resource/seeder._php');
// 逆向生成遷移文件的模板文件絕對路徑
$config->setMigrateGenerateTemplate(EASYSWOOLE_ROOT . '/vendor/easyswoole/db-migrate/src/Resource/migrate_generate._php');
// 逆向生成遷移模板SQL語句的DDL代碼塊
$config->setMigrateTemplateDdlSyntax("DDLSyntax");
\EasySwoole\DatabaseMigrate\MigrateManager::getInstance($config);

如果不自定義setMigratePathsetSeederPath配置項,所有遷移命令必須在項目根目錄(固定目錄)下執行

執行 php easyswoole.php migrate -h

php easyswoole.php migrate -h
Database migrate tool

Usage:
  easyswoole migrate ACTION [--opts ...]

Actions:
  create    Create the migration repository
  generate  Generate migration repository for existing tables
  run       Run all migrations
  rollback  Rollback the last database migration
  reset     Rollback all database migrations
  seed      Data filling tool
  status    Show the status of each migration

Options:
  -h, --help  Get help

create

創建一個遷移模板

當需要新建表、修改表、刪除表時,create命令可以創建一個簡單的遷移模板文件

可用操作選項:

  • --alter:生成一個用于修改表的遷移模板
    • 示例:php easyswoole.php migrate create --alter=TableName
  • --create:生成一個用于新建表的遷移模板
    • 示例:php easyswoole.php migrate create --create=TableName
  • --drop:生成一個用于刪除表的遷移模板
    • 示例:php easyswoole.php migrate create --drop=TableName
  • --table:生成一個基礎的遷移模板
    • 示例:php easyswoole.php migrate create --table=TableName 等同于 php easyswoole.php migrate create TableName

操作會在遷移文件目錄生成一個類似文件名為2021_04_08_082914_user.php的文件,代碼類似如下,對應操作使用的是 easyswoole/ddl 組件方法

<?php

use EasySwoole\DDL\Blueprint\Create\Table as CreateTable;
use EasySwoole\DDL\Blueprint\Alter\Table as AlterTable;
use EasySwoole\DDL\Blueprint\Drop\Table as DropTable;
use EasySwoole\DDL\DDLBuilder;
use EasySwoole\DDL\Enum\Character;
use EasySwoole\DDL\Enum\Engine;

/**
 * migrate create
 * Class User
 */
class User
{
    /**
     * migrate run
     * @return string
     */
    public function up()
    {
        return DDLBuilder::create('User',function (CreateTable $table){
            $table->setIfNotExists(true);
        });
    }

    /**
     * migrate rollback
     * @return string
     */
    public function down()
    {
        return DDLBuilder::dropIfExists('User');
    }
}

generate

對已存在的表生成適配當前遷移工具的遷移模板

對于已經啟動的項目沒有做版本遷移,generate命令可以對已存在的表逆向生成遷移文件

對已存在的表生成適配當前遷移工具的遷移模板

可用操作選項:

  • --tables:指定要生成遷移模板的表,多個表用 ',' 隔開
    • 示例:php easyswoole.php migrate generate --tables=table1,table2
  • --ignore:指定要忽略生成遷移模板的表,多個表用 ',' 隔開
    • 示例:php easyswoole.php migrate generate --ignore=table1,table2

run

對所有未遷移的文件執行遷移操作

rollback

回滾遷移記錄,默認回滾上一次的遷移,指定操作相關參數可以從status命令中查看

可用操作選項:

  • --batch:指定要回滾的批次號
    • 示例:php easyswoole.php migrate rollback --batch=2
  • --id:指定要回滾的遷移ID
    • 示例:php easyswoole.php migrate rollback --id=2

reset

根據遷移表的記錄,一次性回滾所有遷移

seed

數據填充工具

不加操作項即為執行填充數據操作,添加操作項即為創建填充模板

生成模板文件之后,方法內的操作使用 easyswoole/mysqli 做數據填充,

可用操作選項:

  • --create:創建一個數據填充模板
    • 示例:php easyswoole.php migrate seed --create=UserTable
  • 直接填寫文件名或者類名,即為執行指定填充文件(多個文件用 ',' 隔開)
    • 示例:php easyswoole.php migrate seed UserTable,UserInfoTable.php
  • 直接執行seed命令為執行數據填充目錄下所有填充操作
    • 示例:php easyswoole.php migrate seed

status

遷移狀態

展示成功遷移的數據,即為遷移表內的數據

亚洲精品成人_精品成人一区_999视频在线播放_免费黄色在线_亚洲成人久久久_久久www免费视频
  • <kbd id="eqi2k"><code id="eqi2k"></code></kbd><cite id="eqi2k"><tbody id="eqi2k"></tbody></cite>
    亚洲欧洲精品一区二区| 亚洲欧美视频| 欧美精品v日韩精品v国产精品| 亚洲电影一二三区| 欧美日韩另类综合| 亚欧成人精品| 久久精品成人一区二区三区蜜臀| 天堂精品一区二区三区| 好看的日韩av电影| 久久久久久国产精品一区| 鲁丝一区鲁丝二区鲁丝三区| 欧美一区二区在线| 亚洲最新在线| 久久亚洲精品欧美| 精品99视频| 国产精品国模大尺度私拍| 亚洲丰满在线| 亚洲一区二区三区午夜| 国产在线一区二区三区欧美| 欧美日本一区二区视频在线观看 | 欧美日韩国产免费一区二区三区| 中文字幕av日韩精品| 乱码第一页成人| 亚洲精品一区二区三| 性欧美长视频| 亚洲一区二区在| 99久久综合狠狠综合久久止 | 亚洲一卡二卡三卡| 久久精品盗摄| 中文网丁香综合网| 国产精品中出一区二区三区| 欧美精品日韩| 国内一区二区三区在线视频| 伊人久久婷婷色综合98网| 久久久久久久久久久久久久久久av | 国产精品v欧美精品v日韩| 国精品一区二区| 免费看成人片| 久热精品在线| 激情综合电影网| 99在线视频免费观看| 污视频在线免费观看一区二区三区| 亚洲专区免费| 欧美 日韩 国产在线| 国产久一道中文一区| 一区二区三区国产盗摄| 亚洲三区视频| 蜜桃日韩视频| 99国产在线观看| 国产亚洲毛片在线| 欧美国产综合| 性刺激综合网| 久久久福利视频| 91手机在线观看| 国产亚洲欧美一区二区| 午夜欧美精品| 少妇精品久久久久久久久久| 国产精品区一区二区三含羞草| 亚洲精品麻豆| 国产在线日韩| 欧美日韩综合| 欧美激情四色| 欧美激情性爽国产精品17p| 日本中文不卡| 欧美日韩综合另类| 国产日韩在线一区二区三区| 久久久精品国产一区二区三区| 9色国产精品| 亚洲精品日韩精品| 亚洲天堂成人| 激情婷婷久久| 亚洲欧洲日韩综合二区| 国产精品xvideos88| 欧美成人一品| 欧美日韩国产一区精品一区| 亚洲欧美日韩精品久久久 | 国产精品毛片va一区二区三区| 欧美一区二区在线| 欧美日韩精品免费看| 六月婷婷久久| 日本免费高清一区二区| 日韩av影视| 在线成人性视频| 欧美久久九九| 在线播放不卡| 夜夜精品视频| 久久婷婷丁香| 国产a一区二区| 国产一区视频观看| 欧美乱偷一区二区三区在线| 欧美婷婷久久| 中文字幕一区二区三区四区五区六区| 在线观看一区二区三区三州 | 中文字幕中文字幕在线中心一区| 一区二区成人国产精品| 欧美精品一区二区三区久久久竹菊| 国内精品亚洲| 欧美一级二区| 精品国产一区二区三区四区精华| 欧美动漫一区二区| 中文字幕中文字幕99| 亚洲人人精品| av电影成人| 欧美一级日本a级v片| 欧美国产综合| 香蕉久久夜色| 蜜桃传媒视频麻豆第一区免费观看| 色涩成人影视在线播放| 黄色精品免费| 不卡一卡2卡3卡4卡精品在| 久久久亚洲综合网站| 中文字幕99| 欧美中文字幕| 欧美精品亚洲| 伊人久久婷婷色综合98网| 久久国产免费| 日本一区二区三区视频免费看| 欧美激情综合| 99九九视频| 中文一区一区三区免费| 男女精品视频| 亚洲国产精品视频一区| 亚洲少妇自拍| 欧美日韩一区二区三区在线观看免| 欧美日韩亚洲一区三区| 久久综合影音| 欧美高清一区| 国产精品麻豆免费版| 在线视频不卡一区二区三区| 亚洲在线电影| 一本一道久久久a久久久精品91| 亚洲一区国产一区| 亚洲欧美精品| 99re国产视频| 国内精品久久久久久久97牛牛| 国产精品白丝jk白祙| 亚洲一级高清| 玛丽玛丽电影原版免费观看1977| 亚洲精品精选| 婷婷久久青草热一区二区| 久久综合给合久久狠狠色| 欧美一区二区三区免费看| 97久久夜色精品国产九色| 国产精品红桃| 欧美高清性xxxxhd| 久久蜜桃资源一区二区老牛| 午夜精品视频| 日本免费高清一区| 狼狼综合久久久久综合网| 欧美午夜精品理论片a级大开眼界 欧美午夜精品久久久久免费视 | 亚洲精品激情| 亚洲a∨一区二区三区| 老司机久久99久久精品播放免费| 欧美日韩三级| 色之综合天天综合色天天棕色 | 91在线播放视频| 在线精品一区| 欧美一区二区三区另类| 开心色怡人综合网站| 99久久久久国产精品免费| 亚洲欧洲日夜超级视频| 在线观看一区二区三区三州 | 夜夜爽www精品| 午夜久久资源| 亚洲一区免费看| 蜜桃精品久久久久久久免费影院| 久久综合久久久| 一区二区三区四区五区精品| 欧美 日韩 国产在线| 日韩精品资源| 欧美日韩一区综合| 久久综合中文色婷婷| 国产精品免费区二区三区观看| 国产伦精品一区二区三区四区免费 | 粉嫩精品一区二区三区在线观看| 在线观看一区| 一区在线视频观看| 欧美日韩国产一区精品一区| 亚洲午夜精品一区二区| 午夜精品一区二区三区四区| 久久综合中文色婷婷| 韩国成人一区| 精品国产电影| 欧美成人一区二区在线| 国产综合第一页| 久久久久网址| 欧美日韩电影一区二区三区| 久久婷婷人人澡人人喊人人爽| 国产综合 伊人色| 美乳视频一区二区| 日本在线观看一区| 天堂√在线观看一区二区| 亚洲欧美日韩在线综合| 亚洲精品一区二区三| 中文字幕欧美日韩一区二区三区| 欧美一区视频| 91久久夜色精品国产九色| 亚洲深夜av| 99伊人久久| 欧洲国产精品|