flyway java使用_从Flyway调用Oracle程序

在Java项目中使用Maven 3和FlyWay进行数据库迁移时,尝试从sql脚本调用Oracle存储过程pkg_test.pr_do_task失败。执行`mvn -P DEV clean compile flyway:migrate`时出现错误,导致Flyway迁移至4.0.0版本失败,提示需要恢复备份并回滚数据库和代码。错误堆栈跟踪显示FlywayException,但未提供完整信息。问题可能涉及sql脚本格式或存储过程调用方式。
摘要由CSDN通过智能技术生成

我在Java应用程序中使用Maven 3,FlyWay和Oracle . 我试图从我的sql脚本调用Oracle过程 .

该文件名为 V1.0.0__test.sql ,内容为:

execute pkg_test.pr_do_task('TEST_VALUE');

格式是否正确?我跑的时候只收到一般错误

mvn -P DEV clean compile flyway:migrate

这是:

[ERROR] Failed to execute goal com.googlecode.flyway:flyway-maven-plugin:2.0.3:migrate (default-cli) on project bambi-ex

man-sql: Flyway Error: com.googlecode.flyway.core.api.FlywayException: Migration to version 4.0.0 failed! Please restore

backups and roll back database and code! -> [Help 1]

org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal com.googlecode.flyway:flyway-maven-plugin

:2.0.3:migrate (default-cli) on project bambi-exman-sql: Flyway Error: com.googlecode.flyway.core.api.FlywayException: M

igration to version 4.0.0 failed! Please restore backups and roll back database and code!

at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:217)

at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)

at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)

at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84)

at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59)

at org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183)

at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161)

at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:320)

at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156)

at org.apache.maven.cli.MavenCli.execute(MavenCli.java:537)

at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196)

at org.apache.maven.cli.MavenCli.main(MavenCli.java:141)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

at java.lang.reflect.Method.invoke(Method.java:597)

at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290)

at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230)

at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409)

at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352)

Caused by: org.apache.maven.plugin.MojoExecutionException: Flyway Error: com.googlecode.flyway.core.api.FlywayException:

Migration to version 4.0.0 failed! Please restore backups and roll back database and code!

at com.googlecode.flyway.maven.AbstractFlywayMojo.execute(AbstractFlywayMojo.java:200)

at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:101)

at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209)

... 19 more

Caused by: com.googlecode.flyway.core.api.FlywayException: Migration to version 4.0.0 failed! Please restore backups and

roll back database and code!

at com.googlecode.flyway.core.migration.DbMigrator.migrate(DbMigrator.java:186)

at com.googlecode.flyway.core.Flyway$1.execute(Flyway.java:856)

at com.googlecode.flyway.core.Flyway$1.execute(Flyway.java:820)

at com.googlecode.flyway.core.Flyway.execute(Flyway.java:1259)

at com.googlecode.flyway.core.Flyway.migrate(Flyway.java:820)

at com.googlecode.flyway.maven.MigrateMojo.doExecuteWithMigrationConfig(MigrateMojo.java:159)

at com.googlecode.flyway.maven.AbstractMigrationLoadingMojo.doExecute(AbstractMigrationLoadingMojo.java:162)

at com.googlecode.flyway.maven.AbstractFlywayMojo.execute(AbstractFlywayMojo.java:191)

... 21 more

我似乎无法获得完整的堆栈跟踪 .

谢谢

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用SpringBoot开发应用程序时,数据库迁移是非常重要的一环,这可以使你在开发过程中轻松地更新你的数据库架构,而不会丢失任何数据。Flyway是一个非常流行的数据库迁移工具,它可以让你在应用程序启动时自动执行数据库迁移。 以下是如何在SpringBoot中使用Flyway的步骤: 1. 添加Flyway依赖 在pom.xml文件中添加以下依赖: ``` <dependency> <groupId>org.flywaydb</groupId> <artifactId>flyway-core</artifactId> </dependency> ``` 2. 配置Flyway 在application.properties文件中添加以下配置: ``` # 数据库连接配置 spring.datasource.url=jdbc:mysql://localhost:3306/mydb spring.datasource.username=root spring.datasource.password=123456 # Flyway配置 spring.flyway.baseline-on-migrate=true # 第一次执行时,自动从版本1开始执行 spring.flyway.locations=classpath:db/migration # 数据库迁移脚本位置 ``` 3. 创建数据库迁移脚本 在src/main/resources/db/migration目录下创建数据库迁移脚本,文件名必须遵循以下规则: ``` V1__initial.sql V2__add_new_table.sql V3__update_existing_table.sql ``` 其中,V1、V2、V3是版本号,__后面是描述性的名称,.sql是文件扩展名。 4. 启动应用程序 当你启动应用程序时,Flyway将自动执行所有未执行的数据库迁移脚本。 总结: 通过使用Flyway,你可以轻松地管理你的数据库迁移,并确保在应用程序启动时自动执行它们。这为你的应用程序提供了极大的灵活性,并使你能够快速地更新数据库架构,而不会丢失任何数据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值