迁移文件中所有多余的垃圾是什么?

问题描述

| 我今天开始测试grails数据库迁移插件。我与域进行了初始同步,然后基于运行diff命令创建了一个新的变更日志。这本来应该很简单,例如重命名一列并(再)将索引分配给该列。所以我希望看到以下内容...
changeSet(author: \"gdboling (generated)\",id: \"1306242441630-1\") {
    addColumn(tableName: \"manuscript_review_reviewer\") {
        column(name: \"reviewer_id\",type: \"bigint\") {
            constraints(nullable: \"false\")
        }
    }
}
changeSet(author: \"gdboling (generated)\",id: \"1306242441630-2\") {
    addPrimaryKey(columnNames: \"manuscript_review_id,reviewer_id\",constraintName: \"manuscript_rePK\",tableName: \"manuscript_review_reviewer\")
}
changeSet(author: \"gdboling (generated)\",id: \"1306242441630-3\") {
    dropPrimaryKey(tableName: \"manuscript_review_reviewer\")
}
changeSet(author: \"gdboling (generated)\",id: \"1306242441630-4\") {
    dropForeignKeyConstraint(baseTableName: \"manuscript_review_reviewer\",baseTableSchemaName: \"manning_main_dev\",constraintName: \"FK9BEFBBB34863C659\")
}
changeSet(author: \"gdboling (generated)\",id: \"1306242441630-179\") {
    addForeignKeyConstraint(baseColumnNames: \"reviewer_id\",baseTableName: \"manuscript_review_reviewer\",constraintName: \"FK9BEFBBB3A28B41DF\",deferrable: \"false\",initiallyDeferred: \"false\",referencedColumnNames: \"id\",referencedTableName: \"user\",referencesUniqueColumn: \"false\")
}
changeSet(author: \"gdboling (generated)\",id: \"1306242441630-212\") {
    dropColumn(columnName: \"user_id\",tableName: \"manuscript_review_reviewer\")
}
一切都很好。但是,我也看到很多dropIndex和createIndex块与我的更改无关。有人知道为什么会这样吗?     

解决方法

在http://jira.grails.org/browse/GPDATABASEMIGRATION上写一个问题,其中包含要重现的信息(数据库供应商,最好是一些代码和您的数据库模式),我将看看可以做什么。最坏的情况是您需要将多个元素折叠为一个-这是棘手的工作,需要自动化,通常需要人工干预。