mirror of
https://github.com/ebean-orm/ebean.git
synced 2024-04-21 10:51:47 +00:00
DbMigration supports altering UniqueConstraints and foreign keys (#1279)
* NEW: Ebean reads version from pop.properties and prints it at start up * DDL generation and migration can append a header and platformMigration is prepared to append epilog & prolog to scripts * FIX: Set identity only, if it is not the platform default type * Updated reference scripts * ADD basic support for foreign key migration * DbMigration detects alter foreign keys * tests
This commit is contained in:
committed by
Rob Bygrave
parent
a64a244745
commit
da7bb834e7
@@ -404,7 +404,9 @@ public class MColumn {
|
||||
alter.setCheckConstraint(newColumn.checkConstraint);
|
||||
}
|
||||
}
|
||||
if (different(references, newColumn.references)) {
|
||||
if (different(references, newColumn.references)
|
||||
|| hasValue(newColumn.references) && fkeyOnDelete != newColumn.fkeyOnDelete
|
||||
|| hasValue(newColumn.references) && fkeyOnUpdate != newColumn.fkeyOnUpdate) {
|
||||
// foreign key change
|
||||
AlterColumn alter = getAlterColumn(tableName, tableWithHistory);
|
||||
if (hasValue(foreignKeyName)) {
|
||||
@@ -418,6 +420,12 @@ public class MColumn {
|
||||
alter.setReferences(newColumn.references);
|
||||
alter.setForeignKeyName(newColumn.foreignKeyName);
|
||||
alter.setForeignKeyIndex(newColumn.foreignKeyIndex);
|
||||
if (newColumn.fkeyOnDelete != null) {
|
||||
alter.setForeignKeyOnDelete(fkeyModeOf(newColumn.fkeyOnDelete));
|
||||
}
|
||||
if (newColumn.fkeyOnUpdate != null) {
|
||||
alter.setForeignKeyOnUpdate(fkeyModeOf(newColumn.fkeyOnUpdate));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -513,6 +521,11 @@ public class MColumn {
|
||||
comment = null;
|
||||
}
|
||||
}
|
||||
|
||||
if (hasValue(alterColumn.getForeignKeyOnDelete())) {
|
||||
fkeyOnDelete = fkeyMode(alterColumn.getForeignKeyOnDelete());
|
||||
}
|
||||
if (hasValue(alterColumn.getForeignKeyOnUpdate())) {
|
||||
fkeyOnUpdate = fkeyMode(alterColumn.getForeignKeyOnUpdate());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user