java - 数据库未从 Liquibase Java API 更新

标签 java liquibase

我正在使用 Liquibase java API 从 databaseChangeLog 文件更新我的数据库。代码正在运行,但更改未反射(reflect)在数据库中。 代码如下:

public class testclass {
    public static void main(String[] args) {
        try{
            Class.forName("oracle.jdbc.driver.OracleDriver");
            Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@a_valid_hostname:1521:db11gr2",
                    "[username]", "[password]");
            Database database = DatabaseFactory.getInstance().findCorrectDatabaseImplementation(new JdbcConnection(conn));
            DatabaseChangeLog log = new DatabaseChangeLog("E:\\Delta.xml");
            Liquibase liquibase = new liquibase.Liquibase(log, new ClassLoaderResourceAccessor(), database);
            liquibase.update(new Contexts(), new LabelExpression());
            System.out.println("COMPLETED");
        }catch(Exception e){
            e.printStackTrace();
        }
    }
}

我做错了什么吗?请帮帮我。

最佳答案

仔细查看您的代码,我怀疑您可能使用了错误类型的 ResourceAccessor

文件 "E:\\Delta.xml" 实际上在您的类路径中吗?如果不是,请更改此行

Liquibase liquibase = new liquibase.Liquibase(log, new ClassLoaderResourceAccessor(), database);

Liquibase liquibase = new liquibase.Liquibase(log, new FileSystemResourceAccessor(), database);

这告诉 liquibase 从文件系统而不是类路径读取变更日志文件。

关于java - 数据库未从 Liquibase Java API 更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33895237/

相关文章:

java - 为 Liquibase 任务添加 Gradle 任务

java - IntelliJ Idea 需要很长时间才能启动(JetBrains CertificateException)

java - 将 binarySearch 与比较器和正则表达式一起使用

java - 带有 appcompat 库 v7 的 ActionBar(java.lang.IllegalStateException : You need to use a Theme. AppCompat 主题)

java - Liquibase maven 插件未使用类路径属性

postgresql - 检查 TestContainers 的内容

java - 对SAML和OAUTH的质疑

java - Hadoop、MapReduce - 多输入/输出路径

grails - dropPrimaryKey顺序错误

java - 如何使用 jar 文件中的 Liquibase 变更日志