Java 将公共架构迁移到1.2版失败
我正在springToolset中编写swing数据库应用程序——基于eclipse的IDE和maven。下面是我的简单db连接代码,并使用flyway进行迁移 主类Java 将公共架构迁移到1.2版失败,java,swing,flyway,Java,Swing,Flyway,我正在springToolset中编写swing数据库应用程序——基于eclipse的IDE和maven。下面是我的简单db连接代码,并使用flyway进行迁移 主类 public static void main(final String[] args) throws SQLException { final BasicDataSource ds = new BasicDataSource(); ds.setDriverClassName("org.h2
public static void main(final String[] args) throws SQLException {
final BasicDataSource ds = new BasicDataSource();
ds.setDriverClassName("org.h2.Driver");
ds.setUrl("jdbc:h2:target/db");
ds.setUsername("root");
ds.setPassword("");
try {
final Flyway flyway = new Flyway();
flyway.setDataSource(ds);
flyway.migrate(); // line no :12
}}
根据flyway(2.2.1)标准,模式名称为:
V1_uuuinit_db.sql
当我运行这段代码时,我得到了以下错误:
Exception in thread "main" com.googlecode.flyway.core.api.FlywayException:
Migration of schema "PUBLIC" to version 1.2 failed! Please restore backups and roll back database and code!
at com.googlecode.flyway.core.command.DbMigrate.migrate(DbMigrate.java:199)
at com.googlecode.flyway.core.Flyway$1.execute(Flyway.java:872)
at com.googlecode.flyway.core.Flyway$1.execute(Flyway.java:819)
at com.googlecode.flyway.core.Flyway.execute(Flyway.java:1200)
at com.googlecode.flyway.core.Flyway.migrate(Flyway.java:819)
at com.swdb.exApp.Main.main(12)
任何人都知道是什么错误。请帮助。
这也是来自Alber Attard的辅导,请检查您的数据库。Flyway以前已针对配置的架构运行,迁移失败。如果可以放弃该模式,只需发出
flyway.clean()
,就可以重新开始。如果没有,则必须在继续之前手动执行清理。正如Flyway的开发人员所强调的,运行迁移时出现问题
理想情况下,我们从零开始。数据库是在target
目录(ds.setUrl(“jdbc:h2:target/db”);
中名为db
的文件夹中创建的。删除db
目录。这将删除数据库中的所有内容。这将导致Flyway再次启动并执行迁移脚本
请确保您使用的是正确的版本。本教程介绍了以下版本(通过Maven管理依赖项):
com.h2数据库
氢
1.3.173
公共dbcp
公共dbcp
1.4
com.googlecode.flyway
飞道核心
2.3.1
我相信H2的一些较新版本与这些示例不兼容,这会导致问题
你能试试这个吗
问候,,
Albert Attard将架构“PUBLIC”迁移到版本X.X失败可能经常出现在控制台或报表文件中,但可能掩盖了SQL中更严重的错误。当我遇到这个问题时,我后来注意到target/db文件夹中有一个名为.trace.db的文件。当我在文本编辑器中查看此跟踪文件时,它向我显示了我遇到的确切SQL错误,在我的示例中,我尝试使用无效的列名插入。我删除了目标/db中先前生成的数据库,它为我解决了问题,感谢您的重播。。。
<dependencies>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<version>1.3.173</version>
</dependency>
<dependency>
<groupId>commons-dbcp</groupId>
<artifactId>commons-dbcp</artifactId>
<version>1.4</version>
</dependency>
<dependency>
<groupId>com.googlecode.flyway</groupId>
<artifactId>flyway-core</artifactId>
<version>2.3.1</version>
</dependency>
</dependencies>