comunedifirenze / mysql-workbench-schema-exporter
MySQL Workbench Schema Exporter
Requires
- php: >=5.4.0
- doctrine/inflector: ^1.0||^2.0
README
什么是MySQL Workbench Schema Exporter?
MySQL Workbench Schema Exporter 是一个库,可以将 MySQL Workbench 模型 (*.mwb
) 转换为有用的其他模式。
它受到 mysql-workbench-doctrine-plugin 的启发。
目前,MySQL Workbench Schema Exporter 可以通过格式化插件将模型导出为各种模式
- Doctrine 1.0 YAML 模式。
- Doctrine 2.0 YAML 模式、注解类或带有 Zend Framework 2 输入过滤器支持 的注解类。
- Zend DbTable.
- Zend Rest Controller.
- Sencha ExtJS3 Model.
- Sencha ExtJS4 Model。
- Propel XML 模式和 YAML 模式。
- Node Sequelize.
实际转换为其他模式是通过使用导出器完成的。这些插件在子项目中可用
先决条件
- PHP 5.4+
- Composer 安装依赖项
安装
使用 Composer
- 在您的项目目录中执行
php composer.phar require --dev mysql-workbench-schema-exporter/mysql-workbench-schema-exporter
-
然后您可以使用
vendor/bin/mysql-workbench-schema-export
调用 CLI 脚本。 -
您可以直接为您的项目引入导出器
php composer.phar require --dev mysql-workbench-schema-exporter/doctrine2-exporter
独立
php composer.phar install
- 然后您可以使用
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 有
win
和unix
。 -
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类型(如
BOOLEAN
或JSONB
)非常有用。默认值为
""
(禁用)。
常见模型注释行为
-
{MwbExporter:external}true{/MwbExporter:external}
(应用于表,视图)将表/视图标记为外部以跳过表/视图代码生成。对于Doctrine,请使用
{d:external}true{/d:external}
代替。 -
{MwbExporter:category}mycategory{/MwbExporter:category}
(应用于表)表类别用于对表进行分组,以便进行排序。这样,生成的表输出可以根据需要排序,例如在Propel YAML架构中(显然对生成单个文件输出的导出器非常有用)。
格式化设置选项
- Doctrine 2注释,YAML和ZF2输入过滤器
- Doctrine 1 YAML
- Propel 1 YAML和XML
- Zend 1 Rest和DbTable
- NodeJS Sequelize
- Sencha ExtJS3和ExtJS4
命令行界面(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
文件夹中的使用说明。