是否可以仅在超过特定目标版本时运行可重复迁移?
例如,
Current version: 0.7.0
V0.7.0__cars.sql
CREATE TABLE cars (
id INT NOT NULL PRIMARY KEY,
license_plate VARCHAR NOT NULL,
color VARCHAR NOT NULL
);
R__Blue_cars.sql
CREATE OR REPLACE VIEW blue_cars AS SELECT id, license_plate FROM cars WHERE color='blu
即使校验和相同,也可以在flyway中执行可重复迁移吗?我面临的问题是有一个视图,它扩展了另一个表,增加了行,而视图不会自动更新。 下面是一个示例: R__person_view.sql CREATE OR REPLACE VIEW person_view AS
SELECT p.*, e.name FROM person p, entity e
WHERE /* not relevant here ... */; 如果首先执行此迁移,它将工作得很好。如果我添加另一个迁移,其中我修改了表person,则不会调整更改,因为视图迁移校验和没有更改。
我需要在Hibernate生成所有模式表之后执行Flyway迁移。在迁移到Spring Boot2.2之前,这段代码运行良好
@Configuration
public class BaseFlywayConfiguration {
/**
* Override default flyway initializer to do nothing
*/
@Bean
FlywayMigrationInitializer flywayInitializer(Flyway flyway) {
return new FlywayMigratio
我在我本地的macbook pro中使用flyway db version 6.0.8与MySQL数据库集成。我已经在~/sql下放置了一个create table脚本,并使用下面的命令进行迁移。但是它没有创建表,它只创建了"flyway_schema_history“,而不是实际的表。
Conf文件:
flyway.user=flyway
flyway.url=jdbc:mysql://127.0.0.1:3306/db
以下是飞行日志:
Flyway Community Edition 6.0.8 by Redgate
Database: jdbc:mysql://127.0.0.
我正在一个Spring项目中实现一个集成测试套件。我的项目是使用Flyway进行数据库迁移。
我的测试类看起来类似于以下内容:
@SpringBootTest
@AutoConfigureMockMvc
@Testcontainers
internal class MyIntegrationTest {
@Container
private val postgres = postgresContainer
@Autowired
private lateinit var mockMvc: MockMvc
// ... several test case
我有一个基于spring引导的应用程序,我想在这个应用程序上运行天桥迁移。该应用程序只需要在特定情况下运行天桥迁移。例如,如果将“迁移”参数传递给Main()。
还有两个不同的数据资源需要迁移。
@SpringBootApplication
public class ExampleMain implements CommandLineRunner {
public static void main(String[] args) {
new SpringApplicationBuilder(ExampleMain.class)
在使用可重复迁移时,我观察到了一些奇怪的天桥行为。文件指出:
在单个迁移运行中,在执行所有挂起的版本迁移之后,总是最后应用可重复的迁移。
但在我的例子中,可重复迁移(它正在重新创建一个DB视图)似乎失败了,因为它是在版本迁移之前执行的。
天桥信息数据,从迁移前:+-------------------+---------------------+---------------------+---------+ | Version | Description | Installed on | State | +----