在服务运行时从类路径执行 .sql 文件

Posted

技术标签:

【中文标题】在服务运行时从类路径执行 .sql 文件【英文标题】:Executing .sql files from classpath, while the service is running 【发布时间】:2022-01-24 06:09:49 【问题描述】:

我正在做一个项目,我需要以下功能:

我有一个 Springboot Tomcat 服务器正在运行,我想要的是能够自动扫描特定位置的 .SQL 文件并在特定数据库中执行上述 DML 和 DDL 命令。但是我希望它是动态的,当一个新文件添加到该位置时,它就会被拾取并执行。

我试过 Flyway,但它只在启动时从路径中选择文件。有没有有效的方法来做到这一点?我想到的一种方法是安排 CRON 并定期扫描文件路径并执行所有 SQL 文件并在 DB 表上设置过程以防止不必要的更新(执行之前已经完成的更新)。

【问题讨论】:

【参考方案1】:

Flyway 不仅可以在启动时执行,还可以调用mvn flyway:migrate

您可以尝试按照here 的描述以编程方式执行 mvn

【讨论】:

以上是关于在服务运行时从类路径执行 .sql 文件的主要内容,如果未能解决你的问题,请参考以下文章

是否可以在 Windows 上运行时从可执行文件中定位函数?

如何在运行时从 nhibernate 映射文件生成实体类

在 Unity 的运行时从文件动态加载带有 Texture2D 的纹理列表

如何从java执行sql文件

如何在运行时从 JVM 中提取类文件

Apache Flink:在运行时从外部更改状态参数