diff和generateChangeLog中的Liquibase案例问题



我有一个春季房间hibernate项目和一个MySql数据库,我想使用liquibase来管理迁移。

我生成了初始的变更日志,并执行了changelogSync,将所有的变更日志标记为已应用。现在,当我执行diff(不修改任何内容)时,我期望diff为空。但是,它删除了所有现有的表,并创建了具有不同名称的新表。

。一个带有generateChangeLog的示例更改集:

<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> 

changeSet with 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>

是否缺少任何设置?

我没有在引用url中指定命名策略。我假设它会从persistenceUnit的属性中拾取它。

所以我修改了

referenceUrl:hibernate:ejb3:persistenceUnit

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

相关内容

  • 没有找到相关文章

最新更新