From b642b3c644cdb65e2e604db93bedcda6cb120a40 Mon Sep 17 00:00:00 2001 From: Roland Praml Date: Fri, 2 Mar 2018 00:16:29 +0100 Subject: [PATCH] FIX: Splitcolumns must return an empty array if string was empty (#1315) * Add test suite from rpraml * FIX: Splitcolumns must return an empty array if string was empty * Just the reference scripts --- .../ddlgeneration/platform/SplitColumns.java | 3 + .../java/misc/migration/v1_0/CKeyAssoc.java | 32 ++++++++ .../java/misc/migration/v1_0/CKeyDetail.java | 41 ++++++++++ .../java/misc/migration/v1_0/CKeyParent.java | 44 +++++++++++ .../misc/migration/v1_0/CKeyParentId.java | 60 ++++++++++++++ src/test/java/misc/migration/v1_0/ERef.java | 9 +++ .../java/misc/migration/v1_0/MtmChild.java | 34 ++++++++ .../java/misc/migration/v1_0/MtmMaster.java | 32 ++++++++ .../java/misc/migration/v1_0/OtoChild.java | 32 ++++++++ .../java/misc/migration/v1_0/OtoMaster.java | 32 ++++++++ .../java/misc/migration/v1_1/CKeyAssoc.java | 32 ++++++++ .../java/misc/migration/v1_1/CKeyDetail.java | 57 ++++++++++++++ .../java/misc/migration/v1_1/CKeyParent.java | 78 +++++++++++++++++++ .../misc/migration/v1_1/CKeyParentId.java | 60 ++++++++++++++ src/test/java/misc/migration/v1_1/EBasic.java | 1 + .../java/misc/migration/v1_1/MtmChild.java | 45 +++++++++++ .../java/misc/migration/v1_1/MtmMaster.java | 46 +++++++++++ .../java/misc/migration/v1_1/OtoChild.java | 44 +++++++++++ .../java/misc/migration/v1_1/OtoMaster.java | 45 +++++++++++ .../java/misc/migration/v1_2/CKeyAssoc.java | 32 ++++++++ .../java/misc/migration/v1_2/CKeyDetail.java | 41 ++++++++++ .../java/misc/migration/v1_2/CKeyParent.java | 44 +++++++++++ .../misc/migration/v1_2/CKeyParentId.java | 60 ++++++++++++++ src/test/java/misc/migration/v1_2/ERef.java | 9 +++ .../java/misc/migration/v1_2/MtmChild.java | 34 ++++++++ .../java/misc/migration/v1_2/MtmMaster.java | 32 ++++++++ .../java/misc/migration/v1_2/OtoChild.java | 32 ++++++++ .../java/misc/migration/v1_2/OtoMaster.java | 32 ++++++++ .../migrationtest/db2/1.0__initial.sql | 46 +++++++++++ .../dbmigration/migrationtest/db2/1.1.sql | 38 +++++++++ .../dbmigration/migrationtest/db2/1.3.sql | 4 + .../migrationtest/db2/1.4__dropsFor_1.3.sql | 10 +++ .../migrationtest/h2/1.0__initial.sql | 46 +++++++++++ .../dbmigration/migrationtest/h2/1.1.sql | 38 +++++++++ .../dbmigration/migrationtest/h2/1.3.sql | 4 + .../migrationtest/h2/1.4__dropsFor_1.3.sql | 10 +++ .../migrationtest/hsqldb/1.0__initial.sql | 46 +++++++++++ .../dbmigration/migrationtest/hsqldb/1.1.sql | 38 +++++++++ .../dbmigration/migrationtest/hsqldb/1.3.sql | 4 + .../hsqldb/1.4__dropsFor_1.3.sql | 10 +++ .../model/1.0__initial.model.xml | 32 ++++++++ .../migrationtest/model/1.1.model.xml | 24 ++++++ .../migrationtest/model/1.3.model.xml | 10 +++ .../model/1.4__dropsFor_1.3.model.xml | 6 ++ .../migrationtest/mysql/1.0__initial.sql | 46 +++++++++++ .../dbmigration/migrationtest/mysql/1.1.sql | 38 +++++++++ .../dbmigration/migrationtest/mysql/1.3.sql | 4 + .../migrationtest/mysql/1.4__dropsFor_1.3.sql | 10 +++ .../migrationtest/oracle/1.0__initial.sql | 52 +++++++++++++ .../dbmigration/migrationtest/oracle/1.1.sql | 38 +++++++++ .../dbmigration/migrationtest/oracle/1.3.sql | 4 + .../oracle/1.4__dropsFor_1.3.sql | 10 +++ .../migrationtest/postgres/1.0__initial.sql | 46 +++++++++++ .../migrationtest/postgres/1.1.sql | 38 +++++++++ .../migrationtest/postgres/1.3.sql | 4 + .../postgres/1.4__dropsFor_1.3.sql | 10 +++ .../migrationtest/sqlite/1.0__initial.sql | 46 +++++++++++ .../dbmigration/migrationtest/sqlite/1.1.sql | 27 +++++++ .../dbmigration/migrationtest/sqlite/1.3.sql | 4 + .../sqlite/1.4__dropsFor_1.3.sql | 10 +++ .../migrationtest/sqlserver/1.0__initial.sql | 52 +++++++++++++ .../migrationtest/sqlserver/1.1.sql | 38 +++++++++ .../migrationtest/sqlserver/1.3.sql | 5 ++ .../sqlserver/1.4__dropsFor_1.3.sql | 54 +++++++++++++ 64 files changed, 1945 insertions(+) create mode 100644 src/test/java/misc/migration/v1_0/CKeyAssoc.java create mode 100644 src/test/java/misc/migration/v1_0/CKeyDetail.java create mode 100644 src/test/java/misc/migration/v1_0/CKeyParent.java create mode 100644 src/test/java/misc/migration/v1_0/CKeyParentId.java create mode 100644 src/test/java/misc/migration/v1_0/MtmChild.java create mode 100644 src/test/java/misc/migration/v1_0/MtmMaster.java create mode 100644 src/test/java/misc/migration/v1_0/OtoChild.java create mode 100644 src/test/java/misc/migration/v1_0/OtoMaster.java create mode 100644 src/test/java/misc/migration/v1_1/CKeyAssoc.java create mode 100644 src/test/java/misc/migration/v1_1/CKeyDetail.java create mode 100644 src/test/java/misc/migration/v1_1/CKeyParent.java create mode 100644 src/test/java/misc/migration/v1_1/CKeyParentId.java create mode 100644 src/test/java/misc/migration/v1_1/MtmChild.java create mode 100644 src/test/java/misc/migration/v1_1/MtmMaster.java create mode 100644 src/test/java/misc/migration/v1_1/OtoChild.java create mode 100644 src/test/java/misc/migration/v1_1/OtoMaster.java create mode 100644 src/test/java/misc/migration/v1_2/CKeyAssoc.java create mode 100644 src/test/java/misc/migration/v1_2/CKeyDetail.java create mode 100644 src/test/java/misc/migration/v1_2/CKeyParent.java create mode 100644 src/test/java/misc/migration/v1_2/CKeyParentId.java create mode 100644 src/test/java/misc/migration/v1_2/MtmChild.java create mode 100644 src/test/java/misc/migration/v1_2/MtmMaster.java create mode 100644 src/test/java/misc/migration/v1_2/OtoChild.java create mode 100644 src/test/java/misc/migration/v1_2/OtoMaster.java diff --git a/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/SplitColumns.java b/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/SplitColumns.java index a1c83c4e2..6c906124e 100644 --- a/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/SplitColumns.java +++ b/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/SplitColumns.java @@ -6,6 +6,9 @@ public class SplitColumns { * Return as an array of string column names. */ public static String[] split(String columns) { + if (columns == null || columns.isEmpty()) { + return new String[0]; + } return columns.split(","); } diff --git a/src/test/java/misc/migration/v1_0/CKeyAssoc.java b/src/test/java/misc/migration/v1_0/CKeyAssoc.java new file mode 100644 index 000000000..75f0c7013 --- /dev/null +++ b/src/test/java/misc/migration/v1_0/CKeyAssoc.java @@ -0,0 +1,32 @@ +package misc.migration.v1_0; + +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.Table; + +@Entity +@Table(name = "migtest_ckey_assoc") +public class CKeyAssoc { + + @Id + Integer id; + + String assocOne; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getAssocOne() { + return assocOne; + } + + public void setAssocOne(String assocOne) { + this.assocOne = assocOne; + } + +} diff --git a/src/test/java/misc/migration/v1_0/CKeyDetail.java b/src/test/java/misc/migration/v1_0/CKeyDetail.java new file mode 100644 index 000000000..2d8c7f956 --- /dev/null +++ b/src/test/java/misc/migration/v1_0/CKeyDetail.java @@ -0,0 +1,41 @@ +package misc.migration.v1_0; + +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.Table; + +@Entity +@Table(name = "migtest_ckey_detail") +public class CKeyDetail { + + @Id + Integer id; + + String something; + + + public CKeyDetail() { + + } + + public CKeyDetail(String something) { + this.something = something; + } + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getSomething() { + return something; + } + + public void setSomething(String something) { + this.something = something; + } + +} diff --git a/src/test/java/misc/migration/v1_0/CKeyParent.java b/src/test/java/misc/migration/v1_0/CKeyParent.java new file mode 100644 index 000000000..dacf6febe --- /dev/null +++ b/src/test/java/misc/migration/v1_0/CKeyParent.java @@ -0,0 +1,44 @@ +package misc.migration.v1_0; + +import javax.persistence.EmbeddedId; +import javax.persistence.Entity; +import javax.persistence.Table; +import javax.persistence.Version; + +@Entity +@Table(name = "migtest_ckey_parent") +public class CKeyParent { + + @EmbeddedId + CKeyParentId id; + + String name; + + @Version + int version; + + public CKeyParentId getId() { + return id; + } + + public void setId(CKeyParentId id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public int getVersion() { + return version; + } + + public void setVersion(int version) { + this.version = version; + } + +} diff --git a/src/test/java/misc/migration/v1_0/CKeyParentId.java b/src/test/java/misc/migration/v1_0/CKeyParentId.java new file mode 100644 index 000000000..2413977b5 --- /dev/null +++ b/src/test/java/misc/migration/v1_0/CKeyParentId.java @@ -0,0 +1,60 @@ +package misc.migration.v1_0; + +import javax.persistence.Embeddable; +import javax.validation.constraints.Size; + +@Embeddable +public class CKeyParentId { + + @Size(max=127) + Integer oneKey; + + @Size(max=127) + String twoKey; + + public CKeyParentId() { + + } + + public CKeyParentId(Integer oneKey, String twoKey) { + this.oneKey = oneKey; + this.twoKey = twoKey; + } + + public Integer getOneKey() { + return oneKey; + } + + public void setOneKey(Integer oneKey) { + this.oneKey = oneKey; + } + + public String getTwoKey() { + return twoKey; + } + + public void setTwoKey(String twoKey) { + this.twoKey = twoKey; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (!(o instanceof CKeyParentId)) { + return false; + } + + CKeyParentId otherKey = (CKeyParentId) o; + return otherKey.hashCode() == hashCode(); + } + + @Override + public int hashCode() { + int hc = getClass().getName().hashCode(); + hc = 31 * hc + oneKey; + hc = 31 * hc + twoKey.hashCode(); + return hc; + } +} diff --git a/src/test/java/misc/migration/v1_0/ERef.java b/src/test/java/misc/migration/v1_0/ERef.java index c96f43d03..f4cfdf875 100644 --- a/src/test/java/misc/migration/v1_0/ERef.java +++ b/src/test/java/misc/migration/v1_0/ERef.java @@ -6,6 +6,10 @@ import javax.persistence.Entity; import javax.persistence.Id; import javax.persistence.OneToMany; import javax.persistence.Table; +import javax.validation.constraints.Size; + +import io.ebean.annotation.Index; +import io.ebean.annotation.NotNull; @Entity @Table(name = "migtest_e_ref") @@ -16,4 +20,9 @@ public class ERef { @OneToMany List basics; + + @NotNull + @Index(unique = true) + @Size(max=127) + String name; } diff --git a/src/test/java/misc/migration/v1_0/MtmChild.java b/src/test/java/misc/migration/v1_0/MtmChild.java new file mode 100644 index 000000000..c0f9f5918 --- /dev/null +++ b/src/test/java/misc/migration/v1_0/MtmChild.java @@ -0,0 +1,34 @@ +package misc.migration.v1_0; + + +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.Table; + +@Entity +@Table(name = "migtest_mtm_c") +public class MtmChild { + + @Id + Integer id; + + String name; + + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + +} diff --git a/src/test/java/misc/migration/v1_0/MtmMaster.java b/src/test/java/misc/migration/v1_0/MtmMaster.java new file mode 100644 index 000000000..87b23387c --- /dev/null +++ b/src/test/java/misc/migration/v1_0/MtmMaster.java @@ -0,0 +1,32 @@ +package misc.migration.v1_0; + +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.Table; + +@Entity +@Table(name = "migtest_mtm_m") +public class MtmMaster { + + @Id + Long id; + + String name; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + +} diff --git a/src/test/java/misc/migration/v1_0/OtoChild.java b/src/test/java/misc/migration/v1_0/OtoChild.java new file mode 100644 index 000000000..fceaf5eca --- /dev/null +++ b/src/test/java/misc/migration/v1_0/OtoChild.java @@ -0,0 +1,32 @@ +package misc.migration.v1_0; + +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.Table; + +@Entity +@Table(name = "migtest_oto_child") +public class OtoChild { + + @Id + Integer id; + + String name; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + +} diff --git a/src/test/java/misc/migration/v1_0/OtoMaster.java b/src/test/java/misc/migration/v1_0/OtoMaster.java new file mode 100644 index 000000000..770c3e754 --- /dev/null +++ b/src/test/java/misc/migration/v1_0/OtoMaster.java @@ -0,0 +1,32 @@ +package misc.migration.v1_0; + +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.Table; + +@Entity +@Table(name = "migtest_oto_master") +public class OtoMaster { + + @Id + Long id; + + String name; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + +} diff --git a/src/test/java/misc/migration/v1_1/CKeyAssoc.java b/src/test/java/misc/migration/v1_1/CKeyAssoc.java new file mode 100644 index 000000000..847ddc32c --- /dev/null +++ b/src/test/java/misc/migration/v1_1/CKeyAssoc.java @@ -0,0 +1,32 @@ +package misc.migration.v1_1; + +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.Table; + +@Entity +@Table(name = "migtest_ckey_assoc") +public class CKeyAssoc { + + @Id + Integer id; + + String assocOne; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getAssocOne() { + return assocOne; + } + + public void setAssocOne(String assocOne) { + this.assocOne = assocOne; + } + +} diff --git a/src/test/java/misc/migration/v1_1/CKeyDetail.java b/src/test/java/misc/migration/v1_1/CKeyDetail.java new file mode 100644 index 000000000..2b8655c0b --- /dev/null +++ b/src/test/java/misc/migration/v1_1/CKeyDetail.java @@ -0,0 +1,57 @@ +package misc.migration.v1_1; + +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.ManyToOne; +import javax.persistence.Table; + +@Entity +@Table(name = "migtest_ckey_detail") +public class CKeyDetail { + + @Id + Integer id; + + String something; + + @ManyToOne +// @JoinColumns({ +// @JoinColumn(name="parent_one_key", referencedColumnName="one_key"), +// @JoinColumn(name="parent_two_key", referencedColumnName="two_key") +// }) + CKeyParent parent; + + public CKeyDetail() { + + } + + public CKeyDetail(String something) { + this.something = something; + } + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getSomething() { + return something; + } + + public void setSomething(String something) { + this.something = something; + } + + public CKeyParent getParent() { + return parent; + } + + public void setParent(CKeyParent parent) { + this.parent = parent; + } + + +} diff --git a/src/test/java/misc/migration/v1_1/CKeyParent.java b/src/test/java/misc/migration/v1_1/CKeyParent.java new file mode 100644 index 000000000..e331399ed --- /dev/null +++ b/src/test/java/misc/migration/v1_1/CKeyParent.java @@ -0,0 +1,78 @@ +package misc.migration.v1_1; + +import javax.persistence.CascadeType; +import javax.persistence.EmbeddedId; +import javax.persistence.Entity; +import javax.persistence.ManyToOne; +import javax.persistence.OneToMany; +import javax.persistence.Table; +import javax.persistence.Version; +import java.util.ArrayList; +import java.util.List; + +@Entity +@Table(name = "migtest_ckey_parent") +public class CKeyParent { + + @EmbeddedId + CKeyParentId id; + + String name; + + @Version + int version; + + @ManyToOne(cascade = CascadeType.PERSIST) + CKeyAssoc assoc; + + @OneToMany(cascade = CascadeType.PERSIST, mappedBy = "parent") + List details; + + public CKeyParentId getId() { + return id; + } + + public void setId(CKeyParentId id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public int getVersion() { + return version; + } + + public void setVersion(int version) { + this.version = version; + } + + public CKeyAssoc getAssoc() { + return assoc; + } + + public void setAssoc(CKeyAssoc assoc) { + this.assoc = assoc; + } + + public List getDetails() { + return details; + } + + public void setDetails(List details) { + this.details = details; + } + + public void add(CKeyDetail detail) { + if (details == null) { + details = new ArrayList<>(); + } + details.add(detail); + } + +} diff --git a/src/test/java/misc/migration/v1_1/CKeyParentId.java b/src/test/java/misc/migration/v1_1/CKeyParentId.java new file mode 100644 index 000000000..dfc86560d --- /dev/null +++ b/src/test/java/misc/migration/v1_1/CKeyParentId.java @@ -0,0 +1,60 @@ +package misc.migration.v1_1; + +import javax.persistence.Embeddable; +import javax.validation.constraints.Size; + +@Embeddable +public class CKeyParentId { + + @Size(max=127) + Integer oneKey; + + @Size(max=127) + String twoKey; + + public CKeyParentId() { + + } + + public CKeyParentId(Integer oneKey, String twoKey) { + this.oneKey = oneKey; + this.twoKey = twoKey; + } + + public Integer getOneKey() { + return oneKey; + } + + public void setOneKey(Integer oneKey) { + this.oneKey = oneKey; + } + + public String getTwoKey() { + return twoKey; + } + + public void setTwoKey(String twoKey) { + this.twoKey = twoKey; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (!(o instanceof CKeyParentId)) { + return false; + } + + CKeyParentId otherKey = (CKeyParentId) o; + return otherKey.hashCode() == hashCode(); + } + + @Override + public int hashCode() { + int hc = getClass().getName().hashCode(); + hc = 31 * hc + oneKey; + hc = 31 * hc + twoKey.hashCode(); + return hc; + } +} diff --git a/src/test/java/misc/migration/v1_1/EBasic.java b/src/test/java/misc/migration/v1_1/EBasic.java index b11c6f9e2..9fa379bdd 100644 --- a/src/test/java/misc/migration/v1_1/EBasic.java +++ b/src/test/java/misc/migration/v1_1/EBasic.java @@ -17,6 +17,7 @@ import java.sql.Timestamp; @Entity @Table(name = "migtest_e_basic") +@Index(columnNames = { "status" , "indextest1"}, unique = true) public class EBasic { public enum Status { diff --git a/src/test/java/misc/migration/v1_1/MtmChild.java b/src/test/java/misc/migration/v1_1/MtmChild.java new file mode 100644 index 000000000..7cf239f91 --- /dev/null +++ b/src/test/java/misc/migration/v1_1/MtmChild.java @@ -0,0 +1,45 @@ +package misc.migration.v1_1; + +import java.util.List; + +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.ManyToMany; +import javax.persistence.Table; + +@Entity +@Table(name = "migtest_mtm_c") +public class MtmChild { + + @Id + Integer id; + + String name; + + @ManyToMany + List masters; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public List getMasters() { + return masters; + } + + public void setMasters(List masters) { + this.masters = masters; + } +} diff --git a/src/test/java/misc/migration/v1_1/MtmMaster.java b/src/test/java/misc/migration/v1_1/MtmMaster.java new file mode 100644 index 000000000..067d396dc --- /dev/null +++ b/src/test/java/misc/migration/v1_1/MtmMaster.java @@ -0,0 +1,46 @@ +package misc.migration.v1_1; + +import java.util.List; + +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.ManyToMany; +import javax.persistence.Table; + +@Entity +@Table(name = "migtest_mtm_m") +public class MtmMaster { + + @Id + Long id; + + String name; + + @ManyToMany + List children; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public List getChildren() { + return children; + } + + public void setChildren(List children) { + this.children = children; + } + +} diff --git a/src/test/java/misc/migration/v1_1/OtoChild.java b/src/test/java/misc/migration/v1_1/OtoChild.java new file mode 100644 index 000000000..1877b8f53 --- /dev/null +++ b/src/test/java/misc/migration/v1_1/OtoChild.java @@ -0,0 +1,44 @@ +package misc.migration.v1_1; + +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.OneToOne; +import javax.persistence.Table; + +@Entity +@Table(name = "migtest_oto_child") +public class OtoChild { + + @Id + Integer id; + + String name; + + @OneToOne + OtoMaster master; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public OtoMaster getMaster() { + return master; + } + + public void setMaster(OtoMaster master) { + this.master = master; + } + +} diff --git a/src/test/java/misc/migration/v1_1/OtoMaster.java b/src/test/java/misc/migration/v1_1/OtoMaster.java new file mode 100644 index 000000000..f44bbaa9d --- /dev/null +++ b/src/test/java/misc/migration/v1_1/OtoMaster.java @@ -0,0 +1,45 @@ +package misc.migration.v1_1; + +import javax.persistence.CascadeType; +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.OneToOne; +import javax.persistence.Table; + +@Entity +@Table(name = "migtest_oto_master") +public class OtoMaster { + + @Id + Long id; + + String name; + + @OneToOne(cascade = CascadeType.ALL, mappedBy = "master") + OtoChild child; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public OtoChild getChild() { + return child; + } + + public void setChild(OtoChild child) { + this.child = child; + } + +} diff --git a/src/test/java/misc/migration/v1_2/CKeyAssoc.java b/src/test/java/misc/migration/v1_2/CKeyAssoc.java new file mode 100644 index 000000000..351bb3ca7 --- /dev/null +++ b/src/test/java/misc/migration/v1_2/CKeyAssoc.java @@ -0,0 +1,32 @@ +package misc.migration.v1_2; + +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.Table; + +@Entity +@Table(name = "migtest_ckey_assoc") +public class CKeyAssoc { + + @Id + Integer id; + + String assocOne; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getAssocOne() { + return assocOne; + } + + public void setAssocOne(String assocOne) { + this.assocOne = assocOne; + } + +} diff --git a/src/test/java/misc/migration/v1_2/CKeyDetail.java b/src/test/java/misc/migration/v1_2/CKeyDetail.java new file mode 100644 index 000000000..c02288f0a --- /dev/null +++ b/src/test/java/misc/migration/v1_2/CKeyDetail.java @@ -0,0 +1,41 @@ +package misc.migration.v1_2; + +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.Table; + +@Entity +@Table(name = "migtest_ckey_detail") +public class CKeyDetail { + + @Id + Integer id; + + String something; + + + public CKeyDetail() { + + } + + public CKeyDetail(String something) { + this.something = something; + } + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getSomething() { + return something; + } + + public void setSomething(String something) { + this.something = something; + } + +} diff --git a/src/test/java/misc/migration/v1_2/CKeyParent.java b/src/test/java/misc/migration/v1_2/CKeyParent.java new file mode 100644 index 000000000..7c44a42dc --- /dev/null +++ b/src/test/java/misc/migration/v1_2/CKeyParent.java @@ -0,0 +1,44 @@ +package misc.migration.v1_2; + +import javax.persistence.EmbeddedId; +import javax.persistence.Entity; +import javax.persistence.Table; +import javax.persistence.Version; + +@Entity +@Table(name = "migtest_ckey_parent") +public class CKeyParent { + + @EmbeddedId + CKeyParentId id; + + String name; + + @Version + int version; + + public CKeyParentId getId() { + return id; + } + + public void setId(CKeyParentId id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public int getVersion() { + return version; + } + + public void setVersion(int version) { + this.version = version; + } + +} diff --git a/src/test/java/misc/migration/v1_2/CKeyParentId.java b/src/test/java/misc/migration/v1_2/CKeyParentId.java new file mode 100644 index 000000000..4a7f30150 --- /dev/null +++ b/src/test/java/misc/migration/v1_2/CKeyParentId.java @@ -0,0 +1,60 @@ +package misc.migration.v1_2; + +import javax.persistence.Embeddable; +import javax.validation.constraints.Size; + +@Embeddable +public class CKeyParentId { + + @Size(max=127) + Integer oneKey; + + @Size(max=127) + String twoKey; + + public CKeyParentId() { + + } + + public CKeyParentId(Integer oneKey, String twoKey) { + this.oneKey = oneKey; + this.twoKey = twoKey; + } + + public Integer getOneKey() { + return oneKey; + } + + public void setOneKey(Integer oneKey) { + this.oneKey = oneKey; + } + + public String getTwoKey() { + return twoKey; + } + + public void setTwoKey(String twoKey) { + this.twoKey = twoKey; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (!(o instanceof CKeyParentId)) { + return false; + } + + CKeyParentId otherKey = (CKeyParentId) o; + return otherKey.hashCode() == hashCode(); + } + + @Override + public int hashCode() { + int hc = getClass().getName().hashCode(); + hc = 31 * hc + oneKey; + hc = 31 * hc + twoKey.hashCode(); + return hc; + } +} diff --git a/src/test/java/misc/migration/v1_2/ERef.java b/src/test/java/misc/migration/v1_2/ERef.java index aa22e9034..df16ba21c 100644 --- a/src/test/java/misc/migration/v1_2/ERef.java +++ b/src/test/java/misc/migration/v1_2/ERef.java @@ -6,6 +6,10 @@ import javax.persistence.Entity; import javax.persistence.Id; import javax.persistence.OneToMany; import javax.persistence.Table; +import javax.validation.constraints.Size; + +import io.ebean.annotation.Index; +import io.ebean.annotation.NotNull; @Entity @Table(name = "migtest_e_ref") @@ -16,4 +20,9 @@ public class ERef { @OneToMany List basics; + + @NotNull + @Index(unique = true) + @Size(max=127) + String name; } diff --git a/src/test/java/misc/migration/v1_2/MtmChild.java b/src/test/java/misc/migration/v1_2/MtmChild.java new file mode 100644 index 000000000..de83d8194 --- /dev/null +++ b/src/test/java/misc/migration/v1_2/MtmChild.java @@ -0,0 +1,34 @@ +package misc.migration.v1_2; + + +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.Table; + +@Entity +@Table(name = "migtest_mtm_c") +public class MtmChild { + + @Id + Integer id; + + String name; + + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + +} diff --git a/src/test/java/misc/migration/v1_2/MtmMaster.java b/src/test/java/misc/migration/v1_2/MtmMaster.java new file mode 100644 index 000000000..a1e5e41cf --- /dev/null +++ b/src/test/java/misc/migration/v1_2/MtmMaster.java @@ -0,0 +1,32 @@ +package misc.migration.v1_2; + +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.Table; + +@Entity +@Table(name = "migtest_mtm_m") +public class MtmMaster { + + @Id + Long id; + + String name; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + +} diff --git a/src/test/java/misc/migration/v1_2/OtoChild.java b/src/test/java/misc/migration/v1_2/OtoChild.java new file mode 100644 index 000000000..4ca5e6b4b --- /dev/null +++ b/src/test/java/misc/migration/v1_2/OtoChild.java @@ -0,0 +1,32 @@ +package misc.migration.v1_2; + +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.Table; + +@Entity +@Table(name = "migtest_oto_child") +public class OtoChild { + + @Id + Integer id; + + String name; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + +} diff --git a/src/test/java/misc/migration/v1_2/OtoMaster.java b/src/test/java/misc/migration/v1_2/OtoMaster.java new file mode 100644 index 000000000..e33578ff9 --- /dev/null +++ b/src/test/java/misc/migration/v1_2/OtoMaster.java @@ -0,0 +1,32 @@ +package misc.migration.v1_2; + +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.Table; + +@Entity +@Table(name = "migtest_oto_master") +public class OtoMaster { + + @Id + Long id; + + String name; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + +} diff --git a/src/test/resources/dbmigration/migrationtest/db2/1.0__initial.sql b/src/test/resources/dbmigration/migrationtest/db2/1.0__initial.sql index 2ed9f31ab..25c370c04 100644 --- a/src/test/resources/dbmigration/migrationtest/db2/1.0__initial.sql +++ b/src/test/resources/dbmigration/migrationtest/db2/1.0__initial.sql @@ -1,5 +1,25 @@ -- Migrationscripts for ebean unittest -- apply changes +create table migtest_ckey_assoc ( + id integer generated by default as identity not null, + assoc_one varchar(255), + constraint pk_migtest_ckey_assoc primary key (id) +); + +create table migtest_ckey_detail ( + id integer generated by default as identity not null, + something varchar(255), + constraint pk_migtest_ckey_detail primary key (id) +); + +create table migtest_ckey_parent ( + one_key integer not null, + two_key varchar(127) not null, + name varchar(255), + version integer not null, + constraint pk_migtest_ckey_parent primary key (one_key,two_key) +); + create table migtest_fk_cascade ( id bigint generated by default as identity not null, one_id bigint, @@ -70,8 +90,10 @@ create table migtest_e_history2 ( create table migtest_e_ref ( id integer generated by default as identity not null, + name varchar(127) not null, constraint pk_migtest_e_ref primary key (id) ); +alter table migtest_e_ref add constraint uq_migtest_e_ref_name unique (name); create table migtest_e_softdelete ( id integer generated by default as identity not null, @@ -79,6 +101,30 @@ create table migtest_e_softdelete ( constraint pk_migtest_e_softdelete primary key (id) ); +create table migtest_mtm_c ( + id integer generated by default as identity not null, + name varchar(255), + constraint pk_migtest_mtm_c primary key (id) +); + +create table migtest_mtm_m ( + id bigint generated by default as identity not null, + name varchar(255), + constraint pk_migtest_mtm_m primary key (id) +); + +create table migtest_oto_child ( + id integer generated by default as identity not null, + name varchar(255), + constraint pk_migtest_oto_child primary key (id) +); + +create table migtest_oto_master ( + id bigint generated by default as identity not null, + name varchar(255), + constraint pk_migtest_oto_master primary key (id) +); + create index ix_migtest_e_basic_indextest1 on migtest_e_basic (indextest1); create index ix_migtest_e_basic_indextest5 on migtest_e_basic (indextest5); alter table migtest_fk_cascade add constraint fk_migtest_fk_cascade_one_id foreign key (one_id) references migtest_fk_cascade_one (id) on delete cascade; diff --git a/src/test/resources/dbmigration/migrationtest/db2/1.1.sql b/src/test/resources/dbmigration/migrationtest/db2/1.1.sql index 2304caa0c..a6dcedf46 100644 --- a/src/test/resources/dbmigration/migrationtest/db2/1.1.sql +++ b/src/test/resources/dbmigration/migrationtest/db2/1.1.sql @@ -5,6 +5,24 @@ create table migtest_e_user ( constraint pk_migtest_e_user primary key (id) ); +create table migtest_mtm_c_migtest_mtm_m ( + migtest_mtm_c_id integer not null, + migtest_mtm_m_id bigint not null, + constraint pk_migtest_mtm_c_migtest_mtm_m primary key (migtest_mtm_c_id,migtest_mtm_m_id) +); + +create table migtest_mtm_m_migtest_mtm_c ( + migtest_mtm_m_id bigint not null, + migtest_mtm_c_id integer not null, + constraint pk_migtest_mtm_m_migtest_mtm_c primary key (migtest_mtm_m_id,migtest_mtm_c_id) +); + +alter table migtest_ckey_detail add column one_key integer; +alter table migtest_ckey_detail add column two_key varchar(127); + +alter table migtest_ckey_detail add constraint fk_migtest_ckey_detail_parent foreign key (one_key,two_key) references migtest_ckey_parent (one_key,two_key) on delete restrict; +alter table migtest_ckey_parent add column assoc_id integer; + alter table migtest_fk_cascade drop constraint fk_migtest_fk_cascade_one_id; alter table migtest_fk_cascade add constraint fk_migtest_fk_cascade_one_id foreign key (one_id) references migtest_fk_cascade_one (id) on delete restrict; alter table migtest_fk_none add constraint fk_migtest_fk_none_one_id foreign key (one_id) references migtest_fk_one (id) on delete restrict; @@ -39,6 +57,7 @@ alter table migtest_e_basic add column new_integer integer default 42 not null; alter table migtest_e_basic drop constraint uq_migtest_e_basic_indextest2; alter table migtest_e_basic drop constraint uq_migtest_e_basic_indextest6; +-- NOT SUPPORTED alter table migtest_e_basic add constraint uq_migtest_e_basic_status_indextest1 unique (status,indextest1); -- NOT SUPPORTED alter table migtest_e_basic add constraint uq_migtest_e_basic_name unique (name); -- NOT SUPPORTED alter table migtest_e_basic add constraint uq_migtest_e_basic_indextest4 unique (indextest4); -- NOT SUPPORTED alter table migtest_e_basic add constraint uq_migtest_e_basic_indextest5 unique (indextest5); @@ -56,7 +75,26 @@ alter table migtest_e_history2_history add column test_string3 varchar(255); alter table migtest_e_softdelete add column deleted boolean default false not null; +alter table migtest_oto_child add column master_id bigint; + create index ix_migtest_e_basic_indextest3 on migtest_e_basic (indextest3); create index ix_migtest_e_basic_indextest6 on migtest_e_basic (indextest6); drop index ix_migtest_e_basic_indextest1; drop index ix_migtest_e_basic_indextest5; +alter table migtest_mtm_c_migtest_mtm_m add constraint fk_migtest_mtm_c_migtest_mtm_m_migtest_mtm_c foreign key (migtest_mtm_c_id) references migtest_mtm_c (id) on delete restrict; +create index ix_migtest_mtm_c_migtest_mtm_m_migtest_mtm_c on migtest_mtm_c_migtest_mtm_m (migtest_mtm_c_id); + +alter table migtest_mtm_c_migtest_mtm_m add constraint fk_migtest_mtm_c_migtest_mtm_m_migtest_mtm_m foreign key (migtest_mtm_m_id) references migtest_mtm_m (id) on delete restrict; +create index ix_migtest_mtm_c_migtest_mtm_m_migtest_mtm_m on migtest_mtm_c_migtest_mtm_m (migtest_mtm_m_id); + +alter table migtest_mtm_m_migtest_mtm_c add constraint fk_migtest_mtm_m_migtest_mtm_c_migtest_mtm_m foreign key (migtest_mtm_m_id) references migtest_mtm_m (id) on delete restrict; +create index ix_migtest_mtm_m_migtest_mtm_c_migtest_mtm_m on migtest_mtm_m_migtest_mtm_c (migtest_mtm_m_id); + +alter table migtest_mtm_m_migtest_mtm_c add constraint fk_migtest_mtm_m_migtest_mtm_c_migtest_mtm_c foreign key (migtest_mtm_c_id) references migtest_mtm_c (id) on delete restrict; +create index ix_migtest_mtm_m_migtest_mtm_c_migtest_mtm_c on migtest_mtm_m_migtest_mtm_c (migtest_mtm_c_id); + +alter table migtest_ckey_parent add constraint fk_migtest_ckey_parent_assoc_id foreign key (assoc_id) references migtest_ckey_assoc (id) on delete restrict; +create index ix_migtest_ckey_parent_assoc_id on migtest_ckey_parent (assoc_id); + +alter table migtest_oto_child add constraint fk_migtest_oto_child_master_id foreign key (master_id) references migtest_oto_master (id) on delete restrict; + diff --git a/src/test/resources/dbmigration/migrationtest/db2/1.3.sql b/src/test/resources/dbmigration/migrationtest/db2/1.3.sql index e99cc4048..94536ae4a 100644 --- a/src/test/resources/dbmigration/migrationtest/db2/1.3.sql +++ b/src/test/resources/dbmigration/migrationtest/db2/1.3.sql @@ -2,9 +2,12 @@ -- apply changes create table migtest_e_ref ( id integer generated by default as identity not null, + name varchar(127) not null, constraint pk_migtest_e_ref primary key (id) ); +alter table migtest_e_ref add constraint uq_migtest_e_ref_name unique (name); +alter table migtest_ckey_detail drop constraint fk_migtest_ckey_detail_parent; alter table migtest_fk_cascade drop constraint fk_migtest_fk_cascade_one_id; alter table migtest_fk_cascade add constraint fk_migtest_fk_cascade_one_id foreign key (one_id) references migtest_fk_cascade_one (id) on delete cascade; alter table migtest_fk_none drop constraint fk_migtest_fk_none_one_id; @@ -27,6 +30,7 @@ alter table migtest_e_basic add column old_boolean boolean default false not nul alter table migtest_e_basic add column old_boolean2 boolean; alter table migtest_e_basic add column eref_id integer; +alter table migtest_e_basic drop constraint uq_migtest_e_basic_status_indextest1; alter table migtest_e_basic drop constraint uq_migtest_e_basic_name; alter table migtest_e_basic drop constraint uq_migtest_e_basic_indextest4; alter table migtest_e_basic drop constraint uq_migtest_e_basic_indextest5; diff --git a/src/test/resources/dbmigration/migrationtest/db2/1.4__dropsFor_1.3.sql b/src/test/resources/dbmigration/migrationtest/db2/1.4__dropsFor_1.3.sql index 493c72e93..0ae87600a 100644 --- a/src/test/resources/dbmigration/migrationtest/db2/1.4__dropsFor_1.3.sql +++ b/src/test/resources/dbmigration/migrationtest/db2/1.4__dropsFor_1.3.sql @@ -1,5 +1,11 @@ -- Migrationscripts for ebean unittest -- apply changes +alter table migtest_ckey_detail drop column one_key; + +alter table migtest_ckey_detail drop column two_key; + +alter table migtest_ckey_parent drop column assoc_id; + alter table migtest_e_basic drop column new_string_field; alter table migtest_e_basic drop column new_boolean_field; @@ -18,5 +24,9 @@ alter table migtest_e_history2_history drop column test_string3; alter table migtest_e_softdelete drop column deleted; +alter table migtest_oto_child drop column master_id; + drop table migtest_e_user; drop sequence migtest_e_user_seq; +drop table migtest_mtm_c_migtest_mtm_m; +drop table migtest_mtm_m_migtest_mtm_c; diff --git a/src/test/resources/dbmigration/migrationtest/h2/1.0__initial.sql b/src/test/resources/dbmigration/migrationtest/h2/1.0__initial.sql index 5b472d0c4..4b6052a9a 100644 --- a/src/test/resources/dbmigration/migrationtest/h2/1.0__initial.sql +++ b/src/test/resources/dbmigration/migrationtest/h2/1.0__initial.sql @@ -1,5 +1,25 @@ -- Migrationscripts for ebean unittest -- apply changes +create table migtest_ckey_assoc ( + id integer auto_increment not null, + assoc_one varchar(255), + constraint pk_migtest_ckey_assoc primary key (id) +); + +create table migtest_ckey_detail ( + id integer auto_increment not null, + something varchar(255), + constraint pk_migtest_ckey_detail primary key (id) +); + +create table migtest_ckey_parent ( + one_key integer(127) not null, + two_key varchar(127) not null, + name varchar(255), + version integer not null, + constraint pk_migtest_ckey_parent primary key (one_key,two_key) +); + create table migtest_fk_cascade ( id bigint auto_increment not null, one_id bigint, @@ -70,6 +90,8 @@ create table migtest_e_history2 ( create table migtest_e_ref ( id integer auto_increment not null, + name varchar(127) not null, + constraint uq_migtest_e_ref_name unique (name), constraint pk_migtest_e_ref primary key (id) ); @@ -79,6 +101,30 @@ create table migtest_e_softdelete ( constraint pk_migtest_e_softdelete primary key (id) ); +create table migtest_mtm_c ( + id integer auto_increment not null, + name varchar(255), + constraint pk_migtest_mtm_c primary key (id) +); + +create table migtest_mtm_m ( + id bigint auto_increment not null, + name varchar(255), + constraint pk_migtest_mtm_m primary key (id) +); + +create table migtest_oto_child ( + id integer auto_increment not null, + name varchar(255), + constraint pk_migtest_oto_child primary key (id) +); + +create table migtest_oto_master ( + id bigint auto_increment not null, + name varchar(255), + constraint pk_migtest_oto_master primary key (id) +); + create index ix_migtest_e_basic_indextest1 on migtest_e_basic (indextest1); create index ix_migtest_e_basic_indextest5 on migtest_e_basic (indextest5); alter table migtest_fk_cascade add constraint fk_migtest_fk_cascade_one_id foreign key (one_id) references migtest_fk_cascade_one (id) on delete cascade on update cascade; diff --git a/src/test/resources/dbmigration/migrationtest/h2/1.1.sql b/src/test/resources/dbmigration/migrationtest/h2/1.1.sql index e786f4ecc..126c0eb18 100644 --- a/src/test/resources/dbmigration/migrationtest/h2/1.1.sql +++ b/src/test/resources/dbmigration/migrationtest/h2/1.1.sql @@ -5,6 +5,24 @@ create table migtest_e_user ( constraint pk_migtest_e_user primary key (id) ); +create table migtest_mtm_c_migtest_mtm_m ( + migtest_mtm_c_id integer not null, + migtest_mtm_m_id bigint not null, + constraint pk_migtest_mtm_c_migtest_mtm_m primary key (migtest_mtm_c_id,migtest_mtm_m_id) +); + +create table migtest_mtm_m_migtest_mtm_c ( + migtest_mtm_m_id bigint not null, + migtest_mtm_c_id integer not null, + constraint pk_migtest_mtm_m_migtest_mtm_c primary key (migtest_mtm_m_id,migtest_mtm_c_id) +); + +alter table migtest_ckey_detail add column one_key integer(127); +alter table migtest_ckey_detail add column two_key varchar(127); + +alter table migtest_ckey_detail add constraint fk_migtest_ckey_detail_parent foreign key (one_key,two_key) references migtest_ckey_parent (one_key,two_key) on delete restrict on update restrict; +alter table migtest_ckey_parent add column assoc_id integer; + alter table migtest_fk_cascade drop constraint if exists fk_migtest_fk_cascade_one_id; alter table migtest_fk_cascade add constraint fk_migtest_fk_cascade_one_id foreign key (one_id) references migtest_fk_cascade_one (id) on delete restrict on update restrict; alter table migtest_fk_none add constraint fk_migtest_fk_none_one_id foreign key (one_id) references migtest_fk_one (id) on delete restrict on update restrict; @@ -39,6 +57,7 @@ alter table migtest_e_basic add column new_integer integer default 42 not null; alter table migtest_e_basic drop constraint uq_migtest_e_basic_indextest2; alter table migtest_e_basic drop constraint uq_migtest_e_basic_indextest6; +alter table migtest_e_basic add constraint uq_migtest_e_basic_status_indextest1 unique (status,indextest1); alter table migtest_e_basic add constraint uq_migtest_e_basic_name unique (name); alter table migtest_e_basic add constraint uq_migtest_e_basic_indextest4 unique (indextest4); alter table migtest_e_basic add constraint uq_migtest_e_basic_indextest5 unique (indextest5); @@ -56,10 +75,29 @@ alter table migtest_e_history2_history add column test_string3 varchar(255); alter table migtest_e_softdelete add column deleted boolean default false not null; +alter table migtest_oto_child add column master_id bigint; + create index ix_migtest_e_basic_indextest3 on migtest_e_basic (indextest3); create index ix_migtest_e_basic_indextest6 on migtest_e_basic (indextest6); drop index if exists ix_migtest_e_basic_indextest1; drop index if exists ix_migtest_e_basic_indextest5; +alter table migtest_mtm_c_migtest_mtm_m add constraint fk_migtest_mtm_c_migtest_mtm_m_migtest_mtm_c foreign key (migtest_mtm_c_id) references migtest_mtm_c (id) on delete restrict on update restrict; +create index ix_migtest_mtm_c_migtest_mtm_m_migtest_mtm_c on migtest_mtm_c_migtest_mtm_m (migtest_mtm_c_id); + +alter table migtest_mtm_c_migtest_mtm_m add constraint fk_migtest_mtm_c_migtest_mtm_m_migtest_mtm_m foreign key (migtest_mtm_m_id) references migtest_mtm_m (id) on delete restrict on update restrict; +create index ix_migtest_mtm_c_migtest_mtm_m_migtest_mtm_m on migtest_mtm_c_migtest_mtm_m (migtest_mtm_m_id); + +alter table migtest_mtm_m_migtest_mtm_c add constraint fk_migtest_mtm_m_migtest_mtm_c_migtest_mtm_m foreign key (migtest_mtm_m_id) references migtest_mtm_m (id) on delete restrict on update restrict; +create index ix_migtest_mtm_m_migtest_mtm_c_migtest_mtm_m on migtest_mtm_m_migtest_mtm_c (migtest_mtm_m_id); + +alter table migtest_mtm_m_migtest_mtm_c add constraint fk_migtest_mtm_m_migtest_mtm_c_migtest_mtm_c foreign key (migtest_mtm_c_id) references migtest_mtm_c (id) on delete restrict on update restrict; +create index ix_migtest_mtm_m_migtest_mtm_c_migtest_mtm_c on migtest_mtm_m_migtest_mtm_c (migtest_mtm_c_id); + +alter table migtest_ckey_parent add constraint fk_migtest_ckey_parent_assoc_id foreign key (assoc_id) references migtest_ckey_assoc (id) on delete restrict on update restrict; +create index ix_migtest_ckey_parent_assoc_id on migtest_ckey_parent (assoc_id); + +alter table migtest_oto_child add constraint fk_migtest_oto_child_master_id foreign key (master_id) references migtest_oto_master (id) on delete restrict on update restrict; + alter table migtest_e_history add column sys_period_start datetime(6) default now(6); alter table migtest_e_history add column sys_period_end datetime(6); create table migtest_e_history_history( diff --git a/src/test/resources/dbmigration/migrationtest/h2/1.3.sql b/src/test/resources/dbmigration/migrationtest/h2/1.3.sql index 9f3c659df..233f0524b 100644 --- a/src/test/resources/dbmigration/migrationtest/h2/1.3.sql +++ b/src/test/resources/dbmigration/migrationtest/h2/1.3.sql @@ -2,9 +2,12 @@ -- apply changes create table migtest_e_ref ( id integer auto_increment not null, + name varchar(127) not null, + constraint uq_migtest_e_ref_name unique (name), constraint pk_migtest_e_ref primary key (id) ); +alter table migtest_ckey_detail drop constraint if exists fk_migtest_ckey_detail_parent; alter table migtest_fk_cascade drop constraint if exists fk_migtest_fk_cascade_one_id; alter table migtest_fk_cascade add constraint fk_migtest_fk_cascade_one_id foreign key (one_id) references migtest_fk_cascade_one (id) on delete cascade on update cascade; alter table migtest_fk_none drop constraint if exists fk_migtest_fk_none_one_id; @@ -27,6 +30,7 @@ alter table migtest_e_basic add column old_boolean boolean default false not nul alter table migtest_e_basic add column old_boolean2 boolean; alter table migtest_e_basic add column eref_id integer; +alter table migtest_e_basic drop constraint uq_migtest_e_basic_status_indextest1; alter table migtest_e_basic drop constraint uq_migtest_e_basic_name; alter table migtest_e_basic drop constraint uq_migtest_e_basic_indextest4; alter table migtest_e_basic drop constraint uq_migtest_e_basic_indextest5; diff --git a/src/test/resources/dbmigration/migrationtest/h2/1.4__dropsFor_1.3.sql b/src/test/resources/dbmigration/migrationtest/h2/1.4__dropsFor_1.3.sql index fec1ee7a8..a644d1461 100644 --- a/src/test/resources/dbmigration/migrationtest/h2/1.4__dropsFor_1.3.sql +++ b/src/test/resources/dbmigration/migrationtest/h2/1.4__dropsFor_1.3.sql @@ -8,6 +8,12 @@ drop table migtest_e_history_history; -- apply changes +alter table migtest_ckey_detail drop column one_key; + +alter table migtest_ckey_detail drop column two_key; + +alter table migtest_ckey_parent drop column assoc_id; + alter table migtest_e_basic drop column new_string_field; alter table migtest_e_basic drop column new_boolean_field; @@ -26,8 +32,12 @@ alter table migtest_e_history2_history drop column test_string3; alter table migtest_e_softdelete drop column deleted; +alter table migtest_oto_child drop column master_id; + drop table if exists migtest_e_user; drop sequence if exists migtest_e_user_seq; +drop table if exists migtest_mtm_c_migtest_mtm_m; +drop table if exists migtest_mtm_m_migtest_mtm_c; -- changes: [drop test_string2, drop test_string3] drop trigger migtest_e_history2_history_upd; create trigger migtest_e_history2_history_upd before update,delete on migtest_e_history2 for each row call "io.ebean.config.dbplatform.h2.H2HistoryTrigger"; diff --git a/src/test/resources/dbmigration/migrationtest/hsqldb/1.0__initial.sql b/src/test/resources/dbmigration/migrationtest/hsqldb/1.0__initial.sql index 3294b84f7..390cf2fd3 100644 --- a/src/test/resources/dbmigration/migrationtest/hsqldb/1.0__initial.sql +++ b/src/test/resources/dbmigration/migrationtest/hsqldb/1.0__initial.sql @@ -1,5 +1,25 @@ -- Migrationscripts for ebean unittest -- apply changes +create table migtest_ckey_assoc ( + id integer generated by default as identity (start with 1) not null, + assoc_one varchar(255), + constraint pk_migtest_ckey_assoc primary key (id) +); + +create table migtest_ckey_detail ( + id integer generated by default as identity (start with 1) not null, + something varchar(255), + constraint pk_migtest_ckey_detail primary key (id) +); + +create table migtest_ckey_parent ( + one_key integer not null, + two_key varchar(127) not null, + name varchar(255), + version integer not null, + constraint pk_migtest_ckey_parent primary key (one_key,two_key) +); + create table migtest_fk_cascade ( id bigint generated by default as identity (start with 1) not null, one_id bigint, @@ -70,6 +90,8 @@ create table migtest_e_history2 ( create table migtest_e_ref ( id integer generated by default as identity (start with 1) not null, + name varchar(127) not null, + constraint uq_migtest_e_ref_name unique (name), constraint pk_migtest_e_ref primary key (id) ); @@ -79,6 +101,30 @@ create table migtest_e_softdelete ( constraint pk_migtest_e_softdelete primary key (id) ); +create table migtest_mtm_c ( + id integer generated by default as identity (start with 1) not null, + name varchar(255), + constraint pk_migtest_mtm_c primary key (id) +); + +create table migtest_mtm_m ( + id bigint generated by default as identity (start with 1) not null, + name varchar(255), + constraint pk_migtest_mtm_m primary key (id) +); + +create table migtest_oto_child ( + id integer generated by default as identity (start with 1) not null, + name varchar(255), + constraint pk_migtest_oto_child primary key (id) +); + +create table migtest_oto_master ( + id bigint generated by default as identity (start with 1) not null, + name varchar(255), + constraint pk_migtest_oto_master primary key (id) +); + create index ix_migtest_e_basic_indextest1 on migtest_e_basic (indextest1); create index ix_migtest_e_basic_indextest5 on migtest_e_basic (indextest5); alter table migtest_fk_cascade add constraint fk_migtest_fk_cascade_one_id foreign key (one_id) references migtest_fk_cascade_one (id) on delete cascade on update cascade; diff --git a/src/test/resources/dbmigration/migrationtest/hsqldb/1.1.sql b/src/test/resources/dbmigration/migrationtest/hsqldb/1.1.sql index 3c48db53c..02e5f135a 100644 --- a/src/test/resources/dbmigration/migrationtest/hsqldb/1.1.sql +++ b/src/test/resources/dbmigration/migrationtest/hsqldb/1.1.sql @@ -5,6 +5,24 @@ create table migtest_e_user ( constraint pk_migtest_e_user primary key (id) ); +create table migtest_mtm_c_migtest_mtm_m ( + migtest_mtm_c_id integer not null, + migtest_mtm_m_id bigint not null, + constraint pk_migtest_mtm_c_migtest_mtm_m primary key (migtest_mtm_c_id,migtest_mtm_m_id) +); + +create table migtest_mtm_m_migtest_mtm_c ( + migtest_mtm_m_id bigint not null, + migtest_mtm_c_id integer not null, + constraint pk_migtest_mtm_m_migtest_mtm_c primary key (migtest_mtm_m_id,migtest_mtm_c_id) +); + +alter table migtest_ckey_detail add column one_key integer; +alter table migtest_ckey_detail add column two_key varchar(127); + +alter table migtest_ckey_detail add constraint fk_migtest_ckey_detail_parent foreign key (one_key,two_key) references migtest_ckey_parent (one_key,two_key) on delete restrict on update restrict; +alter table migtest_ckey_parent add column assoc_id integer; + alter table migtest_fk_cascade drop constraint if exists fk_migtest_fk_cascade_one_id; alter table migtest_fk_cascade add constraint fk_migtest_fk_cascade_one_id foreign key (one_id) references migtest_fk_cascade_one (id) on delete restrict on update restrict; alter table migtest_fk_none add constraint fk_migtest_fk_none_one_id foreign key (one_id) references migtest_fk_one (id) on delete restrict on update restrict; @@ -39,6 +57,7 @@ alter table migtest_e_basic add column new_integer integer default 42 not null; alter table migtest_e_basic drop constraint uq_migtest_e_basic_indextest2; alter table migtest_e_basic drop constraint uq_migtest_e_basic_indextest6; +alter table migtest_e_basic add constraint uq_migtest_e_basic_status_indextest1 unique (status,indextest1); alter table migtest_e_basic add constraint uq_migtest_e_basic_name unique (name); alter table migtest_e_basic add constraint uq_migtest_e_basic_indextest4 unique (indextest4); alter table migtest_e_basic add constraint uq_migtest_e_basic_indextest5 unique (indextest5); @@ -56,7 +75,26 @@ alter table migtest_e_history2_history add column test_string3 varchar(255); alter table migtest_e_softdelete add column deleted boolean default false not null; +alter table migtest_oto_child add column master_id bigint; + create index ix_migtest_e_basic_indextest3 on migtest_e_basic (indextest3); create index ix_migtest_e_basic_indextest6 on migtest_e_basic (indextest6); drop index if exists ix_migtest_e_basic_indextest1; drop index if exists ix_migtest_e_basic_indextest5; +alter table migtest_mtm_c_migtest_mtm_m add constraint fk_migtest_mtm_c_migtest_mtm_m_migtest_mtm_c foreign key (migtest_mtm_c_id) references migtest_mtm_c (id) on delete restrict on update restrict; +create index ix_migtest_mtm_c_migtest_mtm_m_migtest_mtm_c on migtest_mtm_c_migtest_mtm_m (migtest_mtm_c_id); + +alter table migtest_mtm_c_migtest_mtm_m add constraint fk_migtest_mtm_c_migtest_mtm_m_migtest_mtm_m foreign key (migtest_mtm_m_id) references migtest_mtm_m (id) on delete restrict on update restrict; +create index ix_migtest_mtm_c_migtest_mtm_m_migtest_mtm_m on migtest_mtm_c_migtest_mtm_m (migtest_mtm_m_id); + +alter table migtest_mtm_m_migtest_mtm_c add constraint fk_migtest_mtm_m_migtest_mtm_c_migtest_mtm_m foreign key (migtest_mtm_m_id) references migtest_mtm_m (id) on delete restrict on update restrict; +create index ix_migtest_mtm_m_migtest_mtm_c_migtest_mtm_m on migtest_mtm_m_migtest_mtm_c (migtest_mtm_m_id); + +alter table migtest_mtm_m_migtest_mtm_c add constraint fk_migtest_mtm_m_migtest_mtm_c_migtest_mtm_c foreign key (migtest_mtm_c_id) references migtest_mtm_c (id) on delete restrict on update restrict; +create index ix_migtest_mtm_m_migtest_mtm_c_migtest_mtm_c on migtest_mtm_m_migtest_mtm_c (migtest_mtm_c_id); + +alter table migtest_ckey_parent add constraint fk_migtest_ckey_parent_assoc_id foreign key (assoc_id) references migtest_ckey_assoc (id) on delete restrict on update restrict; +create index ix_migtest_ckey_parent_assoc_id on migtest_ckey_parent (assoc_id); + +alter table migtest_oto_child add constraint fk_migtest_oto_child_master_id foreign key (master_id) references migtest_oto_master (id) on delete restrict on update restrict; + diff --git a/src/test/resources/dbmigration/migrationtest/hsqldb/1.3.sql b/src/test/resources/dbmigration/migrationtest/hsqldb/1.3.sql index d89e67fd1..6d0ef4b55 100644 --- a/src/test/resources/dbmigration/migrationtest/hsqldb/1.3.sql +++ b/src/test/resources/dbmigration/migrationtest/hsqldb/1.3.sql @@ -2,9 +2,12 @@ -- apply changes create table migtest_e_ref ( id integer generated by default as identity (start with 1) not null, + name varchar(127) not null, + constraint uq_migtest_e_ref_name unique (name), constraint pk_migtest_e_ref primary key (id) ); +alter table migtest_ckey_detail drop constraint if exists fk_migtest_ckey_detail_parent; alter table migtest_fk_cascade drop constraint if exists fk_migtest_fk_cascade_one_id; alter table migtest_fk_cascade add constraint fk_migtest_fk_cascade_one_id foreign key (one_id) references migtest_fk_cascade_one (id) on delete cascade on update cascade; alter table migtest_fk_none drop constraint if exists fk_migtest_fk_none_one_id; @@ -27,6 +30,7 @@ alter table migtest_e_basic add column old_boolean boolean default false not nul alter table migtest_e_basic add column old_boolean2 boolean; alter table migtest_e_basic add column eref_id integer; +alter table migtest_e_basic drop constraint uq_migtest_e_basic_status_indextest1; alter table migtest_e_basic drop constraint uq_migtest_e_basic_name; alter table migtest_e_basic drop constraint uq_migtest_e_basic_indextest4; alter table migtest_e_basic drop constraint uq_migtest_e_basic_indextest5; diff --git a/src/test/resources/dbmigration/migrationtest/hsqldb/1.4__dropsFor_1.3.sql b/src/test/resources/dbmigration/migrationtest/hsqldb/1.4__dropsFor_1.3.sql index 91d85f62b..95542680e 100644 --- a/src/test/resources/dbmigration/migrationtest/hsqldb/1.4__dropsFor_1.3.sql +++ b/src/test/resources/dbmigration/migrationtest/hsqldb/1.4__dropsFor_1.3.sql @@ -1,5 +1,11 @@ -- Migrationscripts for ebean unittest -- apply changes +alter table migtest_ckey_detail drop column one_key; + +alter table migtest_ckey_detail drop column two_key; + +alter table migtest_ckey_parent drop column assoc_id; + alter table migtest_e_basic drop column new_string_field; alter table migtest_e_basic drop column new_boolean_field; @@ -18,5 +24,9 @@ alter table migtest_e_history2_history drop column test_string3; alter table migtest_e_softdelete drop column deleted; +alter table migtest_oto_child drop column master_id; + drop table if exists migtest_e_user; drop sequence if exists migtest_e_user_seq; +drop table if exists migtest_mtm_c_migtest_mtm_m; +drop table if exists migtest_mtm_m_migtest_mtm_c; diff --git a/src/test/resources/dbmigration/migrationtest/model/1.0__initial.model.xml b/src/test/resources/dbmigration/migrationtest/model/1.0__initial.model.xml index 06a49484a..1e951234e 100644 --- a/src/test/resources/dbmigration/migrationtest/model/1.0__initial.model.xml +++ b/src/test/resources/dbmigration/migrationtest/model/1.0__initial.model.xml @@ -2,6 +2,20 @@ + + + + + + + + + + + + + + @@ -53,11 +67,29 @@ + + + + + + + + + + + + + + + + + + diff --git a/src/test/resources/dbmigration/migrationtest/model/1.1.model.xml b/src/test/resources/dbmigration/migrationtest/model/1.1.model.xml index aea35068e..d1c893673 100644 --- a/src/test/resources/dbmigration/migrationtest/model/1.1.model.xml +++ b/src/test/resources/dbmigration/migrationtest/model/1.1.model.xml @@ -2,6 +2,14 @@ + + + + + + + + @@ -25,6 +33,7 @@ + @@ -44,6 +53,21 @@ + + + + + + + + + + + + + + + diff --git a/src/test/resources/dbmigration/migrationtest/model/1.3.model.xml b/src/test/resources/dbmigration/migrationtest/model/1.3.model.xml index 24aa3c189..f9b23929f 100644 --- a/src/test/resources/dbmigration/migrationtest/model/1.3.model.xml +++ b/src/test/resources/dbmigration/migrationtest/model/1.3.model.xml @@ -2,6 +2,7 @@ + @@ -15,6 +16,7 @@ + @@ -25,6 +27,8 @@ + + @@ -32,6 +36,9 @@ + + + @@ -41,6 +48,9 @@ + + + \ No newline at end of file diff --git a/src/test/resources/dbmigration/migrationtest/model/1.4__dropsFor_1.3.model.xml b/src/test/resources/dbmigration/migrationtest/model/1.4__dropsFor_1.3.model.xml index 214b60a2a..6d17f89f2 100644 --- a/src/test/resources/dbmigration/migrationtest/model/1.4__dropsFor_1.3.model.xml +++ b/src/test/resources/dbmigration/migrationtest/model/1.4__dropsFor_1.3.model.xml @@ -2,6 +2,9 @@ + + + @@ -11,6 +14,9 @@ + + + \ No newline at end of file diff --git a/src/test/resources/dbmigration/migrationtest/mysql/1.0__initial.sql b/src/test/resources/dbmigration/migrationtest/mysql/1.0__initial.sql index 8d5563048..0d8e39910 100644 --- a/src/test/resources/dbmigration/migrationtest/mysql/1.0__initial.sql +++ b/src/test/resources/dbmigration/migrationtest/mysql/1.0__initial.sql @@ -1,5 +1,25 @@ -- Migrationscripts for ebean unittest -- apply changes +create table migtest_ckey_assoc ( + id integer auto_increment not null, + assoc_one varchar(255), + constraint pk_migtest_ckey_assoc primary key (id) +); + +create table migtest_ckey_detail ( + id integer auto_increment not null, + something varchar(255), + constraint pk_migtest_ckey_detail primary key (id) +); + +create table migtest_ckey_parent ( + one_key integer(127) not null, + two_key varchar(127) not null, + name varchar(255), + version integer not null, + constraint pk_migtest_ckey_parent primary key (one_key,two_key) +); + create table migtest_fk_cascade ( id bigint auto_increment not null, one_id bigint, @@ -70,6 +90,8 @@ create table migtest_e_history2 ( create table migtest_e_ref ( id integer auto_increment not null, + name varchar(127) not null, + constraint uq_migtest_e_ref_name unique (name), constraint pk_migtest_e_ref primary key (id) ); @@ -79,6 +101,30 @@ create table migtest_e_softdelete ( constraint pk_migtest_e_softdelete primary key (id) ); +create table migtest_mtm_c ( + id integer auto_increment not null, + name varchar(255), + constraint pk_migtest_mtm_c primary key (id) +); + +create table migtest_mtm_m ( + id bigint auto_increment not null, + name varchar(255), + constraint pk_migtest_mtm_m primary key (id) +); + +create table migtest_oto_child ( + id integer auto_increment not null, + name varchar(255), + constraint pk_migtest_oto_child primary key (id) +); + +create table migtest_oto_master ( + id bigint auto_increment not null, + name varchar(255), + constraint pk_migtest_oto_master primary key (id) +); + create index ix_migtest_e_basic_indextest1 on migtest_e_basic (indextest1); create index ix_migtest_e_basic_indextest5 on migtest_e_basic (indextest5); alter table migtest_fk_cascade add constraint fk_migtest_fk_cascade_one_id foreign key (one_id) references migtest_fk_cascade_one (id) on delete cascade on update cascade; diff --git a/src/test/resources/dbmigration/migrationtest/mysql/1.1.sql b/src/test/resources/dbmigration/migrationtest/mysql/1.1.sql index 3fc961b1a..9b9c7a41d 100644 --- a/src/test/resources/dbmigration/migrationtest/mysql/1.1.sql +++ b/src/test/resources/dbmigration/migrationtest/mysql/1.1.sql @@ -5,6 +5,24 @@ create table migtest_e_user ( constraint pk_migtest_e_user primary key (id) ); +create table migtest_mtm_c_migtest_mtm_m ( + migtest_mtm_c_id integer not null, + migtest_mtm_m_id bigint not null, + constraint pk_migtest_mtm_c_migtest_mtm_m primary key (migtest_mtm_c_id,migtest_mtm_m_id) +); + +create table migtest_mtm_m_migtest_mtm_c ( + migtest_mtm_m_id bigint not null, + migtest_mtm_c_id integer not null, + constraint pk_migtest_mtm_m_migtest_mtm_c primary key (migtest_mtm_m_id,migtest_mtm_c_id) +); + +alter table migtest_ckey_detail add column one_key integer(127); +alter table migtest_ckey_detail add column two_key varchar(127); + +alter table migtest_ckey_detail add constraint fk_migtest_ckey_detail_parent foreign key (one_key,two_key) references migtest_ckey_parent (one_key,two_key) on delete restrict on update restrict; +alter table migtest_ckey_parent add column assoc_id integer; + alter table migtest_fk_cascade drop foreign key fk_migtest_fk_cascade_one_id; alter table migtest_fk_cascade add constraint fk_migtest_fk_cascade_one_id foreign key (one_id) references migtest_fk_cascade_one (id) on delete restrict on update restrict; alter table migtest_fk_none add constraint fk_migtest_fk_none_one_id foreign key (one_id) references migtest_fk_one (id) on delete restrict on update restrict; @@ -38,6 +56,7 @@ alter table migtest_e_basic add column new_integer integer default 42 not null; alter table migtest_e_basic drop index uq_migtest_e_basic_indextest2; alter table migtest_e_basic drop index uq_migtest_e_basic_indextest6; +alter table migtest_e_basic add constraint uq_migtest_e_basic_status_indextest1 unique (status,indextest1); alter table migtest_e_basic add constraint uq_migtest_e_basic_name unique (name); alter table migtest_e_basic add constraint uq_migtest_e_basic_indextest4 unique (indextest4); alter table migtest_e_basic add constraint uq_migtest_e_basic_indextest5 unique (indextest5); @@ -54,10 +73,29 @@ alter table migtest_e_history2_history add column test_string3 varchar(255); alter table migtest_e_softdelete add column deleted tinyint(1) default 0 not null; +alter table migtest_oto_child add column master_id bigint; + create index ix_migtest_e_basic_indextest3 on migtest_e_basic (indextest3); create index ix_migtest_e_basic_indextest6 on migtest_e_basic (indextest6); drop index ix_migtest_e_basic_indextest1 on migtest_e_basic; drop index ix_migtest_e_basic_indextest5 on migtest_e_basic; +alter table migtest_mtm_c_migtest_mtm_m add constraint fk_migtest_mtm_c_migtest_mtm_m_migtest_mtm_c foreign key (migtest_mtm_c_id) references migtest_mtm_c (id) on delete restrict on update restrict; +create index ix_migtest_mtm_c_migtest_mtm_m_migtest_mtm_c on migtest_mtm_c_migtest_mtm_m (migtest_mtm_c_id); + +alter table migtest_mtm_c_migtest_mtm_m add constraint fk_migtest_mtm_c_migtest_mtm_m_migtest_mtm_m foreign key (migtest_mtm_m_id) references migtest_mtm_m (id) on delete restrict on update restrict; +create index ix_migtest_mtm_c_migtest_mtm_m_migtest_mtm_m on migtest_mtm_c_migtest_mtm_m (migtest_mtm_m_id); + +alter table migtest_mtm_m_migtest_mtm_c add constraint fk_migtest_mtm_m_migtest_mtm_c_migtest_mtm_m foreign key (migtest_mtm_m_id) references migtest_mtm_m (id) on delete restrict on update restrict; +create index ix_migtest_mtm_m_migtest_mtm_c_migtest_mtm_m on migtest_mtm_m_migtest_mtm_c (migtest_mtm_m_id); + +alter table migtest_mtm_m_migtest_mtm_c add constraint fk_migtest_mtm_m_migtest_mtm_c_migtest_mtm_c foreign key (migtest_mtm_c_id) references migtest_mtm_c (id) on delete restrict on update restrict; +create index ix_migtest_mtm_m_migtest_mtm_c_migtest_mtm_c on migtest_mtm_m_migtest_mtm_c (migtest_mtm_c_id); + +alter table migtest_ckey_parent add constraint fk_migtest_ckey_parent_assoc_id foreign key (assoc_id) references migtest_ckey_assoc (id) on delete restrict on update restrict; +create index ix_migtest_ckey_parent_assoc_id on migtest_ckey_parent (assoc_id); + +alter table migtest_oto_child add constraint fk_migtest_oto_child_master_id foreign key (master_id) references migtest_oto_master (id) on delete restrict on update restrict; + alter table migtest_e_history add column sys_period_start datetime(6) default now(6); alter table migtest_e_history add column sys_period_end datetime(6); create table migtest_e_history_history( diff --git a/src/test/resources/dbmigration/migrationtest/mysql/1.3.sql b/src/test/resources/dbmigration/migrationtest/mysql/1.3.sql index a408ec0f3..804d8022f 100644 --- a/src/test/resources/dbmigration/migrationtest/mysql/1.3.sql +++ b/src/test/resources/dbmigration/migrationtest/mysql/1.3.sql @@ -2,9 +2,12 @@ -- apply changes create table migtest_e_ref ( id integer auto_increment not null, + name varchar(127) not null, + constraint uq_migtest_e_ref_name unique (name), constraint pk_migtest_e_ref primary key (id) ); +alter table migtest_ckey_detail drop foreign key fk_migtest_ckey_detail_parent; alter table migtest_fk_cascade drop foreign key fk_migtest_fk_cascade_one_id; alter table migtest_fk_cascade add constraint fk_migtest_fk_cascade_one_id foreign key (one_id) references migtest_fk_cascade_one (id) on delete cascade on update cascade; alter table migtest_fk_none drop foreign key fk_migtest_fk_none_one_id; @@ -24,6 +27,7 @@ alter table migtest_e_basic add column old_boolean tinyint(1) default 0 not null alter table migtest_e_basic add column old_boolean2 tinyint(1); alter table migtest_e_basic add column eref_id integer; +alter table migtest_e_basic drop index uq_migtest_e_basic_status_indextest1; alter table migtest_e_basic drop index uq_migtest_e_basic_name; alter table migtest_e_basic drop index uq_migtest_e_basic_indextest4; alter table migtest_e_basic drop index uq_migtest_e_basic_indextest5; diff --git a/src/test/resources/dbmigration/migrationtest/mysql/1.4__dropsFor_1.3.sql b/src/test/resources/dbmigration/migrationtest/mysql/1.4__dropsFor_1.3.sql index 41953acfe..93f1fecae 100644 --- a/src/test/resources/dbmigration/migrationtest/mysql/1.4__dropsFor_1.3.sql +++ b/src/test/resources/dbmigration/migrationtest/mysql/1.4__dropsFor_1.3.sql @@ -9,6 +9,12 @@ drop table migtest_e_history_history; -- apply changes +alter table migtest_ckey_detail drop column one_key; + +alter table migtest_ckey_detail drop column two_key; + +alter table migtest_ckey_parent drop column assoc_id; + alter table migtest_e_basic drop column new_string_field; alter table migtest_e_basic drop column new_boolean_field; @@ -27,7 +33,11 @@ alter table migtest_e_history2_history drop column test_string3; alter table migtest_e_softdelete drop column deleted; +alter table migtest_oto_child drop column master_id; + drop table if exists migtest_e_user; +drop table if exists migtest_mtm_c_migtest_mtm_m; +drop table if exists migtest_mtm_m_migtest_mtm_c; -- changes: [drop test_string2, drop test_string3] lock tables migtest_e_history2 write; drop trigger migtest_e_history2_history_upd; diff --git a/src/test/resources/dbmigration/migrationtest/oracle/1.0__initial.sql b/src/test/resources/dbmigration/migrationtest/oracle/1.0__initial.sql index fce202026..c0ddc9b36 100644 --- a/src/test/resources/dbmigration/migrationtest/oracle/1.0__initial.sql +++ b/src/test/resources/dbmigration/migrationtest/oracle/1.0__initial.sql @@ -1,5 +1,27 @@ -- Migrationscripts for ebean unittest -- apply changes +create table migtest_ckey_assoc ( + id number(10) not null, + assoc_one varchar2(255), + constraint pk_migtest_ckey_assoc primary key (id) +); +create sequence migtest_ckey_assoc_seq; + +create table migtest_ckey_detail ( + id number(10) not null, + something varchar2(255), + constraint pk_migtest_ckey_detail primary key (id) +); +create sequence migtest_ckey_detail_seq; + +create table migtest_ckey_parent ( + one_key number(127) not null, + two_key varchar2(127) not null, + name varchar2(255), + version number(10) not null, + constraint pk_migtest_ckey_parent primary key (one_key,two_key) +); + create table migtest_fk_cascade ( id number(19) not null, one_id number(19), @@ -79,6 +101,8 @@ create sequence migtest_e_history2_seq; create table migtest_e_ref ( id number(10) not null, + name varchar2(127) not null, + constraint uq_migtest_e_ref_name unique (name), constraint pk_migtest_e_ref primary key (id) ); create sequence migtest_e_ref_seq; @@ -90,6 +114,34 @@ create table migtest_e_softdelete ( ); create sequence migtest_e_softdelete_seq; +create table migtest_mtm_c ( + id number(10) not null, + name varchar2(255), + constraint pk_migtest_mtm_c primary key (id) +); +create sequence migtest_mtm_c_seq; + +create table migtest_mtm_m ( + id number(19) not null, + name varchar2(255), + constraint pk_migtest_mtm_m primary key (id) +); +create sequence migtest_mtm_m_seq; + +create table migtest_oto_child ( + id number(10) not null, + name varchar2(255), + constraint pk_migtest_oto_child primary key (id) +); +create sequence migtest_oto_child_seq; + +create table migtest_oto_master ( + id number(19) not null, + name varchar2(255), + constraint pk_migtest_oto_master primary key (id) +); +create sequence migtest_oto_master_seq; + create index ix_migtest_e_basic_indextest1 on migtest_e_basic (indextest1); create index ix_migtest_e_basic_indextest5 on migtest_e_basic (indextest5); alter table migtest_fk_cascade add constraint fk_migtest_fk_cascade_one_id foreign key (one_id) references migtest_fk_cascade_one (id) on delete cascade; diff --git a/src/test/resources/dbmigration/migrationtest/oracle/1.1.sql b/src/test/resources/dbmigration/migrationtest/oracle/1.1.sql index 6f280989f..42734f8e4 100644 --- a/src/test/resources/dbmigration/migrationtest/oracle/1.1.sql +++ b/src/test/resources/dbmigration/migrationtest/oracle/1.1.sql @@ -6,6 +6,24 @@ create table migtest_e_user ( ); create sequence migtest_e_user_seq; +create table migtest_mtm_c_migtest_mtm_m ( + migtest_mtm_c_id number(10) not null, + migtest_mtm_m_id number(19) not null, + constraint pk_migtest_mtm_c_migtest_mtm_m primary key (migtest_mtm_c_id,migtest_mtm_m_id) +); + +create table migtest_mtm_m_migtest_mtm_c ( + migtest_mtm_m_id number(19) not null, + migtest_mtm_c_id number(10) not null, + constraint pk_migtest_mtm_m_migtest_mtm_c primary key (migtest_mtm_m_id,migtest_mtm_c_id) +); + +alter table migtest_ckey_detail add column one_key number(127); +alter table migtest_ckey_detail add column two_key varchar2(127); + +alter table migtest_ckey_detail add constraint fk_migtest_ckey_detail_parent foreign key (one_key,two_key) references migtest_ckey_parent (one_key,two_key); +alter table migtest_ckey_parent add column assoc_id number(10); + alter table migtest_fk_cascade drop constraint fk_migtest_fk_cascade_one_id; alter table migtest_fk_cascade add constraint fk_migtest_fk_cascade_one_id foreign key (one_id) references migtest_fk_cascade_one (id); alter table migtest_fk_none add constraint fk_migtest_fk_none_one_id foreign key (one_id) references migtest_fk_one (id); @@ -40,6 +58,7 @@ alter table migtest_e_basic add column new_integer number(10) default 42 not nul alter table migtest_e_basic drop constraint uq_migtest_e_basic_indextest2; alter table migtest_e_basic drop constraint uq_migtest_e_basic_indextest6; +-- NOT YET IMPLEMENTED: alter table migtest_e_basic add constraint uq_migtest_e_basic_status_indextest1 unique (status,indextest1); -- NOT YET IMPLEMENTED: alter table migtest_e_basic add constraint uq_migtest_e_basic_name unique (name); -- NOT YET IMPLEMENTED: alter table migtest_e_basic add constraint uq_migtest_e_basic_indextest4 unique (indextest4); -- NOT YET IMPLEMENTED: alter table migtest_e_basic add constraint uq_migtest_e_basic_indextest5 unique (indextest5); @@ -55,7 +74,26 @@ alter table migtest_e_history2 add column test_string3 varchar2(255) default 'un alter table migtest_e_softdelete add column deleted number(1) default 0 not null; +alter table migtest_oto_child add column master_id number(19); + create index ix_migtest_e_basic_indextest3 on migtest_e_basic (indextest3); create index ix_migtest_e_basic_indextest6 on migtest_e_basic (indextest6); drop index ix_migtest_e_basic_indextest1; drop index ix_migtest_e_basic_indextest5; +alter table migtest_mtm_c_migtest_mtm_m add constraint fk_migtest_mtm_c_migtest_mtm_m_migtest_mtm_c foreign key (migtest_mtm_c_id) references migtest_mtm_c (id); +create index ix_migtest_mtm_c_migtest_mtm_m_migtest_mtm_c on migtest_mtm_c_migtest_mtm_m (migtest_mtm_c_id); + +alter table migtest_mtm_c_migtest_mtm_m add constraint fk_migtest_mtm_c_migtest_mtm_m_migtest_mtm_m foreign key (migtest_mtm_m_id) references migtest_mtm_m (id); +create index ix_migtest_mtm_c_migtest_mtm_m_migtest_mtm_m on migtest_mtm_c_migtest_mtm_m (migtest_mtm_m_id); + +alter table migtest_mtm_m_migtest_mtm_c add constraint fk_migtest_mtm_m_migtest_mtm_c_migtest_mtm_m foreign key (migtest_mtm_m_id) references migtest_mtm_m (id); +create index ix_migtest_mtm_m_migtest_mtm_c_migtest_mtm_m on migtest_mtm_m_migtest_mtm_c (migtest_mtm_m_id); + +alter table migtest_mtm_m_migtest_mtm_c add constraint fk_migtest_mtm_m_migtest_mtm_c_migtest_mtm_c foreign key (migtest_mtm_c_id) references migtest_mtm_c (id); +create index ix_migtest_mtm_m_migtest_mtm_c_migtest_mtm_c on migtest_mtm_m_migtest_mtm_c (migtest_mtm_c_id); + +alter table migtest_ckey_parent add constraint fk_migtest_ckey_parent_assoc_id foreign key (assoc_id) references migtest_ckey_assoc (id); +create index ix_migtest_ckey_parent_assoc_id on migtest_ckey_parent (assoc_id); + +alter table migtest_oto_child add constraint fk_migtest_oto_child_master_id foreign key (master_id) references migtest_oto_master (id); + diff --git a/src/test/resources/dbmigration/migrationtest/oracle/1.3.sql b/src/test/resources/dbmigration/migrationtest/oracle/1.3.sql index f5cc85a85..28d4a8eb8 100644 --- a/src/test/resources/dbmigration/migrationtest/oracle/1.3.sql +++ b/src/test/resources/dbmigration/migrationtest/oracle/1.3.sql @@ -2,10 +2,13 @@ -- apply changes create table migtest_e_ref ( id number(10) not null, + name varchar2(127) not null, + constraint uq_migtest_e_ref_name unique (name), constraint pk_migtest_e_ref primary key (id) ); create sequence migtest_e_ref_seq; +alter table migtest_ckey_detail drop constraint fk_migtest_ckey_detail_parent; alter table migtest_fk_cascade drop constraint fk_migtest_fk_cascade_one_id; alter table migtest_fk_cascade add constraint fk_migtest_fk_cascade_one_id foreign key (one_id) references migtest_fk_cascade_one (id) on delete cascade; alter table migtest_fk_none drop constraint fk_migtest_fk_none_one_id; @@ -28,6 +31,7 @@ alter table migtest_e_basic add column old_boolean number(1) default 0 not null; alter table migtest_e_basic add column old_boolean2 number(1); alter table migtest_e_basic add column eref_id number(10); +alter table migtest_e_basic drop constraint uq_migtest_e_basic_status_indextest1; alter table migtest_e_basic drop constraint uq_migtest_e_basic_name; alter table migtest_e_basic drop constraint uq_migtest_e_basic_indextest4; alter table migtest_e_basic drop constraint uq_migtest_e_basic_indextest5; diff --git a/src/test/resources/dbmigration/migrationtest/oracle/1.4__dropsFor_1.3.sql b/src/test/resources/dbmigration/migrationtest/oracle/1.4__dropsFor_1.3.sql index d5272cd51..cf48c760e 100644 --- a/src/test/resources/dbmigration/migrationtest/oracle/1.4__dropsFor_1.3.sql +++ b/src/test/resources/dbmigration/migrationtest/oracle/1.4__dropsFor_1.3.sql @@ -1,5 +1,11 @@ -- Migrationscripts for ebean unittest -- apply changes +alter table migtest_ckey_detail drop column one_key; + +alter table migtest_ckey_detail drop column two_key; + +alter table migtest_ckey_parent drop column assoc_id; + alter table migtest_e_basic drop column new_string_field; alter table migtest_e_basic drop column new_boolean_field; @@ -16,5 +22,9 @@ alter table migtest_e_history2 drop column test_string3; alter table migtest_e_softdelete drop column deleted; +alter table migtest_oto_child drop column master_id; + drop table migtest_e_user cascade constraints purge; drop sequence migtest_e_user_seq; +drop table migtest_mtm_c_migtest_mtm_m cascade constraints purge; +drop table migtest_mtm_m_migtest_mtm_c cascade constraints purge; diff --git a/src/test/resources/dbmigration/migrationtest/postgres/1.0__initial.sql b/src/test/resources/dbmigration/migrationtest/postgres/1.0__initial.sql index 3a964227e..83a1b08b5 100644 --- a/src/test/resources/dbmigration/migrationtest/postgres/1.0__initial.sql +++ b/src/test/resources/dbmigration/migrationtest/postgres/1.0__initial.sql @@ -1,5 +1,25 @@ -- Migrationscripts for ebean unittest -- apply changes +create table migtest_ckey_assoc ( + id serial not null, + assoc_one varchar(255), + constraint pk_migtest_ckey_assoc primary key (id) +); + +create table migtest_ckey_detail ( + id serial not null, + something varchar(255), + constraint pk_migtest_ckey_detail primary key (id) +); + +create table migtest_ckey_parent ( + one_key integer not null, + two_key varchar(127) not null, + name varchar(255), + version integer not null, + constraint pk_migtest_ckey_parent primary key (one_key,two_key) +); + create table migtest_fk_cascade ( id bigserial not null, one_id bigint, @@ -70,6 +90,8 @@ create table migtest_e_history2 ( create table migtest_e_ref ( id serial not null, + name varchar(127) not null, + constraint uq_migtest_e_ref_name unique (name), constraint pk_migtest_e_ref primary key (id) ); @@ -79,6 +101,30 @@ create table migtest_e_softdelete ( constraint pk_migtest_e_softdelete primary key (id) ); +create table migtest_mtm_c ( + id serial not null, + name varchar(255), + constraint pk_migtest_mtm_c primary key (id) +); + +create table migtest_mtm_m ( + id bigserial not null, + name varchar(255), + constraint pk_migtest_mtm_m primary key (id) +); + +create table migtest_oto_child ( + id serial not null, + name varchar(255), + constraint pk_migtest_oto_child primary key (id) +); + +create table migtest_oto_master ( + id bigserial not null, + name varchar(255), + constraint pk_migtest_oto_master primary key (id) +); + create index ix_migtest_e_basic_indextest1 on migtest_e_basic (indextest1); create index ix_migtest_e_basic_indextest5 on migtest_e_basic (indextest5); alter table migtest_fk_cascade add constraint fk_migtest_fk_cascade_one_id foreign key (one_id) references migtest_fk_cascade_one (id) on delete cascade on update cascade; diff --git a/src/test/resources/dbmigration/migrationtest/postgres/1.1.sql b/src/test/resources/dbmigration/migrationtest/postgres/1.1.sql index 21b6c7129..86009299b 100644 --- a/src/test/resources/dbmigration/migrationtest/postgres/1.1.sql +++ b/src/test/resources/dbmigration/migrationtest/postgres/1.1.sql @@ -8,6 +8,24 @@ create table migtest_e_user ( constraint pk_migtest_e_user primary key (id) ); +create table migtest_mtm_c_migtest_mtm_m ( + migtest_mtm_c_id integer not null, + migtest_mtm_m_id bigint not null, + constraint pk_migtest_mtm_c_migtest_mtm_m primary key (migtest_mtm_c_id,migtest_mtm_m_id) +); + +create table migtest_mtm_m_migtest_mtm_c ( + migtest_mtm_m_id bigint not null, + migtest_mtm_c_id integer not null, + constraint pk_migtest_mtm_m_migtest_mtm_c primary key (migtest_mtm_m_id,migtest_mtm_c_id) +); + +alter table migtest_ckey_detail add column one_key integer; +alter table migtest_ckey_detail add column two_key varchar(127); + +alter table migtest_ckey_detail add constraint fk_migtest_ckey_detail_parent foreign key (one_key,two_key) references migtest_ckey_parent (one_key,two_key) on delete restrict on update restrict; +alter table migtest_ckey_parent add column assoc_id integer; + alter table if exists migtest_fk_cascade drop constraint if exists fk_migtest_fk_cascade_one_id; alter table migtest_fk_cascade add constraint fk_migtest_fk_cascade_one_id foreign key (one_id) references migtest_fk_cascade_one (id) on delete restrict on update restrict; alter table migtest_fk_none add constraint fk_migtest_fk_none_one_id foreign key (one_id) references migtest_fk_one (id) on delete restrict on update restrict; @@ -42,6 +60,7 @@ alter table migtest_e_basic add column new_integer integer default 42 not null; alter table migtest_e_basic drop constraint uq_migtest_e_basic_indextest2; alter table migtest_e_basic drop constraint uq_migtest_e_basic_indextest6; +alter table migtest_e_basic add constraint uq_migtest_e_basic_status_indextest1 unique (status,indextest1); alter table migtest_e_basic add constraint uq_migtest_e_basic_name unique (name); alter table migtest_e_basic add constraint uq_migtest_e_basic_indextest4 unique (indextest4); alter table migtest_e_basic add constraint uq_migtest_e_basic_indextest5 unique (indextest5); @@ -61,10 +80,29 @@ alter table migtest_e_history2_history add column test_string3 varchar(255); alter table migtest_e_softdelete add column deleted boolean default false not null; +alter table migtest_oto_child add column master_id bigint; + create index ix_migtest_e_basic_indextest3 on migtest_e_basic (indextest3); create index ix_migtest_e_basic_indextest6 on migtest_e_basic (indextest6); drop index if exists ix_migtest_e_basic_indextest1; drop index if exists ix_migtest_e_basic_indextest5; +alter table migtest_mtm_c_migtest_mtm_m add constraint fk_migtest_mtm_c_migtest_mtm_m_migtest_mtm_c foreign key (migtest_mtm_c_id) references migtest_mtm_c (id) on delete restrict on update restrict; +create index ix_migtest_mtm_c_migtest_mtm_m_migtest_mtm_c on migtest_mtm_c_migtest_mtm_m (migtest_mtm_c_id); + +alter table migtest_mtm_c_migtest_mtm_m add constraint fk_migtest_mtm_c_migtest_mtm_m_migtest_mtm_m foreign key (migtest_mtm_m_id) references migtest_mtm_m (id) on delete restrict on update restrict; +create index ix_migtest_mtm_c_migtest_mtm_m_migtest_mtm_m on migtest_mtm_c_migtest_mtm_m (migtest_mtm_m_id); + +alter table migtest_mtm_m_migtest_mtm_c add constraint fk_migtest_mtm_m_migtest_mtm_c_migtest_mtm_m foreign key (migtest_mtm_m_id) references migtest_mtm_m (id) on delete restrict on update restrict; +create index ix_migtest_mtm_m_migtest_mtm_c_migtest_mtm_m on migtest_mtm_m_migtest_mtm_c (migtest_mtm_m_id); + +alter table migtest_mtm_m_migtest_mtm_c add constraint fk_migtest_mtm_m_migtest_mtm_c_migtest_mtm_c foreign key (migtest_mtm_c_id) references migtest_mtm_c (id) on delete restrict on update restrict; +create index ix_migtest_mtm_m_migtest_mtm_c_migtest_mtm_c on migtest_mtm_m_migtest_mtm_c (migtest_mtm_c_id); + +alter table migtest_ckey_parent add constraint fk_migtest_ckey_parent_assoc_id foreign key (assoc_id) references migtest_ckey_assoc (id) on delete restrict on update restrict; +create index ix_migtest_ckey_parent_assoc_id on migtest_ckey_parent (assoc_id); + +alter table migtest_oto_child add constraint fk_migtest_oto_child_master_id foreign key (master_id) references migtest_oto_master (id) on delete restrict on update restrict; + alter table migtest_e_history add column sys_period tstzrange not null default tstzrange(current_timestamp, null); create table migtest_e_history_history(like migtest_e_history); create view migtest_e_history_with_history as select * from migtest_e_history union all select * from migtest_e_history_history; diff --git a/src/test/resources/dbmigration/migrationtest/postgres/1.3.sql b/src/test/resources/dbmigration/migrationtest/postgres/1.3.sql index a68497900..345be4828 100644 --- a/src/test/resources/dbmigration/migrationtest/postgres/1.3.sql +++ b/src/test/resources/dbmigration/migrationtest/postgres/1.3.sql @@ -2,9 +2,12 @@ -- apply changes create table migtest_e_ref ( id serial not null, + name varchar(127) not null, + constraint uq_migtest_e_ref_name unique (name), constraint pk_migtest_e_ref primary key (id) ); +alter table if exists migtest_ckey_detail drop constraint if exists fk_migtest_ckey_detail_parent; alter table if exists migtest_fk_cascade drop constraint if exists fk_migtest_fk_cascade_one_id; alter table migtest_fk_cascade add constraint fk_migtest_fk_cascade_one_id foreign key (one_id) references migtest_fk_cascade_one (id) on delete cascade on update cascade; alter table if exists migtest_fk_none drop constraint if exists fk_migtest_fk_none_one_id; @@ -27,6 +30,7 @@ alter table migtest_e_basic add column old_boolean boolean default false not nul alter table migtest_e_basic add column old_boolean2 boolean; alter table migtest_e_basic add column eref_id integer; +alter table migtest_e_basic drop constraint uq_migtest_e_basic_status_indextest1; alter table migtest_e_basic drop constraint uq_migtest_e_basic_name; alter table migtest_e_basic drop constraint uq_migtest_e_basic_indextest4; alter table migtest_e_basic drop constraint uq_migtest_e_basic_indextest5; diff --git a/src/test/resources/dbmigration/migrationtest/postgres/1.4__dropsFor_1.3.sql b/src/test/resources/dbmigration/migrationtest/postgres/1.4__dropsFor_1.3.sql index 34086204d..e877b64da 100644 --- a/src/test/resources/dbmigration/migrationtest/postgres/1.4__dropsFor_1.3.sql +++ b/src/test/resources/dbmigration/migrationtest/postgres/1.4__dropsFor_1.3.sql @@ -10,6 +10,12 @@ drop table migtest_e_history_history; drop view if exists migtest_e_history2_with_history; -- apply changes +alter table migtest_ckey_detail drop column one_key; + +alter table migtest_ckey_detail drop column two_key; + +alter table migtest_ckey_parent drop column assoc_id; + alter table migtest_e_basic drop column new_string_field; alter table migtest_e_basic drop column new_boolean_field; @@ -28,8 +34,12 @@ alter table migtest_e_history2_history drop column test_string3; alter table migtest_e_softdelete drop column deleted; +alter table migtest_oto_child drop column master_id; + drop table if exists migtest_e_user cascade; drop sequence if exists migtest_e_user_seq; +drop table if exists migtest_mtm_c_migtest_mtm_m cascade; +drop table if exists migtest_mtm_m_migtest_mtm_c cascade; -- changes: [drop test_string2, drop test_string3] create or replace view migtest_e_history2_with_history as select id, test_string, sys_period from migtest_e_history2 union all select id, test_string, sys_period from migtest_e_history2_history; diff --git a/src/test/resources/dbmigration/migrationtest/sqlite/1.0__initial.sql b/src/test/resources/dbmigration/migrationtest/sqlite/1.0__initial.sql index 7817850a0..5720ef6ab 100644 --- a/src/test/resources/dbmigration/migrationtest/sqlite/1.0__initial.sql +++ b/src/test/resources/dbmigration/migrationtest/sqlite/1.0__initial.sql @@ -1,5 +1,25 @@ -- Migrationscripts for ebean unittest -- apply changes +create table migtest_ckey_assoc ( + id integer not null, + assoc_one varchar(255), + constraint pk_migtest_ckey_assoc primary key (id) +); + +create table migtest_ckey_detail ( + id integer not null, + something varchar(255), + constraint pk_migtest_ckey_detail primary key (id) +); + +create table migtest_ckey_parent ( + one_key integer(127) not null, + two_key varchar(127) not null, + name varchar(255), + version integer not null, + constraint pk_migtest_ckey_parent primary key (one_key,two_key) +); + create table migtest_fk_cascade ( id integer not null, one_id integer, @@ -73,6 +93,8 @@ create table migtest_e_history2 ( create table migtest_e_ref ( id integer not null, + name varchar(127) not null, + constraint uq_migtest_e_ref_name unique (name), constraint pk_migtest_e_ref primary key (id) ); @@ -82,5 +104,29 @@ create table migtest_e_softdelete ( constraint pk_migtest_e_softdelete primary key (id) ); +create table migtest_mtm_c ( + id integer not null, + name varchar(255), + constraint pk_migtest_mtm_c primary key (id) +); + +create table migtest_mtm_m ( + id integer not null, + name varchar(255), + constraint pk_migtest_mtm_m primary key (id) +); + +create table migtest_oto_child ( + id integer not null, + name varchar(255), + constraint pk_migtest_oto_child primary key (id) +); + +create table migtest_oto_master ( + id integer not null, + name varchar(255), + constraint pk_migtest_oto_master primary key (id) +); + create index ix_migtest_e_basic_indextest1 on migtest_e_basic (indextest1); create index ix_migtest_e_basic_indextest5 on migtest_e_basic (indextest5); diff --git a/src/test/resources/dbmigration/migrationtest/sqlite/1.1.sql b/src/test/resources/dbmigration/migrationtest/sqlite/1.1.sql index 6bfca30fe..d5e7c150e 100644 --- a/src/test/resources/dbmigration/migrationtest/sqlite/1.1.sql +++ b/src/test/resources/dbmigration/migrationtest/sqlite/1.1.sql @@ -5,6 +5,27 @@ create table migtest_e_user ( constraint pk_migtest_e_user primary key (id) ); +create table migtest_mtm_c_migtest_mtm_m ( + migtest_mtm_c_id integer not null, + migtest_mtm_m_id integer not null, + constraint pk_migtest_mtm_c_migtest_mtm_m primary key (migtest_mtm_c_id,migtest_mtm_m_id), + foreign key (migtest_mtm_c_id) references migtest_mtm_c (id) on delete restrict on update restrict, + foreign key (migtest_mtm_m_id) references migtest_mtm_m (id) on delete restrict on update restrict +); + +create table migtest_mtm_m_migtest_mtm_c ( + migtest_mtm_m_id integer not null, + migtest_mtm_c_id integer not null, + constraint pk_migtest_mtm_m_migtest_mtm_c primary key (migtest_mtm_m_id,migtest_mtm_c_id), + foreign key (migtest_mtm_m_id) references migtest_mtm_m (id) on delete restrict on update restrict, + foreign key (migtest_mtm_c_id) references migtest_mtm_c (id) on delete restrict on update restrict +); + +alter table migtest_ckey_detail add column one_key integer(127); +alter table migtest_ckey_detail add column two_key varchar(127); + +alter table migtest_ckey_parent add column assoc_id integer; + alter table migtest_fk_cascade drop constraint if exists fk_migtest_fk_cascade_one_id; alter table migtest_fk_set_null drop constraint if exists fk_migtest_fk_set_null_one_id; @@ -34,6 +55,7 @@ alter table migtest_e_basic add column new_integer integer default 42 not null; alter table migtest_e_basic drop constraint uq_migtest_e_basic_indextest2; alter table migtest_e_basic drop constraint uq_migtest_e_basic_indextest6; +alter table migtest_e_basic add constraint uq_migtest_e_basic_status_indextest1 unique (status,indextest1); alter table migtest_e_basic add constraint uq_migtest_e_basic_name unique (name); alter table migtest_e_basic add constraint uq_migtest_e_basic_indextest4 unique (indextest4); alter table migtest_e_basic add constraint uq_migtest_e_basic_indextest5 unique (indextest5); @@ -49,7 +71,12 @@ alter table migtest_e_history2_history add column test_string3 varchar(255); alter table migtest_e_softdelete add column deleted int default 0 not null; +alter table migtest_oto_child add column master_id integer; + create index ix_migtest_e_basic_indextest3 on migtest_e_basic (indextest3); create index ix_migtest_e_basic_indextest6 on migtest_e_basic (indextest6); drop index if exists ix_migtest_e_basic_indextest1; drop index if exists ix_migtest_e_basic_indextest5; +create index ix_migtest_ckey_parent_assoc_id on migtest_ckey_parent (assoc_id); + + diff --git a/src/test/resources/dbmigration/migrationtest/sqlite/1.3.sql b/src/test/resources/dbmigration/migrationtest/sqlite/1.3.sql index 77f17afb5..f06daf11d 100644 --- a/src/test/resources/dbmigration/migrationtest/sqlite/1.3.sql +++ b/src/test/resources/dbmigration/migrationtest/sqlite/1.3.sql @@ -2,9 +2,12 @@ -- apply changes create table migtest_e_ref ( id integer not null, + name varchar(127) not null, + constraint uq_migtest_e_ref_name unique (name), constraint pk_migtest_e_ref primary key (id) ); +alter table migtest_ckey_detail drop constraint if exists fk_migtest_ckey_detail_parent; alter table migtest_fk_cascade drop constraint if exists fk_migtest_fk_cascade_one_id; alter table migtest_fk_none drop constraint if exists fk_migtest_fk_none_one_id; alter table migtest_fk_none_via_join drop constraint if exists fk_migtest_fk_none_via_join_one_id; @@ -25,6 +28,7 @@ alter table migtest_e_basic add column old_boolean int default 0 not null; alter table migtest_e_basic add column old_boolean2 int; alter table migtest_e_basic add column eref_id integer; +alter table migtest_e_basic drop constraint uq_migtest_e_basic_status_indextest1; alter table migtest_e_basic drop constraint uq_migtest_e_basic_name; alter table migtest_e_basic drop constraint uq_migtest_e_basic_indextest4; alter table migtest_e_basic drop constraint uq_migtest_e_basic_indextest5; diff --git a/src/test/resources/dbmigration/migrationtest/sqlite/1.4__dropsFor_1.3.sql b/src/test/resources/dbmigration/migrationtest/sqlite/1.4__dropsFor_1.3.sql index 12531750d..0d3d24380 100644 --- a/src/test/resources/dbmigration/migrationtest/sqlite/1.4__dropsFor_1.3.sql +++ b/src/test/resources/dbmigration/migrationtest/sqlite/1.4__dropsFor_1.3.sql @@ -1,5 +1,11 @@ -- Migrationscripts for ebean unittest -- apply changes +alter table migtest_ckey_detail drop column one_key; + +alter table migtest_ckey_detail drop column two_key; + +alter table migtest_ckey_parent drop column assoc_id; + alter table migtest_e_basic drop column new_string_field; alter table migtest_e_basic drop column new_boolean_field; @@ -18,4 +24,8 @@ alter table migtest_e_history2_history drop column test_string3; alter table migtest_e_softdelete drop column deleted; +alter table migtest_oto_child drop column master_id; + drop table if exists migtest_e_user; +drop table if exists migtest_mtm_c_migtest_mtm_m; +drop table if exists migtest_mtm_m_migtest_mtm_c; diff --git a/src/test/resources/dbmigration/migrationtest/sqlserver/1.0__initial.sql b/src/test/resources/dbmigration/migrationtest/sqlserver/1.0__initial.sql index 58a36d80e..be7ab17be 100644 --- a/src/test/resources/dbmigration/migrationtest/sqlserver/1.0__initial.sql +++ b/src/test/resources/dbmigration/migrationtest/sqlserver/1.0__initial.sql @@ -1,5 +1,27 @@ -- Migrationscripts for ebean unittest -- apply changes +create table migtest_ckey_assoc ( + id integer not null, + assoc_one varchar(255), + constraint pk_migtest_ckey_assoc primary key (id) +); +create sequence migtest_ckey_assoc_seq as bigint start with 1 ; + +create table migtest_ckey_detail ( + id integer not null, + something varchar(255), + constraint pk_migtest_ckey_detail primary key (id) +); +create sequence migtest_ckey_detail_seq as bigint start with 1 ; + +create table migtest_ckey_parent ( + one_key integer not null, + two_key varchar(127) not null, + name varchar(255), + version integer not null, + constraint pk_migtest_ckey_parent primary key (one_key,two_key) +); + create table migtest_fk_cascade ( id numeric(19) not null, one_id numeric(19), @@ -79,8 +101,10 @@ create sequence migtest_e_history2_seq as bigint start with 1 ; create table migtest_e_ref ( id integer not null, + name varchar(127) not null, constraint pk_migtest_e_ref primary key (id) ); +alter table migtest_e_ref add constraint uq_migtest_e_ref_name unique (name); create sequence migtest_e_ref_seq as bigint start with 1 ; create table migtest_e_softdelete ( @@ -90,6 +114,34 @@ create table migtest_e_softdelete ( ); create sequence migtest_e_softdelete_seq as bigint start with 1 ; +create table migtest_mtm_c ( + id integer not null, + name varchar(255), + constraint pk_migtest_mtm_c primary key (id) +); +create sequence migtest_mtm_c_seq as bigint start with 1 ; + +create table migtest_mtm_m ( + id numeric(19) not null, + name varchar(255), + constraint pk_migtest_mtm_m primary key (id) +); +create sequence migtest_mtm_m_seq as bigint start with 1 ; + +create table migtest_oto_child ( + id integer not null, + name varchar(255), + constraint pk_migtest_oto_child primary key (id) +); +create sequence migtest_oto_child_seq as bigint start with 1 ; + +create table migtest_oto_master ( + id numeric(19) not null, + name varchar(255), + constraint pk_migtest_oto_master primary key (id) +); +create sequence migtest_oto_master_seq as bigint start with 1 ; + create index ix_migtest_e_basic_indextest1 on migtest_e_basic (indextest1); create index ix_migtest_e_basic_indextest5 on migtest_e_basic (indextest5); alter table migtest_fk_cascade add constraint fk_migtest_fk_cascade_one_id foreign key (one_id) references migtest_fk_cascade_one (id) on delete cascade on update cascade; diff --git a/src/test/resources/dbmigration/migrationtest/sqlserver/1.1.sql b/src/test/resources/dbmigration/migrationtest/sqlserver/1.1.sql index b873a0152..e20737814 100644 --- a/src/test/resources/dbmigration/migrationtest/sqlserver/1.1.sql +++ b/src/test/resources/dbmigration/migrationtest/sqlserver/1.1.sql @@ -6,6 +6,24 @@ create table migtest_e_user ( ); create sequence migtest_e_user_seq as bigint start with 1 ; +create table migtest_mtm_c_migtest_mtm_m ( + migtest_mtm_c_id integer not null, + migtest_mtm_m_id numeric(19) not null, + constraint pk_migtest_mtm_c_migtest_mtm_m primary key (migtest_mtm_c_id,migtest_mtm_m_id) +); + +create table migtest_mtm_m_migtest_mtm_c ( + migtest_mtm_m_id numeric(19) not null, + migtest_mtm_c_id integer not null, + constraint pk_migtest_mtm_m_migtest_mtm_c primary key (migtest_mtm_m_id,migtest_mtm_c_id) +); + +alter table migtest_ckey_detail add one_key integer; +alter table migtest_ckey_detail add two_key varchar(127); + +alter table migtest_ckey_detail add constraint fk_migtest_ckey_detail_parent foreign key (one_key,two_key) references migtest_ckey_parent (one_key,two_key); +alter table migtest_ckey_parent add assoc_id integer; + IF OBJECT_ID('fk_migtest_fk_cascade_one_id', 'F') IS NOT NULL alter table migtest_fk_cascade drop constraint fk_migtest_fk_cascade_one_id; alter table migtest_fk_cascade add constraint fk_migtest_fk_cascade_one_id foreign key (one_id) references migtest_fk_cascade_one (id); alter table migtest_fk_none add constraint fk_migtest_fk_none_one_id foreign key (one_id) references migtest_fk_one (id); @@ -42,6 +60,7 @@ IF (OBJECT_ID('uq_migtest_e_basic_indextest2', 'UQ') IS NOT NULL) alter table mi IF EXISTS (SELECT name FROM sys.indexes WHERE object_id = OBJECT_ID('migtest_e_basic','U') AND name = 'uq_migtest_e_basic_indextest2') drop index uq_migtest_e_basic_indextest2 ON migtest_e_basic; IF (OBJECT_ID('uq_migtest_e_basic_indextest6', 'UQ') IS NOT NULL) alter table migtest_e_basic drop constraint uq_migtest_e_basic_indextest6; IF EXISTS (SELECT name FROM sys.indexes WHERE object_id = OBJECT_ID('migtest_e_basic','U') AND name = 'uq_migtest_e_basic_indextest6') drop index uq_migtest_e_basic_indextest6 ON migtest_e_basic; +create unique nonclustered index uq_migtest_e_basic_status_indextest1 on migtest_e_basic(status,indextest1) where indextest1 is not null; create unique nonclustered index uq_migtest_e_basic_name on migtest_e_basic(name) where name is not null; create unique nonclustered index uq_migtest_e_basic_indextest4 on migtest_e_basic(indextest4) where indextest4 is not null; create unique nonclustered index uq_migtest_e_basic_indextest5 on migtest_e_basic(indextest5) where indextest5 is not null; @@ -55,10 +74,29 @@ alter table migtest_e_history2 add test_string3 varchar(255) default 'unknown' n alter table migtest_e_softdelete add deleted bit default 0 not null; +alter table migtest_oto_child add master_id numeric(19); + create index ix_migtest_e_basic_indextest3 on migtest_e_basic (indextest3); create index ix_migtest_e_basic_indextest6 on migtest_e_basic (indextest6); IF EXISTS (SELECT name FROM sys.indexes WHERE object_id = OBJECT_ID('migtest_e_basic','U') AND name = 'ix_migtest_e_basic_indextest1') drop index ix_migtest_e_basic_indextest1 ON migtest_e_basic; IF EXISTS (SELECT name FROM sys.indexes WHERE object_id = OBJECT_ID('migtest_e_basic','U') AND name = 'ix_migtest_e_basic_indextest5') drop index ix_migtest_e_basic_indextest5 ON migtest_e_basic; +alter table migtest_mtm_c_migtest_mtm_m add constraint fk_migtest_mtm_c_migtest_mtm_m_migtest_mtm_c foreign key (migtest_mtm_c_id) references migtest_mtm_c (id); +create index ix_migtest_mtm_c_migtest_mtm_m_migtest_mtm_c on migtest_mtm_c_migtest_mtm_m (migtest_mtm_c_id); + +alter table migtest_mtm_c_migtest_mtm_m add constraint fk_migtest_mtm_c_migtest_mtm_m_migtest_mtm_m foreign key (migtest_mtm_m_id) references migtest_mtm_m (id); +create index ix_migtest_mtm_c_migtest_mtm_m_migtest_mtm_m on migtest_mtm_c_migtest_mtm_m (migtest_mtm_m_id); + +alter table migtest_mtm_m_migtest_mtm_c add constraint fk_migtest_mtm_m_migtest_mtm_c_migtest_mtm_m foreign key (migtest_mtm_m_id) references migtest_mtm_m (id); +create index ix_migtest_mtm_m_migtest_mtm_c_migtest_mtm_m on migtest_mtm_m_migtest_mtm_c (migtest_mtm_m_id); + +alter table migtest_mtm_m_migtest_mtm_c add constraint fk_migtest_mtm_m_migtest_mtm_c_migtest_mtm_c foreign key (migtest_mtm_c_id) references migtest_mtm_c (id); +create index ix_migtest_mtm_m_migtest_mtm_c_migtest_mtm_c on migtest_mtm_m_migtest_mtm_c (migtest_mtm_c_id); + +alter table migtest_ckey_parent add constraint fk_migtest_ckey_parent_assoc_id foreign key (assoc_id) references migtest_ckey_assoc (id); +create index ix_migtest_ckey_parent_assoc_id on migtest_ckey_parent (assoc_id); + +alter table migtest_oto_child add constraint fk_migtest_oto_child_master_id foreign key (master_id) references migtest_oto_master (id); + alter table migtest_e_history add sys_periodFrom datetime2 GENERATED ALWAYS AS ROW START NOT NULL DEFAULT SYSUTCDATETIME(), sys_periodTo datetime2 GENERATED ALWAYS AS ROW END NOT NULL DEFAULT '9999-12-31T23:59:59.9999999', diff --git a/src/test/resources/dbmigration/migrationtest/sqlserver/1.3.sql b/src/test/resources/dbmigration/migrationtest/sqlserver/1.3.sql index 944c52349..5109fb90e 100644 --- a/src/test/resources/dbmigration/migrationtest/sqlserver/1.3.sql +++ b/src/test/resources/dbmigration/migrationtest/sqlserver/1.3.sql @@ -2,10 +2,13 @@ -- apply changes create table migtest_e_ref ( id integer not null, + name varchar(127) not null, constraint pk_migtest_e_ref primary key (id) ); +alter table migtest_e_ref add constraint uq_migtest_e_ref_name unique (name); create sequence migtest_e_ref_seq as bigint start with 1 ; +IF OBJECT_ID('fk_migtest_ckey_detail_parent', 'F') IS NOT NULL alter table migtest_ckey_detail drop constraint fk_migtest_ckey_detail_parent; IF OBJECT_ID('fk_migtest_fk_cascade_one_id', 'F') IS NOT NULL alter table migtest_fk_cascade drop constraint fk_migtest_fk_cascade_one_id; alter table migtest_fk_cascade add constraint fk_migtest_fk_cascade_one_id foreign key (one_id) references migtest_fk_cascade_one (id) on delete cascade on update cascade; IF OBJECT_ID('fk_migtest_fk_none_one_id', 'F') IS NOT NULL alter table migtest_fk_none drop constraint fk_migtest_fk_none_one_id; @@ -35,6 +38,8 @@ alter table migtest_e_basic add old_boolean bit default 0 not null; alter table migtest_e_basic add old_boolean2 bit; alter table migtest_e_basic add eref_id integer; +IF (OBJECT_ID('uq_migtest_e_basic_status_indextest1', 'UQ') IS NOT NULL) alter table migtest_e_basic drop constraint uq_migtest_e_basic_status_indextest1; +IF EXISTS (SELECT name FROM sys.indexes WHERE object_id = OBJECT_ID('migtest_e_basic','U') AND name = 'uq_migtest_e_basic_status_indextest1') drop index uq_migtest_e_basic_status_indextest1 ON migtest_e_basic; IF (OBJECT_ID('uq_migtest_e_basic_name', 'UQ') IS NOT NULL) alter table migtest_e_basic drop constraint uq_migtest_e_basic_name; IF EXISTS (SELECT name FROM sys.indexes WHERE object_id = OBJECT_ID('migtest_e_basic','U') AND name = 'uq_migtest_e_basic_name') drop index uq_migtest_e_basic_name ON migtest_e_basic; IF (OBJECT_ID('uq_migtest_e_basic_indextest4', 'UQ') IS NOT NULL) alter table migtest_e_basic drop constraint uq_migtest_e_basic_indextest4; diff --git a/src/test/resources/dbmigration/migrationtest/sqlserver/1.4__dropsFor_1.3.sql b/src/test/resources/dbmigration/migrationtest/sqlserver/1.4__dropsFor_1.3.sql index 745ec6bd2..50be4368d 100644 --- a/src/test/resources/dbmigration/migrationtest/sqlserver/1.4__dropsFor_1.3.sql +++ b/src/test/resources/dbmigration/migrationtest/sqlserver/1.4__dropsFor_1.3.sql @@ -1,5 +1,44 @@ -- Migrationscripts for ebean unittest -- apply changes +-- drop column migtest_ckey_detail.one_key; +IF (OBJECT_ID('uq_migtest_ckey_detail_one_key', 'UQ') IS NOT NULL) alter table migtest_ckey_detail drop constraint uq_migtest_ckey_detail_one_key; +IF EXISTS (SELECT name FROM sys.indexes WHERE object_id = OBJECT_ID('migtest_ckey_detail','U') AND name = 'uq_migtest_ckey_detail_one_key') drop index uq_migtest_ckey_detail_one_key ON migtest_ckey_detail; +delimiter $$ +DECLARE @Tmp nvarchar(200);select @Tmp = t1.name from sys.default_constraints t1 + join sys.columns t2 on t1.object_id = t2.default_object_id + where t1.parent_object_id = OBJECT_ID('migtest_ckey_detail') and t2.name = 'one_key'; +if @Tmp is not null EXEC('alter table migtest_ckey_detail drop constraint ' + @Tmp)$$; +IF (OBJECT_ID('ck_migtest_ckey_detail_one_key', 'C') IS NOT NULL) alter table migtest_ckey_detail drop constraint ck_migtest_ckey_detail_one_key; +IF EXISTS (SELECT name FROM sys.indexes WHERE object_id = OBJECT_ID('migtest_ckey_detail','U') AND name = 'ix_migtest_ckey_detail_one_key') drop index ix_migtest_ckey_detail_one_key ON migtest_ckey_detail; +IF OBJECT_ID('fk_migtest_ckey_detail_one_key', 'F') IS NOT NULL alter table migtest_ckey_detail drop constraint fk_migtest_ckey_detail_one_key; +alter table migtest_ckey_detail drop column one_key; + +-- drop column migtest_ckey_detail.two_key; +IF (OBJECT_ID('uq_migtest_ckey_detail_two_key', 'UQ') IS NOT NULL) alter table migtest_ckey_detail drop constraint uq_migtest_ckey_detail_two_key; +IF EXISTS (SELECT name FROM sys.indexes WHERE object_id = OBJECT_ID('migtest_ckey_detail','U') AND name = 'uq_migtest_ckey_detail_two_key') drop index uq_migtest_ckey_detail_two_key ON migtest_ckey_detail; +delimiter $$ +DECLARE @Tmp nvarchar(200);select @Tmp = t1.name from sys.default_constraints t1 + join sys.columns t2 on t1.object_id = t2.default_object_id + where t1.parent_object_id = OBJECT_ID('migtest_ckey_detail') and t2.name = 'two_key'; +if @Tmp is not null EXEC('alter table migtest_ckey_detail drop constraint ' + @Tmp)$$; +IF (OBJECT_ID('ck_migtest_ckey_detail_two_key', 'C') IS NOT NULL) alter table migtest_ckey_detail drop constraint ck_migtest_ckey_detail_two_key; +IF EXISTS (SELECT name FROM sys.indexes WHERE object_id = OBJECT_ID('migtest_ckey_detail','U') AND name = 'ix_migtest_ckey_detail_two_key') drop index ix_migtest_ckey_detail_two_key ON migtest_ckey_detail; +IF OBJECT_ID('fk_migtest_ckey_detail_two_key', 'F') IS NOT NULL alter table migtest_ckey_detail drop constraint fk_migtest_ckey_detail_two_key; +alter table migtest_ckey_detail drop column two_key; + +-- drop column migtest_ckey_parent.assoc_id; +IF (OBJECT_ID('uq_migtest_ckey_parent_assoc_id', 'UQ') IS NOT NULL) alter table migtest_ckey_parent drop constraint uq_migtest_ckey_parent_assoc_id; +IF EXISTS (SELECT name FROM sys.indexes WHERE object_id = OBJECT_ID('migtest_ckey_parent','U') AND name = 'uq_migtest_ckey_parent_assoc_id') drop index uq_migtest_ckey_parent_assoc_id ON migtest_ckey_parent; +delimiter $$ +DECLARE @Tmp nvarchar(200);select @Tmp = t1.name from sys.default_constraints t1 + join sys.columns t2 on t1.object_id = t2.default_object_id + where t1.parent_object_id = OBJECT_ID('migtest_ckey_parent') and t2.name = 'assoc_id'; +if @Tmp is not null EXEC('alter table migtest_ckey_parent drop constraint ' + @Tmp)$$; +IF (OBJECT_ID('ck_migtest_ckey_parent_assoc_id', 'C') IS NOT NULL) alter table migtest_ckey_parent drop constraint ck_migtest_ckey_parent_assoc_id; +IF EXISTS (SELECT name FROM sys.indexes WHERE object_id = OBJECT_ID('migtest_ckey_parent','U') AND name = 'ix_migtest_ckey_parent_assoc_id') drop index ix_migtest_ckey_parent_assoc_id ON migtest_ckey_parent; +IF OBJECT_ID('fk_migtest_ckey_parent_assoc_id', 'F') IS NOT NULL alter table migtest_ckey_parent drop constraint fk_migtest_ckey_parent_assoc_id; +alter table migtest_ckey_parent drop column assoc_id; + -- drop column migtest_e_basic.new_string_field; IF (OBJECT_ID('uq_migtest_e_basic_new_string_field', 'UQ') IS NOT NULL) alter table migtest_e_basic drop constraint uq_migtest_e_basic_new_string_field; IF EXISTS (SELECT name FROM sys.indexes WHERE object_id = OBJECT_ID('migtest_e_basic','U') AND name = 'uq_migtest_e_basic_new_string_field') drop index uq_migtest_e_basic_new_string_field ON migtest_e_basic; @@ -104,8 +143,23 @@ IF EXISTS (SELECT name FROM sys.indexes WHERE object_id = OBJECT_ID('migtest_e_s IF OBJECT_ID('fk_migtest_e_softdelete_deleted', 'F') IS NOT NULL alter table migtest_e_softdelete drop constraint fk_migtest_e_softdelete_deleted; alter table migtest_e_softdelete drop column deleted; +-- drop column migtest_oto_child.master_id; +IF (OBJECT_ID('uq_migtest_oto_child_master_id', 'UQ') IS NOT NULL) alter table migtest_oto_child drop constraint uq_migtest_oto_child_master_id; +IF EXISTS (SELECT name FROM sys.indexes WHERE object_id = OBJECT_ID('migtest_oto_child','U') AND name = 'uq_migtest_oto_child_master_id') drop index uq_migtest_oto_child_master_id ON migtest_oto_child; +delimiter $$ +DECLARE @Tmp nvarchar(200);select @Tmp = t1.name from sys.default_constraints t1 + join sys.columns t2 on t1.object_id = t2.default_object_id + where t1.parent_object_id = OBJECT_ID('migtest_oto_child') and t2.name = 'master_id'; +if @Tmp is not null EXEC('alter table migtest_oto_child drop constraint ' + @Tmp)$$; +IF (OBJECT_ID('ck_migtest_oto_child_master_id', 'C') IS NOT NULL) alter table migtest_oto_child drop constraint ck_migtest_oto_child_master_id; +IF EXISTS (SELECT name FROM sys.indexes WHERE object_id = OBJECT_ID('migtest_oto_child','U') AND name = 'ix_migtest_oto_child_master_id') drop index ix_migtest_oto_child_master_id ON migtest_oto_child; +IF OBJECT_ID('fk_migtest_oto_child_master_id', 'F') IS NOT NULL alter table migtest_oto_child drop constraint fk_migtest_oto_child_master_id; +alter table migtest_oto_child drop column master_id; + IF OBJECT_ID('migtest_e_user', 'U') IS NOT NULL drop table migtest_e_user; IF OBJECT_ID('migtest_e_user_seq', 'SO') IS NOT NULL drop sequence migtest_e_user_seq; +IF OBJECT_ID('migtest_mtm_c_migtest_mtm_m', 'U') IS NOT NULL drop table migtest_mtm_c_migtest_mtm_m; +IF OBJECT_ID('migtest_mtm_m_migtest_mtm_c', 'U') IS NOT NULL drop table migtest_mtm_m_migtest_mtm_c; -- dropping history support for migtest_e_history; delimiter $$ DECLARE @Tmp nvarchar(200);select @Tmp = t1.name from sys.default_constraints t1