flyway - 这是 Flyway 用例吗

标签 flyway

我已将产品交付给客户。现在我已经升级了产品,其中包括对数据库的更改。

客户想要升级产品。现在 Flyway 将帮助客户数据从旧版本迁移到新版本。如果这是一个有效的用例,请告诉我。 flyway 文档仅讨论其在开发期间的使用。

最佳答案

Flyway 允许您通过按定义的顺序运行一组脚本来更改数据库。这些脚本称为“迁移”,因为它们允许您将数据库从一个版本“迁移”到另一个版本。

我们的想法是,您可以从一个空数据库开始,每个迁移脚本都会依次将该数据库从空数据库提升到当前版本。但是,也可以通过创建“基线”迁移从现有数据库开始。

作为SudhirR说,Flyway 的主要用例是定义模式更改。但是,也完全可以更改数据。由于 Flyway 只是运行纯 SQL,原则上,几乎所有您可以在 SQL 脚本中执行的操作也可以在 Flyway 迁移中执行。

在您描述的情况下,应该可以使用 Flyway 迁移客户数据库。您可以采取的步骤是:

  • 生成包含生产数据库的整个 DDL(包括索引、触发器、过程...)的 sql 脚本。为此,您需要为数据库中存在的所有引用数据添加插入语句。
  • 将此脚本保存在您的 Flyway 项目中,类似于“V1__base_version.sql”
  • 对您的生产数据库运行 flyway baseline 命令
    • 这将设置您的生产数据库以用于 Flyway
  • 添加新的迁移脚本以将您客户的数据迁移到新版本
    • 例如创建新表,将旧表中的数据复制到新表中,删除旧表
  • 运行flyway migrate升级生产

这些步骤改编自 Flyway 文档页面 here .

当然你应该阅读 Flyway docs并在对生产运行任何操作之前在一次性数据库上手动测试。不过,我认为原则上 Flyway 可能非常适合您的用例。

关于flyway - 这是 Flyway 用例吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58182865/

相关文章:

spring-boot - Spring Boot : Setting Hibernate naming strategy with @DataJpaTest and Flyway

mysql - Flyway 4.0 命令行创建空元数据表

database - Flyway 对数据库进行了多少次往返才能确定必须运行哪个迁移?

mysql - 为 Flyway 'schema_version' 表设置 mysql 引擎

java - 飞行路线设置问题

flyway - 在哪里可以下载以前/旧版本的 Flyway?

oracle - 在FlywayDb迁移中使用 "connect sys as sysdba"时出错

java - Flyway 位置 - 指向单个 sql 脚本

使用 csv 文件进行 Flyway 特定迁移

java - Spring——跳过此测试的飞路