生产数据库中的Flyway集成

时间:2012-09-24 16:58:25

标签: database migration flyway

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

  

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

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

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

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

1 个答案:

答案 0 :(得分:7)

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

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