1
我有一個spring roo hibernate項目和一個MySql數據庫,我想用liquibase來管理遷移。liquibase case diff和generateChangeLog問題
我生成了初始更新日誌,並執行了changelogSync以將所有更新日誌標記爲已應用。現在,當我做了差異(沒有修改任何東西),我預計差異是空的。然而,它刪除了所有現有的表格並創建了具有不同名稱的新表格。
例如,一個樣品變更與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 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>
有沒有,我很想念任何設置?
這是非常奇怪的。你確定你在兩個實例中都使用了相同的數據庫嗎?如果只存在案例差異,那將是一回事,但我也看到名稱上的差異(user_roles vs User_Role)。這讓我覺得有一些不尋常的事情發生。我會使用像Squirrel SQL或MySqlAdmin這樣的外部工具來查看是否存在多個數據庫/模式。 – SteveDonie
單個數據庫。我放棄了schema,並在運行generateChangeLog和diff之前使用hibernate的hbm2ddl生成基本表。 –