java - Flyway - Oracle PL/SQL 过程迁移

标签 java oracle flyway

更新 schema_version 表并在 Flyway 中执行修改后的 PL/SQL 包/过程而不重复代码的更好方法是什么?

我的示例需要为每个 PL/SQL 代码修改创建一个类文件

public class V2_1__update_scripts extends AbstractMigration {
    // update package and procedures
}

AbstractMigration 类执行 db/update 文件夹中的文件:

public abstract class AbstractMigration implements SpringJdbcMigration {
    private static final Logger log = LoggerFactory.getLogger(AbstractMigration.class);

    @Override
    public void migrate(JdbcTemplate jdbcTemplate) throws Exception {
        Resource packageFolder = new ClassPathResource("db/update");
        Collection<File> files = FileUtils.listFiles(packageFolder.getFile(), new String[]{"sql"}, true);
        for (File file : files ) {
            log.info("Executing [{}]", file.getAbsolutePath());
            String fileContents = FileUtils.readFileToString(file);
            jdbcTemplate.execute(fileContents);
        }
    }
}

有没有更好的方法来执行 PL/SQL 代码?

最佳答案

我想知道是否最好将代码复制到标准迁移文件夹中。似乎在给定的示例中,您将无法迁移到数据库的版本 N,因为某些先前版本将执行 pl/sql 的所有当前版本。我很想知道您是否为此找到了解决方案。

关于java - Flyway - Oracle PL/SQL 过程迁移,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11879973/

相关文章:

java - ImagePanel 未显示在我的带有 netbeans 的 jar 文件中

java - FlywayDB : Run same name SQL again

command-line-interface - 安装 flyway CLI 给出命令未找到

.net - System.Runtime.InteropServices.COMException(0x80070008): Not enough storage is available to process this command

git - flywaydb脚本版本号冲突如何解决

java - 使用各种键作为值反序列化 json

java - 我没有让循环在每次循环后获取新值?

java - 集合的最佳 Java 线程安全锁定机制?

mysql - Hive - 标准化 Hive 中传入日期字段的方法?

oracle - 插入期间违反唯一约束:为什么? (甲骨文)