【问题标题】:Put postgres function files in classpath and execute on Spring Boot start up event, it is a good idea?将 postgres 函数文件放在类路径中并在 Spring Boot 启动事件上执行,这是个好主意吗?
【发布时间】:2019-09-19 12:40:40
【问题描述】:
我有一个具有许多 postgres 功能的项目,目前每次更新这些功能时,我们都必须在 postgresql 服务器中手动运行,所以我想使用我的 spring boot 项目的启动事件来自动执行这些更新,读取所有 sql 文件并直接执行jdbctemplate 或其他东西,但我不知道这是一个很好的做法,或者可能会导致问题。我所有 postgrest 的函数文件都有 'CREATE OR REPLACE FUNCTION'
【问题讨论】:
标签:
java
postgresql
spring-boot
【解决方案1】:
您需要使用一个库来为您处理数据库迁移。您必须配置库,在脚本文件中定义所有 SQL(表、函数等),然后在必要时在应用程序启动时执行这些 SQL。
此类库的两个非常流行的例子是Flyway 和Liquibase。
网上有很多关于使用这两个库的信息。