【发布时间】:2023-03-16 10:27:01
【问题描述】:
在我的 Spring Boot 应用程序中,我希望 Liquibase 在 PostgreSQL 数据库上创建表,因此在我的配置类中,我设置了一个返回 MultiTenantSpringLiquibase 的 Bean,其中包含它应该使用的架构名称。
问题是这个 Bean 被创建但被忽略了,Spring Boot 在 LiquibaseAutoConfiguration 中找到一个有效的 SpringLiquibase Bean,并在我的数据库上使用它,访问我打算用于 MultiTenantSpringLiquibase 的相同更改日志。这失败了,因为此配置尝试使用不存在的模式“public”。如果确实存在,它会创建我在更改日志中定义的表,但我不希望它们出现在“公共”架构中。
如何防止 LiquibaseAutoConfiguration 或 SpringLiquibase 执行,以便使用我的 MultiTenantSpringLiquibase Bean?
【问题讨论】:
-
我上个月做了这个,但我现在在家。星期一在这里不好回答。
-
您可以跳过默认架构,只在其他架构中执行迁移。如果作品我作为答案发布
-
你能提供给我们你的 MultiTenantSpringLiquibase 的 bean 定义吗?由于这个类实现了 InitializingBean 接口,Spring 应该在将 bean 添加到应用程序上下文之后立即调用 afterPropertiesSet 方法。当您在此方法中设置调试器断点时会发生什么?
标签: spring spring-boot liquibase