首页 文章

Liquibase案例在diff和generateChangeLog中出现问题

提问于
浏览
1

我有一个spring roo hibernate项目和一个MySql数据库,我想使用liquibase来管理迁移 .

我生成了初始更改日志并执行了changelogSync以将所有更改日志标记为已应用 . 现在当我做一个差异(没有修改任何东西)时,我预计差异是空的 . 但是它删除了所有现有表并创建了具有不同名称的新表 .

例如 . 使用generateChangeLog的一个示例changeSet:

<changeSet author="author (generated)" id="1437392254522-37">
    <createTable tableName="user_roles">
        <column name="user" type="BIGINT(19)">
            <constraints nullable="false"/>
        </column>
        <column name="roles" type="BIGINT(19)">
            <constraints nullable="false"/>
        </column>
    </createTable>
</changeSet>

使用diff进行更改:

<changeSet author="author (generated)" id="1437395711084-26">
    <createTable tableName="User_Role">
        <column name="User_id" type="BIGINT">
            <constraints nullable="false"/>
        </column>
        <column name="roles_id" type="BIGINT">
            <constraints nullable="false"/>
        </column>
    </createTable>
</changeSet>

有什么设置让我失踪吗?

1 回答

  • 3

    我没有在参考网址中指定命名策略 . 我假设它会从persistenceUnit的属性中获取它 .

    所以我修改了

    referenceUrl:hibernate:ejb3:persistenceUnit
    

    referenceUrl:hibernate:ejb3:persistenceUnit?hibernate.ejb.naming_strategy=org.hibernate.cfg.ImprovedNamingStrategy
    

相关问题