【发布时间】:2021-03-28 18:32:03
【问题描述】:
在非测试环境中,我可以像这样设置 bean 以使用 schema.sql 初始化数据库
@Bean
ConnectionFactoryInitializer initializer(@Qualifier("connectionFactory") ConnectionFactory connectionFactory) {
ConnectionFactoryInitializer initializer = new ConnectionFactoryInitializer();
initializer.setConnectionFactory(connectionFactory);
initializer.setDatabasePopulator(new ResourceDatabasePopulator(new ClassPathResource("schema.sql")));
return initializer;
}
问题是,我想做这样的事情,但出于测试目的。我正在尝试对数据库进行某种集成测试,因此我也希望将架构插入到虚拟数据库中。
我已经尝试过使用这个注解,但它仍然不会执行
@Sql(scripts = "classpath:schema.sql", executionPhase = Sql.ExecutionPhase.BEFORE_TEST_METHOD)
我在我的测试资源文件夹中创建了一个单独的 application-test.properties 包含此属性值
spring.r2dbc.url=r2dbc:postgresql://localhost:5432/test
spring.r2dbc.username=postgres
logging.level.org.springframework.r2dbc=DEBUG
并且还添加了@ActiveProfiles(profiles = "test") 注释。
【问题讨论】:
标签: java spring spring-data-r2dbc r2dbc r2dbc-postgresql