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

如何让FlyWay运行我的迁移?“架构是最新的。不需要迁移。“

鱼意远
2023-03-14

我有一个现有的数据库。我创建了两个迁移

$ ls src/main/resources/db/migration/
V1__create_stats.sql  V2__create_sources.sql

我在application.properties中设置了以下内容

# Prevent complaints when starting migrations with existing tables.
flyway.baselineOnMigrate = true
>mvn spring-boot:run
...
2018-05-09 18:43:03.671  INFO 24520 --- [  restartedMain] o.f.core.internal.util.VersionPrinter    : Flyway 3.2.1 by Boxfuse
2018-05-09 18:43:04.420  INFO 24520 --- [  restartedMain] o.f.c.i.dbsupport.DbSupportFactory       : Database: jdbc:mysql://localhost:3306/galaxybadge (MySQL 5.5)
2018-05-09 18:43:04.486  INFO 24520 --- [  restartedMain] o.f.core.internal.command.DbValidate     : Validated 0 migrations (execution time 00:00.030s)
2018-05-09 18:43:04.704  INFO 24520 --- [  restartedMain] o.f.c.i.metadatatable.MetaDataTableImpl  : Creating Metadata table: `galaxybadge`.`schema_version`
2018-05-09 18:43:05.116  INFO 24520 --- [  restartedMain] o.f.core.internal.command.DbBaseline     : Schema baselined with version: 1
2018-05-09 18:43:05.145  INFO 24520 --- [  restartedMain] o.f.core.internal.command.DbMigrate      : Current version of schema `galaxybadge`: 1
2018-05-09 18:43:05.146  INFO 24520 --- [  restartedMain] o.f.core.internal.command.DbMigrate      : Schema `galaxybadge` is up to date. No migration necessary.
> select * from schema_version;
+--------------+----------------+---------+-----------------------+----------+-----------------------+----------+--------------+---------------------+----------------+---------+
| version_rank | installed_rank | version | description           | type     | script                | checksum | installed_by | installed_on        | execution_time | success |
+--------------+----------------+---------+-----------------------+----------+-----------------------+----------+--------------+---------------------+----------------+---------+
|            1 |              1 | 1       | << Flyway Baseline >> | BASELINE | << Flyway Baseline >> |     NULL | root         | 2018-05-09 18:43:05 |              0 |       1 |
+--------------+----------------+---------+-----------------------+----------+-----------------------+----------+--------------+---------------------+----------------+---------+

Spring Boot1.5.6,飞道芯3.2.1

Spring文档-FlyWay文档

共有1个答案

程景胜
2023-03-14

好的,我找到了https://flywaydb.org/documentation/existing

但没有照做。相反,我将我的迁移从V1__*V2__*移到V2...V3...中,并将生产模式下载到V1__initialize.sql中。

mysqldump -h project.us-east-1.rds.amazonaws.com -u username -p --no-data --skip-add-drop-table --compact --skip-set-charset databasename > V1__initialize.sql

然后,当我运行Springmvn spring-boot:run时,它运行了迁移。

(实际上,对SQL进行了大量调试,我不得不删除几次表,从schema_verion中删除行,从target/.../migration/中删除旧文件名,但这是另外一回事。)

我相信也许可以设置

flyway.baselineVersion=0

我仍然不明白为什么它没有运行v2__...从最初的问题迁移。如果从%1开始,则迁移%2仍可运行。如果它像预期的那样起作用,那么我可能会更早地理解这个问题。

 类似资料:
  • 我们正在尝试将迁移作为.sql文件置于版本控制之下。开发人员将编写一个vn__*.sql文件,提交到版本控制,并且每5分钟运行一次的作业将自动迁移到开发和测试数据库。一旦更改被证明没有引起问题,其他人就会运行一个手动作业来在生产上运行迁移。 我的问题: 我有一个演示迁移,创建了几个表。我将v4__demotable.sql检查到PC上的版本控制中。 阅读文档时,开发人员似乎建议我应该创建一个新的v

  • 我已成功地将spring boot配置为使用Flyway的新项目 随Postgres数据库从版本0001.0迁移到0008.0 我已在本地手动更改脚本,但flyway迁移失败。 错误消息示例: 注意:-我不想从表flyway_schema_history中删除脚本条目。

  • 嗨, 我是Spring boot gradle项目的新手。我正在尝试用Spring boot应用程序运行flyway迁移。这就是我在gradle中设置依赖项的方式, 首先,我将依赖项添加为。这足以暴露一个终点。 然后我尝试以的方式添加flyway依赖项,它既没有抛出错误,也没有运行迁移脚本,直到我添加了依赖项。在查看了data-jpa jar的pom.xml之后,我确定了这个jar的hiberna

  • 我正在使用flyway命令行工具来处理我的db迁移。到目前为止,所有迁移都是sql 配置文件(仅用于选项): 那很好用。 但是现在我需要添加一个基于java的迁移。我真的很困惑,我找不到任何如何做的例子。如何编译,在哪里放java迁移。 我尝试了简单的迁移类从官方留档: 但是接下来怎么办?尝试编译: 然后把罐子放在不同的地方,没有效果。 flyway信息-看不到迁移。 因此,如何构建最简单的基于j

  • 我的许多迁移脚本中的第一个创建了模式和表空间,其余的迁移脚本在其中创建表、执行插入等。这样做是为了删除整个模式,然后使用flyway从头开始。cmd flyway migrate命令连接为“SYS as SYSDBA”,验证我的迁移文件,然后给出以下错误: 错误:找到不带元数据表的非空架构“SYS”!使用baseline()或将baselineOnMigrate设置为true来初始化元数据表。 在

  • 我正在flyway的CMD中运行命令,但脚本文件的迁移会出现以下异常 [错误]无法执行目标组织。flywaydb:flyway maven插件:3.2.1:在convertopia auto db:org项目上迁移(默认cli)。flywaydb。果心应用程序编程接口。FlywayException:验证失败。迁移1.0.53的迁移描述不匹配[错误]- 我尝试过,它说构建成功,但问题仍然没有解决。