Что со всем лишним мусором в файле миграции? - PullRequest
2 голосов
/ 24 мая 2011

Я начал тестировать плагин миграции базы данных 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 Ответ

1 голос
/ 24 мая 2011

Напишите проблему на http://jira.grails.org/browse/GPDATABASEMIGRATION с информацией для воспроизведения (поставщик базы данных и в идеале некоторый код и схема вашей базы данных), и я посмотрю, что можно сделать. В худшем случае вам нужно будет объединить несколько элементов в один - это сложная задача для автоматизации, и обычно требуется вмешательство человека.

...