2

我正在尝试根据 Axel Fontaine 的示例通过 Maven 运行 SQL 和 Java 迁移的混合:http ://www.methodsandtools.com/tools/flyway.php

基本上我正在尝试执行几个 SQL 迁移,然后是 java 迁移(将 BLOBS 加载到表中),然后是另一个 SQL 迁移。

第一组 SQL 迁移运行良好。如果我为 Java 迁移指定 .java 的文件扩展名,它将被忽略。如果我为 Java 迁移指定 .sql 的文件扩展名,它将以正确的顺序运行,但我收到以下错误:

[错误] com.googlecode.flyway.core.api.FlywayException:在第 1 行执行语句时出错:包 db.migration [错误] 由 org.postgresql.util.PSQLException 引起:错误:“包”位置或附近的语法错误:1 [错误] com.googlecode.flyway.core.api.FlywayException:模式“测试”迁移到版本 1.0.0106 失败!更改成功回滚。

这是我的 Java 迁移文件的头:

package db.migration;
import com.googlecode.flyway.core.api.migration.jdbc.JdbcMigration;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.io.File;

关于我做错了什么的任何想法?

4

1 回答 1

1

好吧,我终于弄清楚发生了什么。而 Flyway 允许包含“.”的版本号。在名称中(例如 V1.0.0000_文件名),显然 Java 迁移类名称不支持它。我更改了类名以使用“ ”而不是“。” (V1_0_1000_filename),这让我克服了最初的错误。

于 2013-05-22T11:29:31.997 回答