文档首页
MySQL Workbench 手册
相关文档 下载此手册
PDF (US Ltr) - 17.0Mb
PDF (A4) - 17.0Mb


9.7.2 创建自定义模板

在最简单的情况下,模板包含两个文件:一个模板文件,扩展名为 .tpl,以及一个特殊文件 info.xmlinfo.xml 文件包含有关模板的重要元数据。可选的第三个文件是预览图像文件。此预览文件提供一个缩略图,说明生成的报告的外观。

创建自定义模板最简单的方法之一是复制任何现有模板。

例如,以下步骤描述了如何基于 Text Basic 模板创建自定义模板。

  1. 导航到存储模板的文件夹。假设 MySQL Workbench 已安装到 Windows 上的默认位置,则为 C:\Program Files\MySQL\MySQL Workbench 8.0 SE\modules\data\wb_model_reporting

  2. 复制 Text_Basic.tpl 文件夹。副本可以命名为任何合适的名称;例如, Custom_Basic.tpl

  3. 编辑 info.xml 文件以反映您的自定义模板。此处的未编辑文件显示如下

    <?xml version="1.0"?>
    <data>
      <value type="object" struct-name="workbench.model.reporting.TemplateInfo"
      id="{BD6879ED-814C-4CA3-A869-9864F83B88DF}" struct-checksum="0xb46b524d">
        <value type="string" key="description">
          A basic TEXT report listing schemata and objects.
        </value>
        <value type="string" key="name">HTML Basic Frame Report</value>
        <value type="list" content-type="object"
        content-struct-name="workbench.model.reporting.TemplateStyleInfo"
        key="styles">
          <value type="object" struct-name="workbench.model.reporting.TemplateStyleInfo"
          id="{7550655C-CD4B-4EB1-8FAB-AAEE49B2261E}" struct-checksum="0xab08451b">
            <value type="string" key="description">
              Designed to be viewed with a fixed sized font.
            </value>
            <value type="string" key="name">Fixed Size Font</value>
            <value type="string" key="previewImageFileName">
              preview_basic.png
            </value>
            <value type="string" key="styleTagValue">fixed</value>
          </value>
        </value>
        <value type="string" key="mainFileName">report.txt</value>
      </value>
    </data>

    该文件定义了两个对象: TemplateInfo 对象和 TemplateStyleInfo 对象。这些对象包含有关模板的信息,这些信息将显示在 DBDoc 模型报告向导主页面中。

  4. 更改文件中使用的对象 GUID。在此示例中,需要替换两个 GUID

    id="{BD6879ED-814C-4CA3-A869-9864F83B88DF}"
    ...
    id="{7550655C-CD4B-4EB1-8FAB-AAEE49B2261E}"

    生成两个新的 GUID。这可以使用合适的命令行工具完成,也可以使用免费的在线工具生成 GUID。MySQL 的 UUID() 函数也生成 GUID

    mysql> SELECT UUID();
    +--------------------------------------+
    | UUID()                               |
    +--------------------------------------+
    | 648f4240-7d7a-11e0-870b-89c43de3bd0a |
    +--------------------------------------+

    获得新的 GUID 值后,相应地编辑 info.xml 文件。

  5. 编辑 TemplateInfoTemplateStyleInfo 对象的文本信息以反映自定义模板的目的。

  6. 修改后的文件将如下所示

    <?xml version="1.0"?>
    <data>
      <value type="object" struct-name="workbench.model.reporting.TemplateInfo"
      id="{cac9ba3f-ee2a-49f0-b5f6-32580fab1640}" struct-checksum="0xb46b524d">
        <value type="string"
        key="description">
          Custom basic TEXT report listing schemata and objects.
        </value>
        <value type="string" key="name">Custom Basic text report</value>
        <value type="list" content-type="object"
        content-struct-name="workbench.model.reporting.TemplateStyleInfo" key="styles">
          <value type="object"
          struct-name="workbench.model.reporting.TemplateStyleInfo"
          id="{39e3b767-a832-4016-8753-b4cb93aa2dd6}" struct-checksum="0xab08451b">
            <value type="string" key="description">
              Designed to be viewed with a fixed sized font.
            </value>
            <value type="string" key="name">Fixed Size Font</value>
            <value type="string" key="previewImageFileName">preview_basic.png</value>
            <value type="string" key="styleTagValue">fixed</value>
          </value>
        </value>
        <value type="string" key="mainFileName">custom_report.txt</value>
      </value>
    </data>
  7. 创建新的模板文件。同样,这也可以通过编辑现有模板来完成,具体取决于您的需求。在此示例中,模板文件 report.txt.tpl 显示如下

    +--------------------------------------------+
    | MySQL Workbench Report                     |
    +--------------------------------------------+
    
    Total number of Schemas: {{SCHEMA_COUNT}}
    =============================================
    {{#SCHEMATA}}
    {{SCHEMA_NR}}. Schema: {{SCHEMA_NAME}}
    ----------------------------------------------
    ## Tables ({{TABLE_COUNT}}) ##
    {{#TABLES}}{{TABLE_NR_FMT}}. Table: {{TABLE_NAME}}
    {{#COLUMNS_LISTING}}## Columns ##
    Key  Column  Name  Datatype  Not Null  Default  Comment
    {{#COLUMNS}}{{COLUMN_KEY}}{{COLUMN_NAME}}{{COLUMN_DATATYPE}} »
    {{COLUMN_NOTNULL}}{{COLUMN_DEFAULTVALUE}}{{COLUMN_COMMENT}}
    {{/COLUMNS}}{{/COLUMNS_LISTING}}
    {{#INDICES_LISTING}}## Indices ##
    Index  Name  Columns  Primary  Unique  Type  Kind  Comment
    {{#INDICES}}{{INDEX_NAME}}{{#INDICES_COLUMNS}}{{INDEX_COLUMN_NAME}} »
    {{INDEX_COLUMN_ORDER}}{{INDEX_COLUMN_COMMENT}}{{/INDICES_COLUMNS}} »
    {{INDEX_PRIMARY}}{{INDEX_UNIQUE}}{{INDEX_TYPE}}{{INDEX_KIND}}{{INDEX_COMMENT}}
    {{/INDICES}}{{/INDICES_LISTING}}
    {{#REL_LISTING}}## Relationships ##
    Relationship  Name  Relationship  Type  Parent Table  Child Table Cardinality
    {{#REL}}{{REL_NAME}}{{REL_TYPE}}{{REL_PARENTTABLE}}{{REL_CHILDTABLE}}{{REL_CARD}}
    {{/REL}}{{/REL_LISTING}}
    ---------------------------------------------
    
    {{/TABLES}}
    {{/SCHEMATA}}
    =============================================
    End of MySQL Workbench Report

    此模板显示模型中所有模式的详细信息。

  8. 可以根据需要以任何方式编辑前面的模板文件,添加新的标记并删除现有的标记。对于自定义模板示例,您可能希望创建一个更简单的模板,如下所示

    +--------------------------------------------+
    | MySQL Workbench Custom Report              |
    +--------------------------------------------+
    
    Total number of Schemata: {{SCHEMA_COUNT}}
    =============================================
    {{#SCHEMATA}}
    Schema Name: {{SCHEMA_NAME}}
    ----------------------------------------------
    ## Tables ({{TABLE_COUNT}}) ##
    
    {{#TABLES}}
    Table Name: {{TABLE_NAME}}
    {{/TABLES}}
    {{/SCHEMATA}}
    
    Report Generated On: {{GENERATED}}
    =============================================
    End of MySQL Workbench Custom Report

    此简化的报告仅列出模型中的模式和表。由于使用了 {{GENERATED}} 变量,因此还会显示生成报告的日期和时间。

  9. 然后可以测试自定义模板。启动 MySQL Workbench,加载要为其生成报告的模型,选择 模型DBDOC - 模型报告 菜单项。然后从可用模板列表中选择新的自定义模板,选择输出目录,然后单击 完成 生成报告。最后,导航到输出目录以查看完成的报告。