java - Liquibase,如何在 Java 中以编程方式设置默认模式

标签 java postgresql liquibase

我正在尝试在我的应用程序代码中运行 Liquibase。问题是在公共(public)模式中创建了新表 ale,我如何将 liquibase 指向我的 Postgres 中的不同模式。

    Liquibase liquibase = null;
    Connection connection = null;
    try {

        connection = DB.getConnection();
        liquibase = new Liquibase(CHANGELOG_FILE, new FileSystemResourceAccessor(), new JdbcConnection(connection));

        //change default schema here

        liquibase.update(STAGE);

    } catch (LiquibaseException e) {

    } finally {
        if (connection != null) {
            try {
                connection.rollback();
                connection.close();
            } catch (SQLException e) {

            }
        }
    }

最佳答案

您可以使用 schemaName 属性在变更集中指定架构。所以您不需要以编程方式编写它。

Here您可以查看官方文档以了解您可以执行的每个重构/变更集。花点时间看看如何指定每个重构的目标模式。

例如添加列变更集:

<changeSet author="liquibase-docs" id="addColumn-example">
  <addColumn catalogName="cat"
        schemaName="public"
        tableName="person">
    <column name="address" type="varchar(255)"/>
  </addColumn>
</changeSet>

关于java - Liquibase,如何在 Java 中以编程方式设置默认模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32758783/

相关文章:

c# - 号码本地化不是不必要的吗?

python - 如何将用户输入变量传递给Sqlalchemy语句?

java - liquibase-maven-插件日志级别

java - 一段时间后数据库查询挂起

java - JsessionID解码日期提取

Java 同步与更严格的数据库隔离级别?

表上的 SQL AVG

java - Liquibase:将列更改为 DB2 中的自动增量列(标识)

mysql - Liquibase 使用函数创建索引

java - 在UNO安装中的Accumulo 2.0上运行Hello World示例InsertWithBatchWriter的问题