当前位置: 首页 > 知识库问答 >
问题:

飞行路线能否在验证数据库后处理迁移?

汪翰墨
2023-03-14

flyway可以在迁移之前对数据库进行验证检查吗?

场景1

例如:我试图在现有的数据库上执行flyway。我已经在db_users表中插入了一些用户。

但是我的sql脚本有db_users表的create语句和所有用户的插入语句,包括那些已经插入的用户。

我可以在创建表之前做IFNOT_EXISTS检查,但很难在每次插入之前做检查。

情景2

我已经在数据库中迁移了脚本V1、V2和V3。我修改了脚本V2并做了一些更改。下次我启动应用程序时,flyway将识别此更改。

场景3

我在V2 sql脚本中有一个create table语句。但是在启动我的应用程序后,我手动删除了表。下次当我启动应用程序时,Flyway会识别DB更改并再次执行V2吗?

你能告诉我如何处理Flyway的这些情况吗?

共有1个答案

司寇照
2023-03-14

你所要求的一切都在文档中。如果不够清楚,请告诉我如何改进。如果你找不到信息,请告诉我原因。

方案 1:https://flywaydb.org/documentation/existing

场景2:https://flywaydb.org/documentation/command/validate

场景3:https://flywaydb.org/documentation/faq#outside-更改

 类似资料:
  • 目前,我们公司通过手动创建、分发和运行必要的SQL脚本来处理所有数据库模式更改。显然,这会导致各种机器偶尔更新和稀疏更新的问题。 我正在研究更现代的方法来解决这个问题,而Flyway现在是主要的候选人(尽管如果可以提出令人信服的论据,我们仍然愿意使用Liquibase)。 正常流程很简单,和宣传的一样简单,但是我们不知道如何正确处理冲突的迁移脚本。例如,不同个人分支(A和B)上的2名开发人员在不同

  • 我们有一个生产数据库,我们使用flyway来维护它。最近我们克隆了我们的生产数据库来创建一个UAT数据库。UAT数据库具有与生产中相同的模式和数据。现在我们尝试在UAT数据库上运行“mvn flyway: iri ate”来测试新的flyway脚本。然而,我们得到了 脚本。23是一个新脚本。我们预计该州正在等待。然而,所有脚本的状态都变成了Baseln。我搜索了一天的相关主题,但找不到与我的案例相

  • 我们使用Liquibase,现在在新项目中,我们必须使用Flyway。在liquibase中,迁移顺序在xml文件中,所以您可以指定什么是第一次迁移,什么是第二次迁移,它不依赖于名称。 所以,当一些开发人员添加新的迁移时,如果之前有人推动了新的迁移,那么他将在Git中遇到冲突,并且必须修复顺序。 这是如何在Flyway中实现的?如果并行添加迁移,如何控制顺序?

  • 在类路径中:/db。迁移有迁移但flyway没有看到这一点,而是爱上了msg 2022-05-02 17:28:07.993INFO 45296 --- [ restartedMain]c. c. c. ConfigServiceProperty tySourceLocator:从服务器获取配置,地址为:http://localhost:8888/story2022-05-02 17:28:08.

  • 我希望Flyway在我向服务器部署新战争时运行。 部署服务器时,飞行路线会自动运行吗?我是否必须始终自动执行脚本,然后执行飞行路线迁移命令?或者最好的方法是什么? 服务器: 该服务器是一个运行在Elastic Beanstalk (AWS)上的Java Tomcat服务器,它连接到一个MySQL数据库。 部署流程 我们在数据库上手动运行sql迁移脚本。然后我们上传一个服务器的新war到Elasti

  • 我为命令行java迁移执行了以下步骤: < li >创建java文件 当我执行迁移逗号时,它会像 警告:无法解析位置类路径:db/迁移 请查看下面的附件图片,它实际上是罐子。我已经提取了更多信息。