2011-05-24 49 views
2

我今天开始测试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块与我的更改无关。任何人都知道为什么会这样?

回答

1

http://jira.grails.org/browse/GPDATABASEMIGRATION上写下一个问题,提供重现信息(数据库供应商以及理想情况下的一些代码和数据库模式),然后我会看看可以做些什么。最糟糕的情况是您需要将多个元素合并为一个 - 这是棘手的问题,需要自动执行,通常需要人为干预。