生产数据库中的Flyway集成

Joe*_*Joe 6 database migration flyway

我们在生产中有一个数据库,它在"user"表中已有很多行.请考虑以下来自flyway网站的声明:

如果您有一个尚未由Flyway填充的现有数据库,那么这是要走的路:

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

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

那么只使用模式创建初始迁移并且常量可以正常工作吗?或者我们工作站上的数据库是否需要与生产中的数据库100%匹配?

Axe*_*ine 7

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

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