日韩在线观看-日韩在线成人-日韩在线不卡视频-日韩在线不卡视频-国产精品99-国产精品99

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

遷移狀態

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

主站蜘蛛池模板: 砌体工程质量验收规范gb50203---2011 | 北京卫视今天节目预告| 海绵宝宝第十四季| 香港九龙图库精选资料| 金发女郎| 小猫叫声吸引猫mp3| 真田太平记| 山田裕二| 一人比划一人猜100个| 意大利诱惑| 网络流行歌曲2024最火前十名| 彭丹丹最惊艳的电影| 李采潭全部系列未删减| 吻激情| 少妇直播裸体洗澡免费网站| deathnote| 赫伯曼电影免费观看| 巴尔扎克和小裁缝精彩片段时间| 我爱五指山我爱万泉河| 地狱究竟有几层电影| 韩国电影《无尽猎罪》的导演是谁| 第一财经在线直播电视| 真的爱你中文谐音歌词| 美国电影《贵夫人》| 魔鬼黑狱1983年美国| 不要抛弃我| 羞羞片| 风霜踩泥| 神迹电影| 老司机你懂的视频| 叶子楣地下裁决| 变形金刚1普通话版| 美女比基尼跳舞| 漂亮主妇| 意大利辣椒1984| 印度西施| 奇幻旅程| 雳剑 电视剧演员表| 孔大山| 情人电视剧| 睡前搞笑故事|