7

我们有一个生产中的数据库,它在“用户”表中已经有很多行。考虑flyway网站上的以下声明:

如果您有一个尚未被 Flyway 填充的现有数据库,那么您可以这样做:

  • 创建一个初始迁移脚本,该脚本将重新创建您的当前状态并为其提供低版本号。
  • 使用 flyway:init 创建元数据表并将此脚本设置为当前版本。

我想使用 flyway 来管理我的架构和数据库中的各种常量,但我不希望 V1__Base_version.sql 包含我们当前生产用户的帐户信息,特别是考虑到它存储在 SCM 中。如果我正确理解了这些说明,我需要能够使用 V1__Base_version.sql “重新创建 [我的] 当前状态”。

那么仅使用架构和常量创建初始迁移可以正常工作吗?还是我们工作站上的数据库需要 100% 匹配生产中的数据库?

4

1 回答 1

8

你是对的。init 命令用于用版本标记生产数据库。

您创建的初始迁移(使用您的 PROD 数据库的结构)适用于其他环境。它永远不会在 PROD 上运行,因为它的版本将低于 init 版本。但是,它将对齐所有环境,以便后续迁移可以平等地应用于所有环境。

于 2012-09-25T09:49:57.450 回答