【问题标题】:Is it possible to pass table name as as argument in liquibase changeset?是否可以将表名作为 liquibase 变更集中的参数传递?
【发布时间】:2017-07-10 21:49:19
【问题描述】:

spring 应用程序启动时我正在执行 liquibase chnageset

<changeSet author="kbatra" id="1.2">
        <createTable schemaName="public" tableName="table_a">
            <column name="id" autoIncrement="true" type="BIGINT">
                <constraints primaryKey="true" />
            </column>
            <column name="first_name" type="varchar(255)" />
            <column name="last_name" type="varchar(255)" />
            <column name="username" type="varchar(255)">
                <constraints unique="true" />
            </column>
            <column name="password" type="varchar(1000)" />
            <column name="email" type="varchar(255)" />
        </createTable>
    </changeSet>

现在我想要的是执行相同的 changeSet 但使用 不同的表名是否可以传递表名 liquibase 作为春季的论据?有没有其他的 实现同样的场景?

我正在开发 spring hibernate 应用程序的一个模块,其中我 必须生成相同的 sql 模式结构但具有不同的表 如果不可能,则根据用户要求在运行时命名 通过 liquibase 那么我怎样才能实现这种情况,任何人都可以 请帮我设计这个模块的架构?

【问题讨论】:

    标签: java spring hibernate architecture liquibase


    【解决方案1】:

    您需要在变更集中使用可替换参数,然后在部署变更集时设置这些参数。您的变更集可能如下所示:

    <changeSet author="kbatra" id="1.2">
            <createTable schemaName="public" tableName="${USER_TABLE_NAME}">
                <column name="id" autoIncrement="true" type="BIGINT">
                    <constraints primaryKey="true" />
                </column>
                <column name="first_name" type="varchar(255)" />
                <column name="last_name" type="varchar(255)" />
                <column name="username" type="varchar(255)">
                    <constraints unique="true" />
                </column>
                <column name="password" type="varchar(1000)" />
                <column name="email" type="varchar(255)" />
            </createTable>
        </changeSet>
    

    然后您需要在运行应用程序启动时运行的 liquibase update 命令时设置 USER_TABLE_NAME 的值。

    【讨论】:

    • 感谢您的回复
    猜你喜欢
    • 2011-04-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-07
    • 1970-01-01
    相关资源
    最近更新 更多