postgresql Spring的Hibernate中的模式管理器是什么?我是如何设置它的?

6za6bjd0  于 2023-01-30  发布在  PostgreSQL
关注(0)|答案(1)|浏览(134)

在一个spring-data-jpa项目测试的时候,有一些表掉到了开发环境中,负责这个表的开发人员说只使用了spring.jpa.hibernate.ddl-auto=update,查到这里,我怀疑他把它设置成了create-drop,但是他说他没有使用,所以我查了这个信息:
Boot 根据它是否认为数据库是嵌入式的来为您选择默认值。如果没有检测到模式管理器,它默认为create-drop
由于他的应用程序实际上设法连接到我们的开发环境PostgreSQL数据库(因为它删除了一些表),我开始认为他可能忘记设置hbm2ddl.auto,并自动设置为create-drop
有没有可能连接到PostgreSQL却没有定义一个有效的模式管理器?最常见的模式管理器是什么?
PS:在此应用程序中,@DataSource设置为:

@Bean
public DataSource dataSource() {
    Class.forName("org.postgresql.Driver");
    DriverManagerDataSource dataSource = new DriverManagerDataSource();
    dataSource.setUrl(someUrlConnectionStringFromApplicationDotPropertiesFile);
    return dataSource;
}

我知道spring-data-jpa会自动设置所有带有spring jpa属性的东西,而不需要这个方法,这是目前不可更改的遗留代码:(

56lgkhnf

56lgkhnf1#

Sping Boot 说他们是更高级别的数据库迁移工具(Flyway或Liquibase)。参考:https://docs.spring.io/spring-boot/docs/2.7.x/reference/html/howto.html#howto.data-access.jpa-properties,https://docs.spring.io/spring-boot/docs/2.7.x/参考/html/如何操作。html#如何操作。数据访问。jpa属性
您也可以通过Sping Boot 文档或它们自己的docs. ref进行配置:https://docs.spring.io/spring-boot/docs/2.7.x/reference/html/howto.html#howto.data-initialization.migration-tool
例如,通过maven(https://flywaydb.org/download/community)配置Flyway社区版本:

<build>
    ...
    <plugin>
        <groupId>org.flywaydb</groupId>
        <artifactId>flyway-maven-plugin</artifactId>
        <version>9.12.0</version>
    </plugin>
    ...
</build>

相关问题