亚洲精品成人_精品成人一区_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>
    在线不卡视频| 中文字幕精品一区日韩 | 欧美激情综合| 韩国一区二区三区在线观看| 亚洲性图久久| 久久久久欧美精品| 欧美日韩亚洲在线| 欧美激情麻豆| 国产福利一区二区三区在线观看| 久久综合色一本| 欧美日韩岛国| 成人在线观看网址| 中文字幕中文字幕在线中一区高清 | 亚洲a∨一区二区三区| 亚洲图色在线| y111111国产精品久久婷婷| 日韩久久精品一区二区三区| 黄色成人精品网站| 精品91免费| 日韩午夜高潮| 日韩久久精品一区二区三区| 99精品99| 亚洲一区二区三区乱码| 99久久99久久精品国产片| 亚洲欧洲精品一区| 鬼打鬼之黄金道士1992林正英| 一区二区三区我不卡| 99porn视频在线| 亚洲视频久久| 久久综合九九| 久久国产99| 亚洲午夜精品一区二区| 欧美久久综合性欧美| 国产麻豆综合| 国精品一区二区三区| 欧美日本韩国国产| 久久综合图片| 亚洲巨乳在线| 欧美日韩网址| 日韩国产精品一区二区三区| 999视频在线观看| 国产欧美日韩亚洲一区二区三区| 欧美在线视频一区二区三区| 91青青草免费观看| 国产精品久久久久久久久婷婷| 欧洲亚洲一区二区| 黄色99视频| av成人午夜| 久久亚洲一区| 久久久精品五月天| 国产精品综合| 国产欧美不卡| 亚洲看片一区| 亚洲高清毛片| 国产综合欧美在线看| 亚洲欧美日本国产有色| 欧美凹凸一区二区三区视频| 懂色中文一区二区三区在线视频| 国产日韩欧美一区二区三区在线观看 | 日韩欧美一区二区视频在线播放| 久久婷婷一区| 另类国产ts人妖高潮视频| 欧美日韩无遮挡| 欧美日韩少妇| 影音先锋日韩资源| 黄色亚洲在线| 91久久国产自产拍夜夜嗨| 欧美精品一区在线| 国语精品中文字幕| 狠狠色噜噜狠狠狠狠色吗综合| 欧美久久久久久久| 欧美三级在线| 91久久夜色精品国产九色| 亚洲成色精品| 中文精品视频| 久久久久免费| 国产视色精品亚洲一区二区| aa成人免费视频| 久久66热这里只有精品| 久久综合精品一区| 亚洲激情啪啪| 激情久久一区| 久久福利电影| 久久99欧美| 一区二区三区久久网| 欧美日韩亚洲国产精品| 亚洲性图久久| 国产精品一二| 国模精品娜娜一二三区| 欧美一区二区三区四区五区六区| 亚洲ai欧洲av| 亚洲精品麻豆| 成人免费视频观看视频| 久久九九视频| 综合国产精品久久久| 亚洲日本激情| 国产亚洲情侣一区二区无| 亚洲成人精品电影在线观看| 欧美视频观看一区| 91国产在线免费观看| 日本10禁啪啪无遮挡免费一区二区 | 欧美三日本三级少妇三99| 台湾成人av| 亚洲精品韩国| 精品国产_亚洲人成在线| 日韩精品久久一区| 亚洲国内在线| 久久精品国产精品青草色艺 | 91久久精品国产91久久性色tv| 亚洲影音先锋| 日韩国产精品一区二区| 亚洲美女色禁图| 精品视频免费观看| 黄色精品一区| 久久99精品久久久久久秒播放器| 一区二区三区在线视频看| 性色一区二区| 伊人色综合久久天天五月婷| 噜噜噜躁狠狠躁狠狠精品视频| 牛人盗摄一区二区三区视频| 亚洲巨乳在线| 欧美一区观看| 久久久久99| 国内精品美女在线观看| 国产伦精品一区二区三区高清版| 午夜视频一区| 美女亚洲精品| 2020国产精品久久精品不卡| 欧美高清视频一区| 久久99精品久久久久久三级 | 欧美色图亚洲自拍| 亚洲综合社区| 综合操久久久| 精品一区日韩成人| 国产美女诱惑一区二区| 在线丝袜欧美日韩制服| 国产一区免费在线| 99人久久精品视频最新地址| 日韩偷拍一区二区| 国产精品推荐精品| 亚洲欧美日本日韩| 国产综合色产| 一区二区视频在线观看| 麻豆精品蜜桃一区二区三区| 老鸭窝毛片一区二区三区| 狠狠色综合网| 欧美大片专区| 一区二区免费电影| 青青草国产精品| 久久久com| 国产成人精品日本亚洲11| 99亚洲一区二区| 欧美特黄一区| 欧美日韩在线播放一区二区| 日韩成人av电影在线| 国产综合色一区二区三区| 美女网站久久| 国产手机视频一区二区| 激情欧美亚洲| 亚洲福利电影| 亚洲精品麻豆| 99精品国产99久久久久久福利| 欧美激情第六页| 一区二区精品免费视频| 一本一道久久久a久久久精品91| 欧美日韩大片一区二区三区| 狠狠色噜噜狠狠色综合久| 韩国一区二区三区美女美女秀| 国产伦精品一区二区三区在线 | 97人人模人人爽人人喊38tv| 国产精品美女| 久久久国产精品一区二区中文 | 91成人理论电影| 99久久无色码| 精品久久久久久中文字幕动漫| 精品蜜桃一区二区三区| 久久久精品国产一区二区三区| 久久久一本精品99久久精品| 免费在线观看91| 欧美一区二视频在线免费观看| 亚洲图色在线| 亚洲高清网站| 鲁大师影院一区二区三区| www.久久艹| 欧美一区1区三区3区公司 | 亚洲成人在线| 久久av一区| 狠狠色综合色区| 日产精品久久久一区二区| 亚洲成色最大综合在线| 国产精品av久久久久久麻豆网| 日韩午夜视频在线观看| 另类天堂av| 欧美综合激情| 亚洲午夜精品久久久久久浪潮| 国产精品腿扒开做爽爽爽挤奶网站| aa成人免费视频| 亚洲精品一区二区三区樱花 | 国产精品乱码视频| 日本电影一区二区三区|