【发布时间】:2020-01-20 05:32:08
【问题描述】:
我有两个 Spring Boot Web 服务,它们必须都使用相同的数据库、相同的模式和相同的表——一个服务从表中读取,另一个向它们写入。现在其中一项服务正在开发中,并与内存数据库而不是真实数据库一起使用,因此我可以让每个服务都包含自己的数据库迁移副本。一旦两个服务都在同一个数据库上工作,这将不起作用——第一个启动的服务将运行其迁移,而另一个将失败。但是这两个项目仍然需要进行迁移,因为它们需要为自动化测试创建内存数据库。
作为一种解决方案,我正在创建第三个项目,其唯一职责是运行迁移,两个原始应用程序都会从这个新应用程序中提取迁移,但我不知道如何实现这一点。
我见过的最接近我需要的是来自another SO question的这段代码:
sourceSets {
main {
resources {
srcDirs += [
project(':data').sourceSets.main.resources
]
}
}
}
但这是为了包含来自另一个本地项目的资源,而不是来自 gradle 依赖项。我已经列出了我的私人 Maven 存储库并解决了依赖关系,但是我很难理解要写什么而不是上面那个块的内行。
repositories {
mavenCentral()
maven {
url "http://my.repo.link/"
}
}
dependencies {
// other dependencies
runtime 'my.group:database-project:1.0'
}
【问题讨论】:
标签: spring-boot gradle flyway