当版本为 0 时,Flyway 迁移不起作用
Flyway migrations don't work when the version is 0
当我有一个版本号为 0 的文件时,Flyway 不会提取它。
Maven 依赖:
<dependency>
<groupId>org.flywaydb</groupId>
<artifactId>flyway-core</artifactId>
<version>3.2.1</version>
</dependency>
Spring 配置:
<bean id="flyway" class="org.flywaydb.core.Flyway" init-method="migrate">
<property name="dataSource" ref="dataSource" />
<property name="baselineOnMigrate" value="true" />
<property name="locations" value="classpath:/META-INF/db/" />
<property name="placeholders">
<map>
<entry key="username" value="" />
</map>
</property>
</bean>
类路径中的文件:/META-INF/db/
- sql/V0_1__INITIAL_BUILD.sql(创建一个 table)
- sql/V1_3__from-0.1.sql(添加一列)
- sql/V1_4__from-1.3.sql(将索引添加到 table)
当我启动我的服务时,出现此错误
java.sql.SQLSyntaxErrorException: ORA-00942: table or view does not exist
这是插入 schema_version table:
COLUMN |ROW1 |ROW2
version_rank |1 |2
installed_rank |1 |2
version |1 |1.3
description |Flyway Baseline |from-0.12
type |BASELINE |SQL
script |Flyway Baseline |sql/V1_3__from-0.1.sql
checksum |-993203535 |
installed_by |DBUSER2 |DBUSER2
installed_on |25-AUG-15 |25-AUG-15
execution_time |0 |120
success 1 |0
它似乎忽略了实际创建 table 并立即移动到 的 sql/V0_1__INITIAL_BUILD.sql 文件]sql/V1_3__from-0.1.sql 失败。
命令行工具好像没有这个问题。
是否无法使用 Spring 使用 0 作为版本号,还是我遗漏了一些明显的东西?
默认情况下是正确的 1 是 baselineversion,它从中开始按顺序执行所有脚本。并且为了将默认版本从 1 覆盖到 0,请在 XML 处的 flyway 配置中使用以下内容:-
<property name="baselineVersion" value="0" />
谢谢。
当我有一个版本号为 0 的文件时,Flyway 不会提取它。
Maven 依赖:
<dependency>
<groupId>org.flywaydb</groupId>
<artifactId>flyway-core</artifactId>
<version>3.2.1</version>
</dependency>
Spring 配置:
<bean id="flyway" class="org.flywaydb.core.Flyway" init-method="migrate">
<property name="dataSource" ref="dataSource" />
<property name="baselineOnMigrate" value="true" />
<property name="locations" value="classpath:/META-INF/db/" />
<property name="placeholders">
<map>
<entry key="username" value="" />
</map>
</property>
</bean>
类路径中的文件:/META-INF/db/
- sql/V0_1__INITIAL_BUILD.sql(创建一个 table)
- sql/V1_3__from-0.1.sql(添加一列)
- sql/V1_4__from-1.3.sql(将索引添加到 table)
当我启动我的服务时,出现此错误
java.sql.SQLSyntaxErrorException: ORA-00942: table or view does not exist
这是插入 schema_version table:
COLUMN |ROW1 |ROW2 version_rank |1 |2 installed_rank |1 |2 version |1 |1.3 description |Flyway Baseline |from-0.12 type |BASELINE |SQL script |Flyway Baseline |sql/V1_3__from-0.1.sql checksum |-993203535 | installed_by |DBUSER2 |DBUSER2 installed_on |25-AUG-15 |25-AUG-15 execution_time |0 |120 success 1 |0
它似乎忽略了实际创建 table 并立即移动到 的 sql/V0_1__INITIAL_BUILD.sql 文件]sql/V1_3__from-0.1.sql 失败。
命令行工具好像没有这个问题。
是否无法使用 Spring 使用 0 作为版本号,还是我遗漏了一些明显的东西?
默认情况下是正确的 1 是 baselineversion,它从中开始按顺序执行所有脚本。并且为了将默认版本从 1 覆盖到 0,请在 XML 处的 flyway 配置中使用以下内容:-
<property name="baselineVersion" value="0" />
谢谢。