在线看片18_亚洲性吧_在线污_神马午夜达达兔_奇米色网_在线免费看污

db-migrate

參照Laravel開發(fā)的easyswoole數(shù)據(jù)庫(kù)版本遷移工具。

組件要求

  • 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

倉(cāng)庫(kù)地址

easyswoole/db-migrate

基本使用

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

bootstrap.php

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

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

執(zhí)行 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

創(chuàng)建一個(gè)遷移模板

當(dāng)需要新建表、修改表、刪除表時(shí),create命令可以創(chuàng)建一個(gè)簡(jiǎn)單的遷移模板文件

可用操作選項(xiàng):

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

操作會(huì)在遷移文件目錄生成一個(gè)類似文件名為2021_04_08_082914_user.php的文件,代碼類似如下,對(duì)應(yīng)操作使用的是 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

對(duì)已存在的表生成適配當(dāng)前遷移工具的遷移模板

對(duì)于已經(jīng)啟動(dòng)的項(xiàng)目沒有做版本遷移,generate命令可以對(duì)已存在的表逆向生成遷移文件

對(duì)已存在的表生成適配當(dāng)前遷移工具的遷移模板

可用操作選項(xiàng):

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

run

對(duì)所有未遷移的文件執(zhí)行遷移操作

rollback

回滾遷移記錄,默認(rèn)回滾上一次的遷移,指定操作相關(guān)參數(shù)可以從status命令中查看

可用操作選項(xiàng):

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

reset

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

seed

數(shù)據(jù)填充工具

不加操作項(xiàng)即為執(zhí)行填充數(shù)據(jù)操作,添加操作項(xiàng)即為創(chuàng)建填充模板

生成模板文件之后,方法內(nèi)的操作使用 easyswoole/mysqli 做數(shù)據(jù)填充,

可用操作選項(xiàng):

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

status

遷移狀態(tài)

展示成功遷移的數(shù)據(jù),即為遷移表內(nèi)的數(shù)據(jù)

主站蜘蛛池模板: 欧美中文字幕在线观看 | 免费观看黄色一级视频 | 国产码视频 | 国产成人精品免费看在线播放 | 亚洲aaaaaa| 小泽玛利亚一区二区三区视频 | 美国特色黄a大片 | 亚洲黄色影院 | 亚洲50p| 日韩高清国产一区在线 | 亚洲欧美激情精品一区二区 | 香蕉视频在线观看黄 | 国产男女视频 | 国产精品1区2区3区4区 | 精品国产99久久久久久宅男i | 日韩免费在线播放 | 亚洲一区免费观看 | 噜噜色综合 | 成人高清在线观看 | 中文字幕av一区 | 日韩精品福利 | 国产一级视频在线 | 天天亚洲 | 狠狠操91 | 五月天狠狠操 | 麻豆国产在线播放 | 国产日产在线观看 | 91在线视频免费 | 天堂在线一区二区 | 成人手机在线播放 | 在线免费观看av网址 | 青青草视频网 | 狠狠爱婷婷 | 性一交一乱一区二区洋洋av | 国产精品免费一区二区三区 | 午夜短视频 | 亚洲日本天堂 | 国产一区二区在线免费观看 | 日本不卡一区二区三区四区 | 男女拍拍网站 | 国产一二三区在线 |