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


9.5.1 数据库同步

同步模型、数据库和 SQL 文件之间的数据。这三种类型可以是目标(目的地)、源或两者兼而有之。您还可以在同步过程中选择或取消选择单个对象并修改其方向。例如,您可以在同一同步过程中将模型中的表同步到数据库,将数据库中的其他表同步到模型,并跳过几个表。

注意

请注意,随着时间的推移,MySQL 语法会引入向后不兼容的更改,因此,根据您的需要设置 默认目标 MySQL 版本 建模首选项非常重要。例如,从 MySQL 5.7 目标导出结果时,如果针对 MySQL 5.6 执行,则可能会产生无效的语法。另请参阅 第 3.2.4 节,“建模首选项”

要开始,请从 数据库 导航菜单中选择 与任何源同步,如下图所示。或者,选择 同步模型 以打开默认使用模型的相同向导。必须选择模型或 EER 图才能在 数据库 导航菜单下显示这些同步选项。

图 9.56 启动同步向导

Content is described in the surrounding text.

警告

由于 MySQL 数据库对应于数据目录中的目录,因此您必须考虑数据库、表和触发器名称的区分大小写,它们遵循操作系统底层文件系统的区分大小写规则。将模型与大小写不同的对象同步可能会导致 MySQL Workbench 为该对象生成 DROP 语句,然后将其重新创建为小写。有关更多信息,请参阅 标识符区分大小写

解决方法包括使用一致的约定,其中可移植性最高的代码使用小写的数据库和表名。或者,一种临时解决方法是从生成的查询中删除 DROP SCHEMA IF EXISTS 行。

MySQL Workbench 支持控制要同步的对象,以及每个对象的同步方向。同步选项包括:

  • 指定要同步的所有表和对象或特定表和对象。

  • 同步模型和实时数据库,或仅更新其中一个(单向或双向)。

  • 可以选择从 SQL 脚本文件更新或更新到 SQL 脚本文件。

  • 您可以生成 ALTER 脚本文件 以便稍后执行适当的更新,而不是执行同步。

  • 通过选择每个对象的同步方向或将特定对象配置为忽略来微调同步的执行方式。

数据库 菜单中,有两个类似的数据库同步向导可用。更简单的 同步模型 向导和更灵活的 与任何源同步 向导。除非另有说明,否则以下描述适用于两者。

同步模型(与数据库)

要启动向导,请打开一个模型,然后从主菜单中选择 数据库同步模型。按照步骤顺序操作,直到到达 选择要应用的更改 步骤,如下图所示。

图 9.57 模型和数据库差异

Content is described in the surrounding text.

在前面的示例中,实时数据库和模型都有 movies shows 表。在 MySQL Workbench 中,模型中创建了一个额外的表 educational,但它在实时数据库中没有对应的表。此外,friends 存在于实时数据库中,但它不在模型中。默认情况下,操作会将数据库与模型同步,因此在本例中,educational 表将添加到源中,而 friends 表将从源中删除。

如 GUI 中所述,双击箭头将在 更新模型忽略更新源 操作之间切换。您还可以选择一行,然后单击三个操作按钮之一。另请注意,单击一行将显示关联的 SQL 语句,如上图所示。

下图显示了如何更改同步方向的示例。

图 9.58 控制同步方向

Content is described in the surrounding text.

在这种情况下,同步方向已更改,因此,不再执行从实时数据库中删除 friends 的默认操作,而是将其合并到 MySQL Workbench 模型中。和以前一样,educational 表将被添加到实时(源)数据库中。

可用的三个操作是:

  • 更新模型:使选定的更改从实时数据库应用于模型。

  • 忽略:使更改被忽略。不会对这些更改进行同步。这用一个被划掉的双箭头表示。

  • 更新源:使更改仅应用于实时数据库。

单击 表映射 将提供其他映射选项,如下图所示。

图 9.59 表映射

Content is described in the surrounding text.

单击 下一步 将显示用于执行配置的模型和实时数据库(源)同步的 SQL 语句。下图显示了一个预览示例。

图 9.60 预览同步 SQL 语句

Content is described in the surrounding text.

您现在可以将 SQL 语句保存到文件或剪贴板,或者执行 SQL 语句。如果您选择在 MySQL Workbench 中执行更改,则可以选择跳过“数据库更改”,以便仅更改模型。

与任何源同步

要启动向导,请打开一个模型,然后从主菜单中选择 数据库与任何源同步。步骤类似于 同步模型 向导,但有一些额外的选项可用于创建 SQL 脚本文件、使用 SQL 脚本文件或两者兼而有之。下图显示了 选择源 设置。

图 9.61 与任何源同步:选择源

Content is described in the surrounding text.

请注意如何更改源和目标类型。后续步骤取决于这些源和目标类型,同步模型 描述了此向导的基本功能。