我的文件夹里有这样的脚本:
D:/dev/DatabaseSetup/oracle/010__script.sql
D:/dev/DatabaseSetup/oracle/020__script.sql
D:/dev/DatabaseSetup/oracle/030__script.sql
D:/dev/DatabaseSetup/oracle/040__script.sql
D:/dev/DatabaseSetup/oracle/050__script.sql
我想将所有脚本保留在同一个文件夹中,但在迁移中忽略其中一些脚本。确切地说,我只想包括这个脚本
<locations>
<location>filesystem:oracle/020__script.sql</location>
<location>filesystem:oracle/030__script.sql</location>
<location>filesystem:oracle/040__script.sql</location>
</locations>
pom.xml
的路径是D:/dev/DatabaseSetup/oracle/pom.xml
。
我读了这个问题,但是发现我不能为迁移指定单个sql脚本(在接受的答案中,它使用指向java包的类路径)。
这是可能的吗?我得到了以下错误:
[ERROR] Failed to execute goal org.flywaydb:flyway-maven-plugin:3.2.1:migrate (default-cli) on proje
ct DatabaseSetup: org.flywaydb.core.api.FlywayException: Unable to scan for SQL migrations in lo
cation: filesystem:D:/dev/DatabaseSetup/oracle/020__script.sql: Invalid filesystem path:
D:/dev/DatabaseSetup/oracle/020__script.sql -> [Help 1]
当我更改时
<locations>
<location>filesystem:oracle</location>
</locations>
flyway执行所有脚本。
我通过为那些我想执行的脚本定义文件名模式来解决我的问题,然后将它们复制到flyway将查找迁移的特定文件夹中。
例如,如果文件名模式为**__pattern**。sql
,配置为:
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.8</version>
<executions>
<execution>
<id>copy-flyway-scripts</id>
<phase>compile</phase>
<configuration>
<target name="copy-flyway-scripts">
<echo>Copying SQL scripts</echo>
<copy todir="./target/flyway">
<fileset dir="./src/main/resources/oracle" >
<include name="**__pattern**.sql"/>
</fileset>
</copy>
</target>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.flywaydb</groupId>
<artifactId>flyway-maven-plugin</artifactId>
<version>3.0</version>
<configuration>
<driver>${db-driver-name}</driver>
<url>${db-url}</url>
<user>${db-user-name}</user>
<password>${db-user-password}</password>
<locations>
<location>filesystem:./target/flyway</location>
</locations>
<schemas>
<schema>SCHEMA</schema>
</schemas>
</configuration>
</plugin>
不,这是不可能的。你可以做的是创建两个不同的文件夹,并在你执行da命令运行Flyway的那一刻,你传递一个参数说女巫文件夹Flyway应该读取。
尝试运行基于Java的(编译的)迁移文件,这些文件不在配置Flyway的项目中。谁能告诉我这样做是可能的吗? 我创建了一个使用飞行方式进行迁移的罐子。Jar 需要一个参数,即迁移脚本的位置。迁移脚本位于不同的位置/项目中。到目前为止,所有脚本都是基于 SQL 的。(即)。需要添加一个基于java的迁移脚本,做一些复杂的逻辑。 试图添加pom。xml到脚本位置,以及db/migration文件夹中的
在该项目中,我们使用Flyway迁移工具来开发数据库模式以及这些脚本的git历史。 这个想法是每个脚本编号都以number为前缀,增加值10,然后是名称,例如: 0000_name_one。sql 0010_name_two。sql 0020_name_tree.sql 等 但是,由于我们必须开始处理多个分支(例如,两个主要分支是:主master_ext),再加上我们有一些用于耗时功能的开发分支
我找不到夸克。飞道。在我的Quarkus应用程序中工作的占位符。我在申请表中定义了这一行。属性文件 在我的sql文件中,我有一行 我得到的错误是 以下是我尝试过的事情: 升级到Quarkus 1.13.6。期末考试 尝试设置 如集成测试所示:https://github.com/quarkusio/quarkus/tree/main/integration-tests/flyway 谢谢你马修
我有一个Gradle脚本,它使用flyway插件来创建一些数据库表,现在我需要更新该脚本,以便它可以与两组单独的flyway脚本一起工作,每个脚本更新一个单独的数据库。 在单数据库版本的脚本中,我只是这样做: 我一直在尝试声明一个新任务来运行第二个数据库的脚本: 我的Gradle技能很差,但我知道这不是正确的方法——我的理解是块会覆盖原始flyway配置,所以如果我想在之后运行,它会继续使用第二组
My flyway config-使用mvn包运行flyway 我有一个maven应用程序,可以很好地用于一个DB(使用h2数据库引擎),我需要支持flyway到其他DB系统(db2、oracle ee、postgres)。在另一个项目中,我们正在flyway版本3.2.1上执行类似的flyway配置文件,以管理h2和timesten之间的表cration。 (新发现)当我在hte pom文件中使