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

Flyway迁移不适用于gradle

蒋泰
2023-03-14

我正在尝试使用gradle脚本迁移一些SQL表:

buildscript {
  repositories {
    maven {
      url "https://plugins.gradle.org/m2/"
    }
  }
  dependencies {
    classpath 'gradle.plugin.com.boxfuse.client:flyway-release:4.0.3'
    classpath group: 'org.postgresql', name: 'postgresql', version: '9.4.1208.jre7'
  }
}

apply plugin: 'org.flywaydb.flyway'

flyway {
  user = 'postgres'
  url = 'jdbc:postgresql://localhost:5432/test'
  driver = 'org.postgresql.Driver'
  locations = ['filesystem:scripts']
}

在脚本目录中,我只有一个SQL脚本:

CREATE TABLE place (
  id VARCHAR(50) NOT NULL,
  country VARCHAR(255),
  country_code VARCHAR(255),
  name VARCHAR(255),
  PRIMARY KEY(id)
);

当我运行渐变飞行路线迁移 -i 时,我得到输出:

Database: jdbc:postgresql://localhost:5432/test (PostgreSQL 9.5)
Successfully validated 0 migrations (execution time 00:00.009s)
Current version of schema "public": << Empty Schema >>
Schema "public" is up to date. No migration necessary.

在测试数据库中,创建了schema_version表,但没有创建表位置。

flyway的目录结构是:

flyway-dir
  -- build.gradle
  -- scripts/001-add_place_table.sql

我是否缺少飞行路线的一些其他设置?非常不幸的是,我没有收到任何错误消息。

共有1个答案

云鸿祯
2023-03-14

看来您的迁移脚本的名称不正确。请适当命名脚本-请参阅命名部分。

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

  • 我用试用密钥尝试了State/BaselineMigration功能。https://flywaydb.org/documentation/concepts/baselinemigrationsFlyWay迁移执行脚本并正确移动到正确的版本。但在此基础上运行的所有迁移都失败了 从S开始2__xxx.sql然后它在版本2的模式表中创建一行并键入"SQL_STATE_SCRIPT" 再次执行flywa

  • 我们面临一个问题:假设一个开发人员在处理分支a的过程中提供了一个新的迁移版本,比如说V331,同时一个QA人员在另一个分支B的QA环境中进行QA。可能会出现qa环境已经有v331版本的情况,因为几个开发人员可能会在不同的时间在不同的分支上创建相同的版本号……更多的是qa经常在分支之间切换,这就是qa数据库变得混乱的原因,特别是表schema_version,这导致我们手动删除损坏的模式版本,解决旧

  • 我在一株嵌入的野花上做了阿奎利亚测试。尽管所有移植脚本、集成器类(flyway在其中安装)和所有FlyWay包(来自POM文件)都包含在。war文件(部署在嵌入式wildfly上),不进行迁移。 这有什么原因吗?这是原则上不起作用还是我错过了什么? 我喜欢实现的是,arquillian运行的自动测试将设置一个内存数据库,其方案与使用相同迁移脚本的生产数据库相同。 编辑:正如ytg下面所问的,我添加

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

  • 问题内容: 我了解到使用Java进行flywaydb迁移可与JDBC连接一起使用,并且还可以通过SpringTemplate进行spring支持,但是flyway不适用于DAO。 对于具有更多关系的表/实体,使用DAO而不是sql进行迁移使工作变得更加容易。 是否有解决方案或解决方法来解决此问题? 问题答案: 首先,Flyway拥有自己的事务管理系统,并且不使用Spring事务处理。 如果您的DA