comunedifirenze/mysql-workbench-schema-exporter

MySQL Workbench Schema Exporter

v3.1.4.1 2021-09-29 12:50 UTC

This package is auto-updated.

Last update: 2024-08-29 05:31:44 UTC


README

什么是MySQL Workbench Schema Exporter?

MySQL Workbench Schema Exporter 是一个库,可以将 MySQL Workbench 模型 (*.mwb) 转换为有用的其他模式。

它受到 mysql-workbench-doctrine-plugin 的启发。

目前,MySQL Workbench Schema Exporter 可以通过格式化插件将模型导出为各种模式

实际转换为其他模式是通过使用导出器完成的。这些插件在子项目中可用

先决条件

  • PHP 5.4+
  • Composer 安装依赖项

安装

使用 Composer

  1. 在您的项目目录中执行
php composer.phar require --dev mysql-workbench-schema-exporter/mysql-workbench-schema-exporter
  1. 然后您可以使用 vendor/bin/mysql-workbench-schema-export 调用 CLI 脚本。

  2. 您可以直接为您的项目引入导出器

php composer.phar require --dev mysql-workbench-schema-exporter/doctrine2-exporter

独立

  1. 使用 Git 获取源代码或从 Github 下载
  2. 获取 composer
  3. 安装依赖项
php composer.phar install
  1. 然后您可以使用 bin/mysql-workbench-schema-export 调用 CLI 脚本。

配置MySQL Workbench Schema Exporter

MySQL Workbench Schema Exporter 可以在运行时使用以下方法进行配置

  • 设置选项。
  • 模型注释,可以应用于表、列或外键对象。

这两种方法接受不同的选项,通常分为通用选项和导出器(格式化器)特定选项。

通用设置选项

应用于所有格式化器的通用选项。

  • filename

    输出文件名格式,使用以下标签 %schema%%table%%entity%%extension% 允许文件名用上下文数据替换。

    默认为 %entity%.%extension%

  • indentation

    生成代码的缩进大小。

  • useTabs

    使用制表符进行缩进而不是空格。设置此选项将忽略 indentation 选项。

  • eolDelimeter

    生成代码的 EOL 类型。支持的 EOL 有 winunix

  • addGeneratorInfoAsComment

    将生成器信息作为注释添加到生成的代码中。

    默认为 true

  • skipPluralNameChecking

    跳过检查模型复数名称,保持原样,适用于非英文表名。

    默认值为 false

  • backupExistingFile

    如果目标已存在,则在替换内容之前创建备份。

    默认为 true

  • enhanceManyToManyDetection

    如果启用,将在生成的代码中添加表之间的多对多关系。

    默认为 true

  • sortTablesAndViews

    如果启用,在为每个表和视图生成代码之前,将对表和视图进行排序。对于表,按表模型名称排序;对于视图,按视图模型名称排序。

    默认为 true

  • exportOnlyTableCategorized

    如果指定,只有当其类别匹配时才导出表。

  • logToConsole

    如果启用,将日志输出到控制台。

    默认值为 false

  • logFile

    如果指定,将日志输出到文件。如果此选项存在,则忽略选项 logToConsole

    默认值为 empty

  • stripMultipleUnderscores

    如果启用,将多个下划线视为单个下划线,例如,名为 user__group 的表仍将生成一个 UserGroup 实体。

    默认值为 false

  • asIsUserDatatypePrefix

    此选项提供了绕过用户类型转换并将用户类型原样转发到模型的能力。

    例如,如果定义为 _,并且MySQL Workbench中定义了一个用户类型 _BOOLEAN(例如,解析为 TINYINT(1),但无论什么),则模型字段将具有 BOOLEAN

    这对于ORM可以处理的一些非MySQL类型(如 BOOLEANJSONB)非常有用。

    默认值为 ""(禁用)。

常见模型注释行为

  • {MwbExporter:external}true{/MwbExporter:external}(应用于表,视图)

    将表/视图标记为外部以跳过表/视图代码生成。对于Doctrine,请使用 {d:external}true{/d:external} 代替。

  • {MwbExporter:category}mycategory{/MwbExporter:category}(应用于表)

    表类别用于对表进行分组,以便进行排序。这样,生成的表输出可以根据需要排序,例如在Propel YAML架构中(显然对生成单个文件输出的导出器非常有用)。

格式化设置选项

命令行界面(CLI)

mysql-workbench-schema-export 命令有助于从命令行直接导出工作台架构模型。它具有在导出之前自定义导出配置的功能。默认情况下,它将使用位于当前目录中的配置文件 export.json 来提供参数,如果找到它。要禁用此行为,请参阅以下选项。

命令用法

php bin/mysql-workbench-schema-export [options] FILE [DEST]

在哪里

  • FILE

    要导出的MySQL Workbench模型文件。

  • DEST

    目标目录(可选),如果未指定,则假设为当前目录。

选项

  • --export=type

选择导出的结果,支持的类型可以通过 --list-exporter 获取。如果省略此选项并且未找到配置文件,则CLI将提示选择要使用的导出器。

  • --config=file

从文件(JSON格式)中读取导出参数。

  • --saveconfig

将导出参数保存到文件 export.json,以后可以作为 --config=file 的值使用。

  • --list-exporter

显示所有可用的导出器。

  • --no-auto-config

禁用自动配置文件查找。

  • --zip

压缩结果。

  • --help

显示用法(或抑制任何参数)。

示例用法

php bin/mysql-workbench-schema-export --export=doctrine1-yaml example/data/test.mwb ./generated
php bin/mysql-workbench-schema-export --zip example/data/test.mwb

doctrine2-annotation的示例导出参数(JSON)

{
    "export": "doctrine2-annotation",
    "zip": false,
    "dir": "temp",
    "params": {
        "backupExistingFile": true,
        "skipPluralNameChecking": false,
        "enhanceManyToManyDetection": true,
        "bundleNamespace": "",
        "entityNamespace": "",
        "repositoryNamespace": "",
        "useAnnotationPrefix": "ORM\\",
        "useAutomaticRepository": true,
        "indentation": 4,
        "filename": "%entity%.%extension%",
        "quoteIdentifier": false
    }
}

将MySQL Workbench架构导出器作为库使用

如果您想将MySQL Workbench架构导出器作为其他项目的库使用,请参阅包含在 example 文件夹中的使用说明。

测试数据库

链接