From a93e2e05c58b8cfcf0bebe6804b8a2e43fd11b38 Mon Sep 17 00:00:00 2001 From: Roland Praml Date: Mon, 7 Feb 2022 11:55:41 +0100 Subject: [PATCH 1/6] Moved DbMigrationtests test to "ebean-tests" --- .../test/java/io/localtest/BaseTestCase.java | 1 - .../java/io/localtest/PlatformCondition.java | 38 -- .../io/localtest/annotation/ForPlatform.java | 18 - .../localtest/annotation/IgnorePlatform.java | 18 - .../migration/history/v1_0/EHistory7.java | 24 -- .../migration/history/v1_1/EHistory7.java | 21 -- .../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 | 59 ---- .../java/misc/migration/v1_0/DfkCascade.java | 22 -- .../misc/migration/v1_0/DfkCascadeOne.java | 21 -- .../java/misc/migration/v1_0/DfkNone.java | 21 -- .../misc/migration/v1_0/DfkNoneViaJoin.java | 22 -- .../test/java/misc/migration/v1_0/DfkOne.java | 13 - .../java/misc/migration/v1_0/DfkSetNull.java | 22 -- .../test/java/misc/migration/v1_0/EBasic.java | 130 ------- .../test/java/misc/migration/v1_0/EEnum.java | 29 -- .../java/misc/migration/v1_0/EHistory.java | 17 - .../java/misc/migration/v1_0/EHistory2.java | 26 -- .../java/misc/migration/v1_0/EHistory3.java | 21 -- .../java/misc/migration/v1_0/EHistory4.java | 21 -- .../java/misc/migration/v1_0/EHistory5.java | 21 -- .../java/misc/migration/v1_0/EHistory6.java | 24 -- .../test/java/misc/migration/v1_0/ERef.java | 28 -- .../java/misc/migration/v1_0/ESoftdelete.java | 17 - .../java/misc/migration/v1_0/MtmChild.java | 34 -- .../java/misc/migration/v1_0/MtmMaster.java | 32 -- .../java/misc/migration/v1_0/OtoChild.java | 39 --- .../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 | 59 ---- .../java/misc/migration/v1_1/DfkCascade.java | 22 -- .../misc/migration/v1_1/DfkCascadeOne.java | 21 -- .../java/misc/migration/v1_1/DfkNone.java | 21 -- .../misc/migration/v1_1/DfkNoneViaJoin.java | 22 -- .../test/java/misc/migration/v1_1/DfkOne.java | 13 - .../java/misc/migration/v1_1/DfkSetNull.java | 22 -- .../test/java/misc/migration/v1_1/EBasic.java | 175 ---------- .../test/java/misc/migration/v1_1/EEnum.java | 18 - .../java/misc/migration/v1_1/EHistory.java | 26 -- .../java/misc/migration/v1_1/EHistory2.java | 35 -- .../java/misc/migration/v1_1/EHistory3.java | 23 -- .../java/misc/migration/v1_1/EHistory4.java | 21 -- .../java/misc/migration/v1_1/EHistory5.java | 27 -- .../java/misc/migration/v1_1/EHistory6.java | 27 -- .../java/misc/migration/v1_1/ESoftdelete.java | 22 -- .../test/java/misc/migration/v1_1/EUser.java | 13 - .../java/misc/migration/v1_1/MtmChild.java | 45 --- .../java/misc/migration/v1_1/MtmMaster.java | 46 --- .../java/misc/migration/v1_1/OtoChild.java | 49 --- .../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 | 59 ---- .../java/misc/migration/v1_2/DfkCascade.java | 22 -- .../misc/migration/v1_2/DfkCascadeOne.java | 21 -- .../java/misc/migration/v1_2/DfkNone.java | 21 -- .../misc/migration/v1_2/DfkNoneViaJoin.java | 22 -- .../test/java/misc/migration/v1_2/DfkOne.java | 13 - .../java/misc/migration/v1_2/DfkSetNull.java | 22 -- .../test/java/misc/migration/v1_2/EBasic.java | 131 ------- .../test/java/misc/migration/v1_2/EEnum.java | 29 -- .../java/misc/migration/v1_2/EHistory.java | 17 - .../java/misc/migration/v1_2/EHistory2.java | 26 -- .../java/misc/migration/v1_2/EHistory3.java | 21 -- .../java/misc/migration/v1_2/EHistory4.java | 21 -- .../java/misc/migration/v1_2/EHistory5.java | 21 -- .../java/misc/migration/v1_2/EHistory6.java | 26 -- .../test/java/misc/migration/v1_2/ERef.java | 28 -- .../java/misc/migration/v1_2/ESoftdelete.java | 17 - .../java/misc/migration/v1_2/MtmChild.java | 34 -- .../java/misc/migration/v1_2/MtmMaster.java | 32 -- .../java/misc/migration/v1_2/OtoChild.java | 42 --- .../java/misc/migration/v1_2/OtoMaster.java | 40 --- .../DbMigrationDropHistoryTest.java | 0 .../dbmigration/DbMigrationGenerateTest.java | 0 .../dbmigration/DbMigrationTest.java | 2 +- .../MysqlGenerateMigrationTest.java | 0 .../misc/migration/mysql_v1_0/EBasic.java | 0 .../misc/migration/mysql_v1_1/EBasic.java | 0 .../migrationtest-history/1.0__initial.sql | 17 + .../1.2__dropsFor_1.1.sql | 10 + .../R__multi_comments.sql | 3 + .../migrationtest-history/R__order_views.sql | 7 + .../model/1.0__initial.model.xml | 8 + .../migrationtest-history/model/1.1.model.xml | 6 + .../model/1.2__dropsFor_1.1.model.xml | 6 + .../dbmigration/clickhouse/1.0__initial.sql | 134 +++++++ .../dbmigration/clickhouse/1.1.sql | 76 ++++ .../clickhouse/1.2__dropsFor_1.1.sql | 13 + .../dbmigration/clickhouse/1.3.sql | 48 +++ .../clickhouse/1.4__dropsFor_1.3.sql | 33 ++ .../clickhouse/idx_clickhouse.migrations | 6 + .../dbmigration/cockroach/1.0__initial.sql | 174 ++++++++++ .../dbmigration/cockroach/1.1.sql | 113 ++++++ .../cockroach/1.2__dropsFor_1.1.sql | 16 + .../dbmigration/cockroach/1.3.sql | 68 ++++ .../cockroach/1.4__dropsFor_1.3.sql | 38 ++ .../dbmigration/cockroach/R__order_views.sql | 7 + .../cockroach/idx_cockroach.migrations | 7 + .../dbmigration/db2/1.0__initial.sql | 174 ++++++++++ .../migrationtest/dbmigration/db2/1.1.sql | 110 ++++++ .../dbmigration/db2/1.2__dropsFor_1.1.sql | 14 + .../migrationtest/dbmigration/db2/1.3.sql | 67 ++++ .../dbmigration/db2/1.4__dropsFor_1.3.sql | 34 ++ .../dbmigration/db2/R__order_views.sql | 7 + .../dbmigration/db2/idx_db2.migrations | 7 + .../dbmigration/generic/1.0__initial.sql | 174 ++++++++++ .../migrationtest/dbmigration/generic/1.1.sql | 110 ++++++ .../dbmigration/generic/1.2__dropsFor_1.1.sql | 13 + .../migrationtest/dbmigration/generic/1.3.sql | 67 ++++ .../dbmigration/generic/1.4__dropsFor_1.3.sql | 33 ++ .../generic/idx_generic.migrations | 6 + .../dbmigration/h2/1.0__initial.sql | 232 +++++++++++++ .../migrationtest/dbmigration/h2/1.1.sql | 152 ++++++++ .../dbmigration/h2/1.2__dropsFor_1.1.sql | 24 ++ .../migrationtest/dbmigration/h2/1.3.sql | 90 +++++ .../dbmigration/h2/1.4__dropsFor_1.3.sql | 58 ++++ .../dbmigration/h2/R__multi_comments.sql | 3 + .../dbmigration/h2/R__order_views.sql | 7 + .../dbmigration/h2/idx_h2.migrations | 8 + .../dbmigration/hana/1.0__initial.sql | 237 +++++++++++++ .../migrationtest/dbmigration/hana/1.1.sql | 181 ++++++++++ .../dbmigration/hana/1.2__dropsFor_1.1.sql | 19 + .../migrationtest/dbmigration/hana/1.3.sql | 141 ++++++++ .../dbmigration/hana/1.4__dropsFor_1.3.sql | 51 +++ .../dbmigration/hana/R__order_views_hana.sql | 7 + .../dbmigration/hana/idx_hana.migrations | 7 + .../dbmigration/hsqldb/1.0__initial.sql | 174 ++++++++++ .../migrationtest/dbmigration/hsqldb/1.1.sql | 110 ++++++ .../dbmigration/hsqldb/1.2__dropsFor_1.1.sql | 14 + .../migrationtest/dbmigration/hsqldb/1.3.sql | 67 ++++ .../dbmigration/hsqldb/1.4__dropsFor_1.3.sql | 34 ++ .../hsqldb/R__order_views_hsqldb.sql | 8 + .../dbmigration/hsqldb/idx_hsqldb.migrations | 7 + .../dbmigration/mariadb/1.0__initial.sql | 176 ++++++++++ .../migrationtest/dbmigration/mariadb/1.1.sql | 106 ++++++ .../dbmigration/mariadb/1.2__dropsFor_1.1.sql | 14 + .../migrationtest/dbmigration/mariadb/1.3.sql | 61 ++++ .../dbmigration/mariadb/1.4__dropsFor_1.3.sql | 35 ++ .../dbmigration/mariadb/R__order_views.sql | 7 + .../mariadb/idx_mariadb.migrations | 7 + .../dbmigration/model/1.0__initial.model.xml | 122 +++++++ .../dbmigration/model/1.1.model.xml | 104 ++++++ .../model/1.2__dropsFor_1.1.model.xml | 11 + .../dbmigration/model/1.3.model.xml | 73 ++++ .../model/1.4__dropsFor_1.3.model.xml | 23 ++ .../dbmigration/mysql/1.0__initial.sql | 269 ++++++++++++++ .../migrationtest/dbmigration/mysql/1.1.sql | 191 ++++++++++ .../dbmigration/mysql/1.2__dropsFor_1.1.sql | 34 ++ .../migrationtest/dbmigration/mysql/1.3.sql | 115 ++++++ .../dbmigration/mysql/1.4__dropsFor_1.3.sql | 78 +++++ .../dbmigration/mysql/R__order_views.sql | 7 + .../dbmigration/mysql/idx_mysql.migrations | 7 + .../dbmigration/nuodb/1.0__initial.sql | 292 ++++++++++++++++ .../migrationtest/dbmigration/nuodb/1.1.sql | 214 ++++++++++++ .../dbmigration/nuodb/1.2__dropsFor_1.1.sql | 37 ++ .../migrationtest/dbmigration/nuodb/1.3.sql | 127 +++++++ .../dbmigration/nuodb/1.4__dropsFor_1.3.sql | 85 +++++ .../dbmigration/nuodb/R__order_views.sql | 7 + .../dbmigration/nuodb/idx_nuodb.migrations | 7 + .../dbmigration/oracle/1.0__initial.sql | 196 +++++++++++ .../migrationtest/dbmigration/oracle/1.1.sql | 111 ++++++ .../dbmigration/oracle/1.2__dropsFor_1.1.sql | 14 + .../migrationtest/dbmigration/oracle/1.3.sql | 68 ++++ .../dbmigration/oracle/1.4__dropsFor_1.3.sql | 34 ++ .../oracle/R__oracle_only_views.sql | 4 + .../dbmigration/oracle/R__order_views.sql | 7 + .../dbmigration/oracle/idx_oracle.migrations | 8 + .../dbmigration/postgres/1.0__initial.sql | 307 ++++++++++++++++ .../dbmigration/postgres/1.1.sql | 237 +++++++++++++ .../postgres/1.2__dropsFor_1.1.sql | 40 +++ .../dbmigration/postgres/1.3.sql | 141 ++++++++ .../postgres/1.4__dropsFor_1.3.sql | 91 +++++ .../postgres/R__multi_comments.sql | 3 + .../dbmigration/postgres/R__order_views.sql | 7 + .../dbmigration/postgres/R__pg_indexes.sql | 4 + .../postgres/idx_postgres.migrations | 9 + .../dbmigration/sqlanywhere/1.0__initial.sql | 174 ++++++++++ .../dbmigration/sqlanywhere/1.1.sql | 110 ++++++ .../sqlanywhere/1.2__dropsFor_1.1.sql | 13 + .../dbmigration/sqlanywhere/1.3.sql | 67 ++++ .../sqlanywhere/1.4__dropsFor_1.3.sql | 33 ++ .../sqlanywhere/idx_sqlanywhere.migrations | 6 + .../dbmigration/sqlite/1.0__initial.sql | 168 +++++++++ .../migrationtest/dbmigration/sqlite/1.1.sql | 92 +++++ .../dbmigration/sqlite/1.2__dropsFor_1.1.sql | 13 + .../migrationtest/dbmigration/sqlite/1.3.sql | 62 ++++ .../dbmigration/sqlite/1.4__dropsFor_1.3.sql | 33 ++ .../sqlite/R__order_views_sqlite.sql | 8 + .../dbmigration/sqlite/idx_sqlite.migrations | 7 + .../dbmigration/sqlserver/1.0__initial.sql | 221 ++++++++++++ .../dbmigration/sqlserver/1.1.sql | 118 +++++++ .../sqlserver/1.2__dropsFor_1.1.sql | 14 + .../dbmigration/sqlserver/1.3.sql | 73 ++++ .../sqlserver/1.4__dropsFor_1.3.sql | 43 +++ .../dbmigration/sqlserver/I__create_procs.sql | 110 ++++++ .../sqlserver/R__order_views_mssql.sql | 10 + .../sqlserver/idx_sqlserver.migrations | 8 + .../dbmigration/yugabyte/1.0__initial.sql | 327 ++++++++++++++++++ .../dbmigration/yugabyte/1.1.sql | 235 +++++++++++++ .../yugabyte/1.2__dropsFor_1.1.sql | 40 +++ .../dbmigration/yugabyte/1.3.sql | 138 ++++++++ .../yugabyte/1.4__dropsFor_1.3.sql | 91 +++++ .../dbmigration/yugabyte/R__order_views.sql | 7 + .../yugabyte/idx_yugabyte.migrations | 7 + 210 files changed, 8956 insertions(+), 2590 deletions(-) delete mode 100644 ebean-ddl-generator/src/test/java/io/localtest/PlatformCondition.java delete mode 100644 ebean-ddl-generator/src/test/java/io/localtest/annotation/ForPlatform.java delete mode 100644 ebean-ddl-generator/src/test/java/io/localtest/annotation/IgnorePlatform.java delete mode 100644 ebean-ddl-generator/src/test/java/misc/migration/history/v1_0/EHistory7.java delete mode 100644 ebean-ddl-generator/src/test/java/misc/migration/history/v1_1/EHistory7.java delete mode 100644 ebean-ddl-generator/src/test/java/misc/migration/v1_0/CKeyAssoc.java delete mode 100644 ebean-ddl-generator/src/test/java/misc/migration/v1_0/CKeyDetail.java delete mode 100644 ebean-ddl-generator/src/test/java/misc/migration/v1_0/CKeyParent.java delete mode 100644 ebean-ddl-generator/src/test/java/misc/migration/v1_0/CKeyParentId.java delete mode 100644 ebean-ddl-generator/src/test/java/misc/migration/v1_0/DfkCascade.java delete mode 100644 ebean-ddl-generator/src/test/java/misc/migration/v1_0/DfkCascadeOne.java delete mode 100644 ebean-ddl-generator/src/test/java/misc/migration/v1_0/DfkNone.java delete mode 100644 ebean-ddl-generator/src/test/java/misc/migration/v1_0/DfkNoneViaJoin.java delete mode 100644 ebean-ddl-generator/src/test/java/misc/migration/v1_0/DfkOne.java delete mode 100644 ebean-ddl-generator/src/test/java/misc/migration/v1_0/DfkSetNull.java delete mode 100644 ebean-ddl-generator/src/test/java/misc/migration/v1_0/EBasic.java delete mode 100644 ebean-ddl-generator/src/test/java/misc/migration/v1_0/EEnum.java delete mode 100644 ebean-ddl-generator/src/test/java/misc/migration/v1_0/EHistory.java delete mode 100644 ebean-ddl-generator/src/test/java/misc/migration/v1_0/EHistory2.java delete mode 100644 ebean-ddl-generator/src/test/java/misc/migration/v1_0/EHistory3.java delete mode 100644 ebean-ddl-generator/src/test/java/misc/migration/v1_0/EHistory4.java delete mode 100644 ebean-ddl-generator/src/test/java/misc/migration/v1_0/EHistory5.java delete mode 100644 ebean-ddl-generator/src/test/java/misc/migration/v1_0/EHistory6.java delete mode 100644 ebean-ddl-generator/src/test/java/misc/migration/v1_0/ERef.java delete mode 100644 ebean-ddl-generator/src/test/java/misc/migration/v1_0/ESoftdelete.java delete mode 100644 ebean-ddl-generator/src/test/java/misc/migration/v1_0/MtmChild.java delete mode 100644 ebean-ddl-generator/src/test/java/misc/migration/v1_0/MtmMaster.java delete mode 100644 ebean-ddl-generator/src/test/java/misc/migration/v1_0/OtoChild.java delete mode 100644 ebean-ddl-generator/src/test/java/misc/migration/v1_0/OtoMaster.java delete mode 100644 ebean-ddl-generator/src/test/java/misc/migration/v1_1/CKeyAssoc.java delete mode 100644 ebean-ddl-generator/src/test/java/misc/migration/v1_1/CKeyDetail.java delete mode 100644 ebean-ddl-generator/src/test/java/misc/migration/v1_1/CKeyParent.java delete mode 100644 ebean-ddl-generator/src/test/java/misc/migration/v1_1/CKeyParentId.java delete mode 100644 ebean-ddl-generator/src/test/java/misc/migration/v1_1/DfkCascade.java delete mode 100644 ebean-ddl-generator/src/test/java/misc/migration/v1_1/DfkCascadeOne.java delete mode 100644 ebean-ddl-generator/src/test/java/misc/migration/v1_1/DfkNone.java delete mode 100644 ebean-ddl-generator/src/test/java/misc/migration/v1_1/DfkNoneViaJoin.java delete mode 100644 ebean-ddl-generator/src/test/java/misc/migration/v1_1/DfkOne.java delete mode 100644 ebean-ddl-generator/src/test/java/misc/migration/v1_1/DfkSetNull.java delete mode 100644 ebean-ddl-generator/src/test/java/misc/migration/v1_1/EBasic.java delete mode 100644 ebean-ddl-generator/src/test/java/misc/migration/v1_1/EEnum.java delete mode 100644 ebean-ddl-generator/src/test/java/misc/migration/v1_1/EHistory.java delete mode 100644 ebean-ddl-generator/src/test/java/misc/migration/v1_1/EHistory2.java delete mode 100644 ebean-ddl-generator/src/test/java/misc/migration/v1_1/EHistory3.java delete mode 100644 ebean-ddl-generator/src/test/java/misc/migration/v1_1/EHistory4.java delete mode 100644 ebean-ddl-generator/src/test/java/misc/migration/v1_1/EHistory5.java delete mode 100644 ebean-ddl-generator/src/test/java/misc/migration/v1_1/EHistory6.java delete mode 100644 ebean-ddl-generator/src/test/java/misc/migration/v1_1/ESoftdelete.java delete mode 100644 ebean-ddl-generator/src/test/java/misc/migration/v1_1/EUser.java delete mode 100644 ebean-ddl-generator/src/test/java/misc/migration/v1_1/MtmChild.java delete mode 100644 ebean-ddl-generator/src/test/java/misc/migration/v1_1/MtmMaster.java delete mode 100644 ebean-ddl-generator/src/test/java/misc/migration/v1_1/OtoChild.java delete mode 100644 ebean-ddl-generator/src/test/java/misc/migration/v1_1/OtoMaster.java delete mode 100644 ebean-ddl-generator/src/test/java/misc/migration/v1_2/CKeyAssoc.java delete mode 100644 ebean-ddl-generator/src/test/java/misc/migration/v1_2/CKeyDetail.java delete mode 100644 ebean-ddl-generator/src/test/java/misc/migration/v1_2/CKeyParent.java delete mode 100644 ebean-ddl-generator/src/test/java/misc/migration/v1_2/CKeyParentId.java delete mode 100644 ebean-ddl-generator/src/test/java/misc/migration/v1_2/DfkCascade.java delete mode 100644 ebean-ddl-generator/src/test/java/misc/migration/v1_2/DfkCascadeOne.java delete mode 100644 ebean-ddl-generator/src/test/java/misc/migration/v1_2/DfkNone.java delete mode 100644 ebean-ddl-generator/src/test/java/misc/migration/v1_2/DfkNoneViaJoin.java delete mode 100644 ebean-ddl-generator/src/test/java/misc/migration/v1_2/DfkOne.java delete mode 100644 ebean-ddl-generator/src/test/java/misc/migration/v1_2/DfkSetNull.java delete mode 100644 ebean-ddl-generator/src/test/java/misc/migration/v1_2/EBasic.java delete mode 100644 ebean-ddl-generator/src/test/java/misc/migration/v1_2/EEnum.java delete mode 100644 ebean-ddl-generator/src/test/java/misc/migration/v1_2/EHistory.java delete mode 100644 ebean-ddl-generator/src/test/java/misc/migration/v1_2/EHistory2.java delete mode 100644 ebean-ddl-generator/src/test/java/misc/migration/v1_2/EHistory3.java delete mode 100644 ebean-ddl-generator/src/test/java/misc/migration/v1_2/EHistory4.java delete mode 100644 ebean-ddl-generator/src/test/java/misc/migration/v1_2/EHistory5.java delete mode 100644 ebean-ddl-generator/src/test/java/misc/migration/v1_2/EHistory6.java delete mode 100644 ebean-ddl-generator/src/test/java/misc/migration/v1_2/ERef.java delete mode 100644 ebean-ddl-generator/src/test/java/misc/migration/v1_2/ESoftdelete.java delete mode 100644 ebean-ddl-generator/src/test/java/misc/migration/v1_2/MtmChild.java delete mode 100644 ebean-ddl-generator/src/test/java/misc/migration/v1_2/MtmMaster.java delete mode 100644 ebean-ddl-generator/src/test/java/misc/migration/v1_2/OtoChild.java delete mode 100644 ebean-ddl-generator/src/test/java/misc/migration/v1_2/OtoMaster.java rename {ebean-ddl-generator => ebean-test}/src/test/java/io/ebeaninternal/dbmigration/DbMigrationDropHistoryTest.java (100%) rename {ebean-ddl-generator => ebean-test}/src/test/java/io/ebeaninternal/dbmigration/DbMigrationGenerateTest.java (100%) rename {ebean-ddl-generator => ebean-test}/src/test/java/io/ebeaninternal/dbmigration/DbMigrationTest.java (99%) rename {ebean-ddl-generator => ebean-test}/src/test/java/io/ebeaninternal/dbmigration/MysqlGenerateMigrationTest.java (100%) rename {ebean-ddl-generator => ebean-test}/src/test/java/misc/migration/mysql_v1_0/EBasic.java (100%) rename {ebean-ddl-generator => ebean-test}/src/test/java/misc/migration/mysql_v1_1/EBasic.java (100%) create mode 100644 ebean-test/src/test/resources/dbmigration/migrationtest-history/1.0__initial.sql create mode 100644 ebean-test/src/test/resources/dbmigration/migrationtest-history/1.2__dropsFor_1.1.sql create mode 100644 ebean-test/src/test/resources/dbmigration/migrationtest-history/R__multi_comments.sql create mode 100644 ebean-test/src/test/resources/dbmigration/migrationtest-history/R__order_views.sql create mode 100644 ebean-test/src/test/resources/dbmigration/migrationtest-history/model/1.0__initial.model.xml create mode 100644 ebean-test/src/test/resources/dbmigration/migrationtest-history/model/1.1.model.xml create mode 100644 ebean-test/src/test/resources/dbmigration/migrationtest-history/model/1.2__dropsFor_1.1.model.xml create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/clickhouse/1.0__initial.sql create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/clickhouse/1.1.sql create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/clickhouse/1.2__dropsFor_1.1.sql create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/clickhouse/1.3.sql create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/clickhouse/1.4__dropsFor_1.3.sql create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/clickhouse/idx_clickhouse.migrations create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/cockroach/1.0__initial.sql create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/cockroach/1.1.sql create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/cockroach/1.2__dropsFor_1.1.sql create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/cockroach/1.3.sql create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/cockroach/1.4__dropsFor_1.3.sql create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/cockroach/R__order_views.sql create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/cockroach/idx_cockroach.migrations create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/db2/1.0__initial.sql create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/db2/1.1.sql create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/db2/1.2__dropsFor_1.1.sql create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/db2/1.3.sql create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/db2/1.4__dropsFor_1.3.sql create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/db2/R__order_views.sql create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/db2/idx_db2.migrations create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/generic/1.0__initial.sql create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/generic/1.1.sql create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/generic/1.2__dropsFor_1.1.sql create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/generic/1.3.sql create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/generic/1.4__dropsFor_1.3.sql create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/generic/idx_generic.migrations create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/h2/1.0__initial.sql create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/h2/1.1.sql create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/h2/1.2__dropsFor_1.1.sql create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/h2/1.3.sql create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/h2/1.4__dropsFor_1.3.sql create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/h2/R__multi_comments.sql create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/h2/R__order_views.sql create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/h2/idx_h2.migrations create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/hana/1.0__initial.sql create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/hana/1.1.sql create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/hana/1.2__dropsFor_1.1.sql create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/hana/1.3.sql create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/hana/1.4__dropsFor_1.3.sql create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/hana/R__order_views_hana.sql create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/hana/idx_hana.migrations create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/hsqldb/1.0__initial.sql create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/hsqldb/1.1.sql create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/hsqldb/1.2__dropsFor_1.1.sql create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/hsqldb/1.3.sql create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/hsqldb/1.4__dropsFor_1.3.sql create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/hsqldb/R__order_views_hsqldb.sql create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/hsqldb/idx_hsqldb.migrations create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/mariadb/1.0__initial.sql create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/mariadb/1.1.sql create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/mariadb/1.2__dropsFor_1.1.sql create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/mariadb/1.3.sql create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/mariadb/1.4__dropsFor_1.3.sql create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/mariadb/R__order_views.sql create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/mariadb/idx_mariadb.migrations create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/model/1.0__initial.model.xml create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/model/1.1.model.xml create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/model/1.2__dropsFor_1.1.model.xml create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/model/1.3.model.xml create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/model/1.4__dropsFor_1.3.model.xml create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/mysql/1.0__initial.sql create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/mysql/1.1.sql create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/mysql/1.2__dropsFor_1.1.sql create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/mysql/1.3.sql create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/mysql/1.4__dropsFor_1.3.sql create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/mysql/R__order_views.sql create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/mysql/idx_mysql.migrations create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/nuodb/1.0__initial.sql create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/nuodb/1.1.sql create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/nuodb/1.2__dropsFor_1.1.sql create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/nuodb/1.3.sql create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/nuodb/1.4__dropsFor_1.3.sql create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/nuodb/R__order_views.sql create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/nuodb/idx_nuodb.migrations create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/oracle/1.0__initial.sql create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/oracle/1.1.sql create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/oracle/1.2__dropsFor_1.1.sql create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/oracle/1.3.sql create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/oracle/1.4__dropsFor_1.3.sql create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/oracle/R__oracle_only_views.sql create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/oracle/R__order_views.sql create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/oracle/idx_oracle.migrations create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/postgres/1.0__initial.sql create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/postgres/1.1.sql create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/postgres/1.2__dropsFor_1.1.sql create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/postgres/1.3.sql create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/postgres/1.4__dropsFor_1.3.sql create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/postgres/R__multi_comments.sql create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/postgres/R__order_views.sql create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/postgres/R__pg_indexes.sql create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/postgres/idx_postgres.migrations create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/sqlanywhere/1.0__initial.sql create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/sqlanywhere/1.1.sql create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/sqlanywhere/1.2__dropsFor_1.1.sql create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/sqlanywhere/1.3.sql create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/sqlanywhere/1.4__dropsFor_1.3.sql create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/sqlanywhere/idx_sqlanywhere.migrations create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/sqlite/1.0__initial.sql create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/sqlite/1.1.sql create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/sqlite/1.2__dropsFor_1.1.sql create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/sqlite/1.3.sql create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/sqlite/1.4__dropsFor_1.3.sql create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/sqlite/R__order_views_sqlite.sql create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/sqlite/idx_sqlite.migrations create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver/1.0__initial.sql create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver/1.1.sql create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver/1.2__dropsFor_1.1.sql create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver/1.3.sql create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver/1.4__dropsFor_1.3.sql create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver/I__create_procs.sql create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver/R__order_views_mssql.sql create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver/idx_sqlserver.migrations create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/yugabyte/1.0__initial.sql create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/yugabyte/1.1.sql create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/yugabyte/1.2__dropsFor_1.1.sql create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/yugabyte/1.3.sql create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/yugabyte/1.4__dropsFor_1.3.sql create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/yugabyte/R__order_views.sql create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/yugabyte/idx_yugabyte.migrations diff --git a/ebean-ddl-generator/src/test/java/io/localtest/BaseTestCase.java b/ebean-ddl-generator/src/test/java/io/localtest/BaseTestCase.java index f7634c0e0..c8cd4d400 100644 --- a/ebean-ddl-generator/src/test/java/io/localtest/BaseTestCase.java +++ b/ebean-ddl-generator/src/test/java/io/localtest/BaseTestCase.java @@ -13,7 +13,6 @@ import java.sql.Types; import static org.assertj.core.api.Assertions.assertThat; -@ExtendWith(PlatformCondition.class) public abstract class BaseTestCase { protected static Logger logger = LoggerFactory.getLogger(BaseTestCase.class); diff --git a/ebean-ddl-generator/src/test/java/io/localtest/PlatformCondition.java b/ebean-ddl-generator/src/test/java/io/localtest/PlatformCondition.java deleted file mode 100644 index a0ecf55c1..000000000 --- a/ebean-ddl-generator/src/test/java/io/localtest/PlatformCondition.java +++ /dev/null @@ -1,38 +0,0 @@ -package io.localtest; - -import io.ebean.DB; -import io.localtest.annotation.ForPlatform; -import io.ebean.annotation.Platform; -import org.junit.jupiter.api.extension.ConditionEvaluationResult; -import org.junit.jupiter.api.extension.ExecutionCondition; -import org.junit.jupiter.api.extension.ExtensionContext; - -import java.lang.reflect.AnnotatedElement; -import java.util.Optional; - -public class PlatformCondition implements ExecutionCondition { - - private static final ConditionEvaluationResult ENABLED = ConditionEvaluationResult.enabled("ForPlatform is not present"); - - @Override - public ConditionEvaluationResult evaluateExecutionCondition(ExtensionContext context) { - Optional element = context.getElement(); - if (element.isPresent()) { - final ForPlatform annotation = element.get().getAnnotation(ForPlatform.class); - if (annotation != null && !platformMath(annotation.value())) { - return ConditionEvaluationResult.disabled("@ForPlatform"); - } - } - return ENABLED; - } - - private boolean platformMath(Platform[] platforms) { - Platform basePlatform = DB.getDefault().platform().base(); - for (Platform platform : platforms) { - if (platform.equals(basePlatform)) { - return true; - } - } - return false; - } -} diff --git a/ebean-ddl-generator/src/test/java/io/localtest/annotation/ForPlatform.java b/ebean-ddl-generator/src/test/java/io/localtest/annotation/ForPlatform.java deleted file mode 100644 index 914302361..000000000 --- a/ebean-ddl-generator/src/test/java/io/localtest/annotation/ForPlatform.java +++ /dev/null @@ -1,18 +0,0 @@ -package io.localtest.annotation; - -import io.ebean.annotation.Platform; - -import java.lang.annotation.ElementType; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import java.lang.annotation.Target; - -/** - * Annotation to run a test for a certain platform. - * @author Roland Praml, FOCONIS AG - */ -@Target(ElementType.METHOD ) -@Retention(RetentionPolicy.RUNTIME) -public @interface ForPlatform { - Platform[] value(); -} diff --git a/ebean-ddl-generator/src/test/java/io/localtest/annotation/IgnorePlatform.java b/ebean-ddl-generator/src/test/java/io/localtest/annotation/IgnorePlatform.java deleted file mode 100644 index a48808434..000000000 --- a/ebean-ddl-generator/src/test/java/io/localtest/annotation/IgnorePlatform.java +++ /dev/null @@ -1,18 +0,0 @@ -package io.localtest.annotation; - -import io.ebean.annotation.Platform; - -import java.lang.annotation.ElementType; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import java.lang.annotation.Target; - -/** - * Annotation to ignore a test for a certain platform. - * @author Roland Praml, FOCONIS AG - */ -@Target(ElementType.METHOD ) -@Retention(RetentionPolicy.RUNTIME) -public @interface IgnorePlatform { - Platform[] value(); -} diff --git a/ebean-ddl-generator/src/test/java/misc/migration/history/v1_0/EHistory7.java b/ebean-ddl-generator/src/test/java/misc/migration/history/v1_0/EHistory7.java deleted file mode 100644 index 28ca8c5de..000000000 --- a/ebean-ddl-generator/src/test/java/misc/migration/history/v1_0/EHistory7.java +++ /dev/null @@ -1,24 +0,0 @@ -package misc.migration.history.v1_0; - - -import javax.persistence.Entity; -import javax.persistence.Id; -import javax.persistence.Table; - -import io.ebean.annotation.History; - -/** - * detects a bug where dropHistoryTable is not applied correctly - * - * @author Roland Praml, FOCONIS AG - * - */ -@Entity -@Table(name = "migtest_e_history7") -@History -public class EHistory7 { - - @Id - Integer id; - -} diff --git a/ebean-ddl-generator/src/test/java/misc/migration/history/v1_1/EHistory7.java b/ebean-ddl-generator/src/test/java/misc/migration/history/v1_1/EHistory7.java deleted file mode 100644 index 7b658368c..000000000 --- a/ebean-ddl-generator/src/test/java/misc/migration/history/v1_1/EHistory7.java +++ /dev/null @@ -1,21 +0,0 @@ -package misc.migration.history.v1_1; - - -import javax.persistence.Entity; -import javax.persistence.Id; -import javax.persistence.Table; - -/** - * detects a bug where dropHistoryTable is not applied correctly - * - * @author Roland Praml, FOCONIS AG - * - */ -@Entity -@Table(name = "migtest_e_history7") -public class EHistory7 { - - @Id - Integer id; - -} diff --git a/ebean-ddl-generator/src/test/java/misc/migration/v1_0/CKeyAssoc.java b/ebean-ddl-generator/src/test/java/misc/migration/v1_0/CKeyAssoc.java deleted file mode 100644 index 75f0c7013..000000000 --- a/ebean-ddl-generator/src/test/java/misc/migration/v1_0/CKeyAssoc.java +++ /dev/null @@ -1,32 +0,0 @@ -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/ebean-ddl-generator/src/test/java/misc/migration/v1_0/CKeyDetail.java b/ebean-ddl-generator/src/test/java/misc/migration/v1_0/CKeyDetail.java deleted file mode 100644 index 2d8c7f956..000000000 --- a/ebean-ddl-generator/src/test/java/misc/migration/v1_0/CKeyDetail.java +++ /dev/null @@ -1,41 +0,0 @@ -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/ebean-ddl-generator/src/test/java/misc/migration/v1_0/CKeyParent.java b/ebean-ddl-generator/src/test/java/misc/migration/v1_0/CKeyParent.java deleted file mode 100644 index dacf6febe..000000000 --- a/ebean-ddl-generator/src/test/java/misc/migration/v1_0/CKeyParent.java +++ /dev/null @@ -1,44 +0,0 @@ -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/ebean-ddl-generator/src/test/java/misc/migration/v1_0/CKeyParentId.java b/ebean-ddl-generator/src/test/java/misc/migration/v1_0/CKeyParentId.java deleted file mode 100644 index d61d29e7d..000000000 --- a/ebean-ddl-generator/src/test/java/misc/migration/v1_0/CKeyParentId.java +++ /dev/null @@ -1,59 +0,0 @@ -package misc.migration.v1_0; - -import javax.persistence.Embeddable; -import javax.validation.constraints.Size; - -@Embeddable -public class CKeyParentId { - - 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/ebean-ddl-generator/src/test/java/misc/migration/v1_0/DfkCascade.java b/ebean-ddl-generator/src/test/java/misc/migration/v1_0/DfkCascade.java deleted file mode 100644 index f7b14f321..000000000 --- a/ebean-ddl-generator/src/test/java/misc/migration/v1_0/DfkCascade.java +++ /dev/null @@ -1,22 +0,0 @@ -package misc.migration.v1_0; - -import io.ebean.annotation.ConstraintMode; -import io.ebean.annotation.DbForeignKey; - -import javax.persistence.Entity; -import javax.persistence.Id; -import javax.persistence.ManyToOne; -import javax.persistence.Table; - -@Entity -@Table(name = "migtest_fk_cascade") -public class DfkCascade { - - @Id - long id; - - @ManyToOne - @DbForeignKey(onDelete = ConstraintMode.CASCADE) - DfkCascadeOne one; - -} diff --git a/ebean-ddl-generator/src/test/java/misc/migration/v1_0/DfkCascadeOne.java b/ebean-ddl-generator/src/test/java/misc/migration/v1_0/DfkCascadeOne.java deleted file mode 100644 index 1d57570bf..000000000 --- a/ebean-ddl-generator/src/test/java/misc/migration/v1_0/DfkCascadeOne.java +++ /dev/null @@ -1,21 +0,0 @@ -package misc.migration.v1_0; - -import javax.persistence.CascadeType; -import javax.persistence.Entity; -import javax.persistence.Id; -import javax.persistence.OneToMany; -import javax.persistence.Table; - -import java.util.List; - -@Entity -@Table(name = "migtest_fk_cascade_one") -public class DfkCascadeOne { - - @Id - long id; - - @OneToMany(mappedBy = "one", cascade = CascadeType.ALL) - List details; - -} diff --git a/ebean-ddl-generator/src/test/java/misc/migration/v1_0/DfkNone.java b/ebean-ddl-generator/src/test/java/misc/migration/v1_0/DfkNone.java deleted file mode 100644 index 1c44c06d6..000000000 --- a/ebean-ddl-generator/src/test/java/misc/migration/v1_0/DfkNone.java +++ /dev/null @@ -1,21 +0,0 @@ -package misc.migration.v1_0; - -import io.ebean.annotation.DbForeignKey; - -import javax.persistence.Entity; -import javax.persistence.Id; -import javax.persistence.ManyToOne; -import javax.persistence.Table; - - -@Entity -@Table(name = "migtest_fk_none") -public class DfkNone { - - @Id - long id; - - @ManyToOne - @DbForeignKey(noConstraint = true) - DfkOne one; -} diff --git a/ebean-ddl-generator/src/test/java/misc/migration/v1_0/DfkNoneViaJoin.java b/ebean-ddl-generator/src/test/java/misc/migration/v1_0/DfkNoneViaJoin.java deleted file mode 100644 index c8147fdcd..000000000 --- a/ebean-ddl-generator/src/test/java/misc/migration/v1_0/DfkNoneViaJoin.java +++ /dev/null @@ -1,22 +0,0 @@ -package misc.migration.v1_0; - -import javax.persistence.ConstraintMode; -import javax.persistence.Entity; -import javax.persistence.ForeignKey; -import javax.persistence.Id; -import javax.persistence.JoinColumn; -import javax.persistence.ManyToOne; -import javax.persistence.Table; - -@Entity -@Table(name = "migtest_fk_none_via_join") -public class DfkNoneViaJoin { - - @Id - long id; - - @ManyToOne - @JoinColumn(name = "one_id", foreignKey = @ForeignKey(ConstraintMode.NO_CONSTRAINT)) - DfkOne one; - -} diff --git a/ebean-ddl-generator/src/test/java/misc/migration/v1_0/DfkOne.java b/ebean-ddl-generator/src/test/java/misc/migration/v1_0/DfkOne.java deleted file mode 100644 index 28e2da229..000000000 --- a/ebean-ddl-generator/src/test/java/misc/migration/v1_0/DfkOne.java +++ /dev/null @@ -1,13 +0,0 @@ -package misc.migration.v1_0; - -import javax.persistence.Entity; -import javax.persistence.Id; -import javax.persistence.Table; - -@Entity -@Table(name = "migtest_fk_one") -public class DfkOne { - - @Id - long id; -} diff --git a/ebean-ddl-generator/src/test/java/misc/migration/v1_0/DfkSetNull.java b/ebean-ddl-generator/src/test/java/misc/migration/v1_0/DfkSetNull.java deleted file mode 100644 index 6c46d7529..000000000 --- a/ebean-ddl-generator/src/test/java/misc/migration/v1_0/DfkSetNull.java +++ /dev/null @@ -1,22 +0,0 @@ -package misc.migration.v1_0; - -import io.ebean.annotation.ConstraintMode; -import io.ebean.annotation.DbForeignKey; - -import javax.persistence.Entity; -import javax.persistence.Id; -import javax.persistence.ManyToOne; -import javax.persistence.Table; - -@Entity -@Table(name = "migtest_fk_set_null") -public class DfkSetNull { - - @Id - long id; - - @ManyToOne - @DbForeignKey(onDelete = ConstraintMode.SET_NULL) - DfkOne one; - -} diff --git a/ebean-ddl-generator/src/test/java/misc/migration/v1_0/EBasic.java b/ebean-ddl-generator/src/test/java/misc/migration/v1_0/EBasic.java deleted file mode 100644 index e1c16afd6..000000000 --- a/ebean-ddl-generator/src/test/java/misc/migration/v1_0/EBasic.java +++ /dev/null @@ -1,130 +0,0 @@ -package misc.migration.v1_0; - -import io.ebean.annotation.DbDefault; -import io.ebean.annotation.EnumValue; -import io.ebean.annotation.Index; -import io.ebean.annotation.NotNull; - -import javax.persistence.Entity; -import javax.persistence.Id; -import javax.persistence.ManyToOne; -import javax.persistence.Table; -import javax.validation.constraints.Size; - -import java.sql.Timestamp; - -@Entity -@Table(name = "migtest_e_basic") -public class EBasic { - - public enum Status { - @EnumValue("N") - NEW, - - @EnumValue("A") - ACTIVE, - - @EnumValue("I") - INACTIVE, - } - - @Id - Integer id; - - Status status; - - @DbDefault("N") - @NotNull - Status status2; - - @Size(max=127) - String name; - - @Size(max=127) - String description; - - Timestamp someDate; - - boolean old_boolean; - - Boolean old_boolean2; - - @ManyToOne - ERef eref; - - - // test add & remove indices - @Index - @Size(max=127) - String indextest1; - - @Index(unique = true) - @Size(max=127) - String indextest2; - - @Size(max=127) - String indextest3; - - @Size(max=127) - String indextest4; - - @Index(unique = false) - @Size(max=127) - String indextest5; - - @Index(unique = true) - @Size(max=127) - String indextest6; - - @NotNull - int user_id; - - public EBasic() { - - } - - public EBasic(String name) { - this.name = name; - } - - public Integer getId() { - return id; - } - - public void setId(Integer id) { - this.id = id; - } - - public Status getStatus() { - return status; - } - - public void setStatus(Status status) { - this.status = status; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getDescription() { - return description; - } - - public void setDescription(String description) { - this.description = description; - } - - public Timestamp getSomeDate() { - return someDate; - } - - public void setSomeDate(Timestamp someDate) { - this.someDate = someDate; - } - -} diff --git a/ebean-ddl-generator/src/test/java/misc/migration/v1_0/EEnum.java b/ebean-ddl-generator/src/test/java/misc/migration/v1_0/EEnum.java deleted file mode 100644 index f2db733e7..000000000 --- a/ebean-ddl-generator/src/test/java/misc/migration/v1_0/EEnum.java +++ /dev/null @@ -1,29 +0,0 @@ -package misc.migration.v1_0; - - -import javax.persistence.Entity; -import javax.persistence.Id; -import javax.persistence.Table; - -import io.ebean.annotation.EnumValue; - -@Entity -@Table(name = "migtest_e_enum") -public class EEnum { - - public enum Status { - @EnumValue("N") - NEW, - - @EnumValue("A") - ACTIVE, - - @EnumValue("I") - INACTIVE, - } - - @Id - Integer id; - - Status testStatus; -} diff --git a/ebean-ddl-generator/src/test/java/misc/migration/v1_0/EHistory.java b/ebean-ddl-generator/src/test/java/misc/migration/v1_0/EHistory.java deleted file mode 100644 index fe0bcdfe9..000000000 --- a/ebean-ddl-generator/src/test/java/misc/migration/v1_0/EHistory.java +++ /dev/null @@ -1,17 +0,0 @@ -package misc.migration.v1_0; - - -import javax.persistence.Entity; -import javax.persistence.Id; -import javax.persistence.Table; - -@Entity -@Table(name = "migtest_e_history") -public class EHistory { - - @Id - Integer id; - - - String testString; -} diff --git a/ebean-ddl-generator/src/test/java/misc/migration/v1_0/EHistory2.java b/ebean-ddl-generator/src/test/java/misc/migration/v1_0/EHistory2.java deleted file mode 100644 index d8c76df75..000000000 --- a/ebean-ddl-generator/src/test/java/misc/migration/v1_0/EHistory2.java +++ /dev/null @@ -1,26 +0,0 @@ -package misc.migration.v1_0; - - -import javax.persistence.Entity; -import javax.persistence.Id; -import javax.persistence.Table; - -import io.ebean.annotation.History; -import io.ebean.annotation.HistoryExclude; - -@Entity -@Table(name = "migtest_e_history2") -@History -public class EHistory2 { - - @Id - Integer id; - - - String testString; - - @HistoryExclude - String obsoleteString1; - - String obsoleteString2; -} diff --git a/ebean-ddl-generator/src/test/java/misc/migration/v1_0/EHistory3.java b/ebean-ddl-generator/src/test/java/misc/migration/v1_0/EHistory3.java deleted file mode 100644 index b5e41db5d..000000000 --- a/ebean-ddl-generator/src/test/java/misc/migration/v1_0/EHistory3.java +++ /dev/null @@ -1,21 +0,0 @@ -package misc.migration.v1_0; - - -import javax.persistence.Entity; -import javax.persistence.Id; -import javax.persistence.Table; - -import io.ebean.annotation.History; - - -@Entity -@Table(name = "migtest_e_history3") -@History -public class EHistory3 { - - @Id - Integer id; - - String testString; - -} diff --git a/ebean-ddl-generator/src/test/java/misc/migration/v1_0/EHistory4.java b/ebean-ddl-generator/src/test/java/misc/migration/v1_0/EHistory4.java deleted file mode 100644 index aba167995..000000000 --- a/ebean-ddl-generator/src/test/java/misc/migration/v1_0/EHistory4.java +++ /dev/null @@ -1,21 +0,0 @@ -package misc.migration.v1_0; - - -import javax.persistence.Entity; -import javax.persistence.Id; -import javax.persistence.Table; - -import io.ebean.annotation.History; - - -@Entity -@Table(name = "migtest_e_history4") -@History -public class EHistory4 { - - @Id - Integer id; - - Integer testNumber; - -} diff --git a/ebean-ddl-generator/src/test/java/misc/migration/v1_0/EHistory5.java b/ebean-ddl-generator/src/test/java/misc/migration/v1_0/EHistory5.java deleted file mode 100644 index 133a00c3d..000000000 --- a/ebean-ddl-generator/src/test/java/misc/migration/v1_0/EHistory5.java +++ /dev/null @@ -1,21 +0,0 @@ -package misc.migration.v1_0; - - -import javax.persistence.Entity; -import javax.persistence.Id; -import javax.persistence.Table; - -import io.ebean.annotation.History; - - -@Entity -@Table(name = "migtest_e_history5") -@History -public class EHistory5 { - - @Id - Integer id; - - Integer testNumber; - -} diff --git a/ebean-ddl-generator/src/test/java/misc/migration/v1_0/EHistory6.java b/ebean-ddl-generator/src/test/java/misc/migration/v1_0/EHistory6.java deleted file mode 100644 index c95eb7796..000000000 --- a/ebean-ddl-generator/src/test/java/misc/migration/v1_0/EHistory6.java +++ /dev/null @@ -1,24 +0,0 @@ -package misc.migration.v1_0; - - -import javax.persistence.Entity; -import javax.persistence.Id; -import javax.persistence.Table; - -import io.ebean.annotation.History; -import io.ebean.annotation.NotNull; - - -@Entity -@Table(name = "migtest_e_history6") -@History -public class EHistory6 { - - @Id - Integer id; - - Integer testNumber1; - - @NotNull - Integer testNumber2; -} diff --git a/ebean-ddl-generator/src/test/java/misc/migration/v1_0/ERef.java b/ebean-ddl-generator/src/test/java/misc/migration/v1_0/ERef.java deleted file mode 100644 index f4cfdf875..000000000 --- a/ebean-ddl-generator/src/test/java/misc/migration/v1_0/ERef.java +++ /dev/null @@ -1,28 +0,0 @@ -package misc.migration.v1_0; - -import java.util.List; - -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") -public class ERef { - - @Id - Integer id; - - @OneToMany - List basics; - - @NotNull - @Index(unique = true) - @Size(max=127) - String name; -} diff --git a/ebean-ddl-generator/src/test/java/misc/migration/v1_0/ESoftdelete.java b/ebean-ddl-generator/src/test/java/misc/migration/v1_0/ESoftdelete.java deleted file mode 100644 index 58d9a0af0..000000000 --- a/ebean-ddl-generator/src/test/java/misc/migration/v1_0/ESoftdelete.java +++ /dev/null @@ -1,17 +0,0 @@ -package misc.migration.v1_0; - - -import javax.persistence.Entity; -import javax.persistence.Id; -import javax.persistence.Table; - -@Entity -@Table(name = "migtest_e_softdelete") -public class ESoftdelete { - - @Id - Integer id; - - - String testString; -} diff --git a/ebean-ddl-generator/src/test/java/misc/migration/v1_0/MtmChild.java b/ebean-ddl-generator/src/test/java/misc/migration/v1_0/MtmChild.java deleted file mode 100644 index c0f9f5918..000000000 --- a/ebean-ddl-generator/src/test/java/misc/migration/v1_0/MtmChild.java +++ /dev/null @@ -1,34 +0,0 @@ -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/ebean-ddl-generator/src/test/java/misc/migration/v1_0/MtmMaster.java b/ebean-ddl-generator/src/test/java/misc/migration/v1_0/MtmMaster.java deleted file mode 100644 index 87b23387c..000000000 --- a/ebean-ddl-generator/src/test/java/misc/migration/v1_0/MtmMaster.java +++ /dev/null @@ -1,32 +0,0 @@ -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/ebean-ddl-generator/src/test/java/misc/migration/v1_0/OtoChild.java b/ebean-ddl-generator/src/test/java/misc/migration/v1_0/OtoChild.java deleted file mode 100644 index 23bc8f569..000000000 --- a/ebean-ddl-generator/src/test/java/misc/migration/v1_0/OtoChild.java +++ /dev/null @@ -1,39 +0,0 @@ -package misc.migration.v1_0; - -import io.ebean.annotation.Index; - -import javax.persistence.Entity; -import javax.persistence.Id; -import javax.persistence.Table; - -import static io.ebean.annotation.Platform.POSTGRES; - -@Index(platforms = POSTGRES, name = "idxd_migtest_0", definition = "create index idxd_migtest_0 on migtest_oto_child using hash (upper(name)) where upper(name) = 'JIM'") -@Index(platforms = POSTGRES, columnNames = {"lower(name)","id"}, concurrent = true) -@Index(platforms = POSTGRES, columnNames = "lower(name)") -@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/ebean-ddl-generator/src/test/java/misc/migration/v1_0/OtoMaster.java b/ebean-ddl-generator/src/test/java/misc/migration/v1_0/OtoMaster.java deleted file mode 100644 index 770c3e754..000000000 --- a/ebean-ddl-generator/src/test/java/misc/migration/v1_0/OtoMaster.java +++ /dev/null @@ -1,32 +0,0 @@ -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/ebean-ddl-generator/src/test/java/misc/migration/v1_1/CKeyAssoc.java b/ebean-ddl-generator/src/test/java/misc/migration/v1_1/CKeyAssoc.java deleted file mode 100644 index 847ddc32c..000000000 --- a/ebean-ddl-generator/src/test/java/misc/migration/v1_1/CKeyAssoc.java +++ /dev/null @@ -1,32 +0,0 @@ -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/ebean-ddl-generator/src/test/java/misc/migration/v1_1/CKeyDetail.java b/ebean-ddl-generator/src/test/java/misc/migration/v1_1/CKeyDetail.java deleted file mode 100644 index 2b8655c0b..000000000 --- a/ebean-ddl-generator/src/test/java/misc/migration/v1_1/CKeyDetail.java +++ /dev/null @@ -1,57 +0,0 @@ -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/ebean-ddl-generator/src/test/java/misc/migration/v1_1/CKeyParent.java b/ebean-ddl-generator/src/test/java/misc/migration/v1_1/CKeyParent.java deleted file mode 100644 index e331399ed..000000000 --- a/ebean-ddl-generator/src/test/java/misc/migration/v1_1/CKeyParent.java +++ /dev/null @@ -1,78 +0,0 @@ -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/ebean-ddl-generator/src/test/java/misc/migration/v1_1/CKeyParentId.java b/ebean-ddl-generator/src/test/java/misc/migration/v1_1/CKeyParentId.java deleted file mode 100644 index 4d2723166..000000000 --- a/ebean-ddl-generator/src/test/java/misc/migration/v1_1/CKeyParentId.java +++ /dev/null @@ -1,59 +0,0 @@ -package misc.migration.v1_1; - -import javax.persistence.Embeddable; -import javax.validation.constraints.Size; - -@Embeddable -public class CKeyParentId { - - 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/ebean-ddl-generator/src/test/java/misc/migration/v1_1/DfkCascade.java b/ebean-ddl-generator/src/test/java/misc/migration/v1_1/DfkCascade.java deleted file mode 100644 index 22f1c88f8..000000000 --- a/ebean-ddl-generator/src/test/java/misc/migration/v1_1/DfkCascade.java +++ /dev/null @@ -1,22 +0,0 @@ -package misc.migration.v1_1; - -import io.ebean.annotation.ConstraintMode; -import io.ebean.annotation.DbForeignKey; - -import javax.persistence.Entity; -import javax.persistence.Id; -import javax.persistence.ManyToOne; -import javax.persistence.Table; - -@Entity -@Table(name = "migtest_fk_cascade") -public class DfkCascade { - - @Id - long id; - - @ManyToOne - @DbForeignKey(onDelete = ConstraintMode.RESTRICT) - DfkCascadeOne one; - -} diff --git a/ebean-ddl-generator/src/test/java/misc/migration/v1_1/DfkCascadeOne.java b/ebean-ddl-generator/src/test/java/misc/migration/v1_1/DfkCascadeOne.java deleted file mode 100644 index 07a523039..000000000 --- a/ebean-ddl-generator/src/test/java/misc/migration/v1_1/DfkCascadeOne.java +++ /dev/null @@ -1,21 +0,0 @@ -package misc.migration.v1_1; - -import javax.persistence.CascadeType; -import javax.persistence.Entity; -import javax.persistence.Id; -import javax.persistence.OneToMany; -import javax.persistence.Table; - -import java.util.List; - -@Entity -@Table(name = "migtest_fk_cascade_one") -public class DfkCascadeOne { - - @Id - long id; - - @OneToMany(mappedBy = "one", cascade = CascadeType.ALL) - List details; - -} diff --git a/ebean-ddl-generator/src/test/java/misc/migration/v1_1/DfkNone.java b/ebean-ddl-generator/src/test/java/misc/migration/v1_1/DfkNone.java deleted file mode 100644 index 16129121f..000000000 --- a/ebean-ddl-generator/src/test/java/misc/migration/v1_1/DfkNone.java +++ /dev/null @@ -1,21 +0,0 @@ -package misc.migration.v1_1; - -import io.ebean.annotation.DbForeignKey; - -import javax.persistence.Entity; -import javax.persistence.Id; -import javax.persistence.ManyToOne; -import javax.persistence.Table; - - -@Entity -@Table(name = "migtest_fk_none") -public class DfkNone { - - @Id - long id; - - @ManyToOne - @DbForeignKey(noConstraint = false) - DfkOne one; -} diff --git a/ebean-ddl-generator/src/test/java/misc/migration/v1_1/DfkNoneViaJoin.java b/ebean-ddl-generator/src/test/java/misc/migration/v1_1/DfkNoneViaJoin.java deleted file mode 100644 index dae77dd67..000000000 --- a/ebean-ddl-generator/src/test/java/misc/migration/v1_1/DfkNoneViaJoin.java +++ /dev/null @@ -1,22 +0,0 @@ -package misc.migration.v1_1; - -import javax.persistence.ConstraintMode; -import javax.persistence.Entity; -import javax.persistence.ForeignKey; -import javax.persistence.Id; -import javax.persistence.JoinColumn; -import javax.persistence.ManyToOne; -import javax.persistence.Table; - -@Entity -@Table(name = "migtest_fk_none_via_join") -public class DfkNoneViaJoin { - - @Id - long id; - - @ManyToOne - @JoinColumn(name = "one_id", foreignKey = @ForeignKey(ConstraintMode.CONSTRAINT)) - DfkOne one; - -} diff --git a/ebean-ddl-generator/src/test/java/misc/migration/v1_1/DfkOne.java b/ebean-ddl-generator/src/test/java/misc/migration/v1_1/DfkOne.java deleted file mode 100644 index eb04c6d64..000000000 --- a/ebean-ddl-generator/src/test/java/misc/migration/v1_1/DfkOne.java +++ /dev/null @@ -1,13 +0,0 @@ -package misc.migration.v1_1; - -import javax.persistence.Entity; -import javax.persistence.Id; -import javax.persistence.Table; - -@Entity -@Table(name = "migtest_fk_one") -public class DfkOne { - - @Id - long id; -} diff --git a/ebean-ddl-generator/src/test/java/misc/migration/v1_1/DfkSetNull.java b/ebean-ddl-generator/src/test/java/misc/migration/v1_1/DfkSetNull.java deleted file mode 100644 index be199b097..000000000 --- a/ebean-ddl-generator/src/test/java/misc/migration/v1_1/DfkSetNull.java +++ /dev/null @@ -1,22 +0,0 @@ -package misc.migration.v1_1; - -import io.ebean.annotation.ConstraintMode; -import io.ebean.annotation.DbForeignKey; - -import javax.persistence.Entity; -import javax.persistence.Id; -import javax.persistence.ManyToOne; -import javax.persistence.Table; - -@Entity -@Table(name = "migtest_fk_set_null") -public class DfkSetNull { - - @Id - long id; - - @ManyToOne - @DbForeignKey(onDelete = ConstraintMode.RESTRICT) - DfkOne one; - -} diff --git a/ebean-ddl-generator/src/test/java/misc/migration/v1_1/EBasic.java b/ebean-ddl-generator/src/test/java/misc/migration/v1_1/EBasic.java deleted file mode 100644 index 9e5b1742d..000000000 --- a/ebean-ddl-generator/src/test/java/misc/migration/v1_1/EBasic.java +++ /dev/null @@ -1,175 +0,0 @@ -package misc.migration.v1_1; - -import io.ebean.annotation.DbDefault; -import io.ebean.annotation.DbMigration; -import io.ebean.annotation.EnumValue; -import io.ebean.annotation.Index; -import io.ebean.annotation.NotNull; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.Id; -import javax.persistence.ManyToOne; -import javax.persistence.Table; -import javax.validation.constraints.Size; - -import java.sql.Timestamp; - -@Entity -@Table(name = "migtest_e_basic") -@Index(columnNames = { "status" , "indextest1"}, unique = true) -public class EBasic { - - public enum Status { - @EnumValue("N") - NEW, - - @EnumValue("A") - ACTIVE, - - @EnumValue("I") - INACTIVE, - - @EnumValue("?") - DONT_KNOW, - } - - public enum Progress { - @EnumValue("0") - START, - - @EnumValue("1") - RUN, - - @EnumValue("2") - END - } - - @Id - Integer id; - - @NotNull - @DbDefault("A") - Status status; - - @Size(max=127) - String status2; - - @Index(unique = true) - @Size(max=127) - String name; - - - @DbMigration(preAlter = "-- rename all collisions") - @Column(unique = true) - @Size(max=127) - String description; - - //@NotNull - //@DbDefault("2000-01-01T00:00:00") //- date time literals do not work for each platform yet - //@DbDefault("now") //- now does not work for mariaDb - // MariaDb requires: ALTER TABLE `migtest_e_basic` CHANGE `some_date` `some_date` DATETIME(6) NULL DEFAULT CURRENT_TIMESTAMP; - Timestamp someDate; - - @NotNull - @DbDefault("foo'bar") - String newStringField; - - @NotNull - @DbDefault("true") - @DbMigration(postAdd = "update ${table} set ${column} = old_boolean") - Boolean newBooleanField; - - @NotNull - @DbDefault("true") - boolean newBooleanField2; - - @Size(max=127) - String indextest1; - - @Size(max=127) - String indextest2; - - @Index - @Size(max=127) - String indextest3; - - @Index(unique = true) - @Size(max=127) - String indextest4; - - @Index(unique = true) - @Size(max=127) - String indextest5; - - @Index(unique = false) - @Size(max=127) - String indextest6; - - @NotNull - @DbDefault("0") - Progress progress; - - @DbDefault("42") - int newInteger; - - @ManyToOne - @DbMigration(preAlter= "insert into migtest_e_user (id) select distinct user_id from migtest_e_basic") // ensure all users exist - EUser user; - - public EBasic() { - - } - - public EBasic(String name) { - this.name = name; - } - - public Integer getId() { - return id; - } - - public void setId(Integer id) { - this.id = id; - } - - public Status getStatus() { - return status; - } - - public void setStatus(Status status) { - this.status = status; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getDescription() { - return description; - } - - public void setDescription(String description) { - this.description = description; - } - - public Timestamp getSomeDate() { - return someDate; - } - - public void setSomeDate(Timestamp someDate) { - this.someDate = someDate; - } - - public String getNewStringField() { - return newStringField; - } - - public void setNewStringField(String newStringField) { - this.newStringField = newStringField; - } -} diff --git a/ebean-ddl-generator/src/test/java/misc/migration/v1_1/EEnum.java b/ebean-ddl-generator/src/test/java/misc/migration/v1_1/EEnum.java deleted file mode 100644 index 577ede01d..000000000 --- a/ebean-ddl-generator/src/test/java/misc/migration/v1_1/EEnum.java +++ /dev/null @@ -1,18 +0,0 @@ -package misc.migration.v1_1; - - -import javax.persistence.Entity; -import javax.persistence.Id; -import javax.persistence.Table; -import javax.validation.constraints.Size; - -@Entity -@Table(name = "migtest_e_enum") -public class EEnum { - - @Id - Integer id; - - @Size (max = 1) - String testStatus; // change to String from Enum Status -} diff --git a/ebean-ddl-generator/src/test/java/misc/migration/v1_1/EHistory.java b/ebean-ddl-generator/src/test/java/misc/migration/v1_1/EHistory.java deleted file mode 100644 index 9cad6715c..000000000 --- a/ebean-ddl-generator/src/test/java/misc/migration/v1_1/EHistory.java +++ /dev/null @@ -1,26 +0,0 @@ -package misc.migration.v1_1; - - -import javax.persistence.Entity; -import javax.persistence.Id; -import javax.persistence.Table; - -import io.ebean.annotation.Platform; -import io.ebean.annotation.DbComment; -import io.ebean.annotation.DbMigration; -import io.ebean.annotation.History; - -@Entity -@Table(name = "migtest_e_history") -@History -@DbComment("We have history now") -public class EHistory { - - @Id - Integer id; - - @DbComment("Column altered to long now") - @DbMigration(platforms = Platform.POSTGRES, - preAlter = "alter table ${table} alter column ${column} TYPE bigint USING (${column}::integer)") - Long testString; -} diff --git a/ebean-ddl-generator/src/test/java/misc/migration/v1_1/EHistory2.java b/ebean-ddl-generator/src/test/java/misc/migration/v1_1/EHistory2.java deleted file mode 100644 index 7b05d9fe7..000000000 --- a/ebean-ddl-generator/src/test/java/misc/migration/v1_1/EHistory2.java +++ /dev/null @@ -1,35 +0,0 @@ -package misc.migration.v1_1; - - -import javax.persistence.Entity; -import javax.persistence.Id; -import javax.persistence.Table; -import javax.validation.constraints.Size; - -import io.ebean.annotation.DbDefault; -import io.ebean.annotation.History; -import io.ebean.annotation.HistoryExclude; -import io.ebean.annotation.NotNull; - -@Entity -@Table(name = "migtest_e_history2") -@History -public class EHistory2 { - - @Id - Integer id; - - @NotNull - @DbDefault("unknown") - String testString; - - @HistoryExclude - String testString2; - - @NotNull - @DbDefault("unknown") - String testString3; - - @Size(max = 20) - String newColumn; -} diff --git a/ebean-ddl-generator/src/test/java/misc/migration/v1_1/EHistory3.java b/ebean-ddl-generator/src/test/java/misc/migration/v1_1/EHistory3.java deleted file mode 100644 index a3756572a..000000000 --- a/ebean-ddl-generator/src/test/java/misc/migration/v1_1/EHistory3.java +++ /dev/null @@ -1,23 +0,0 @@ -package misc.migration.v1_1; - - -import javax.persistence.Entity; -import javax.persistence.Id; -import javax.persistence.Table; - -import io.ebean.annotation.History; -import io.ebean.annotation.HistoryExclude; - - -@Entity -@Table(name = "migtest_e_history3") -@History -public class EHistory3 { - - @Id - Integer id; - - @HistoryExclude - String testString; - -} diff --git a/ebean-ddl-generator/src/test/java/misc/migration/v1_1/EHistory4.java b/ebean-ddl-generator/src/test/java/misc/migration/v1_1/EHistory4.java deleted file mode 100644 index ba5628390..000000000 --- a/ebean-ddl-generator/src/test/java/misc/migration/v1_1/EHistory4.java +++ /dev/null @@ -1,21 +0,0 @@ -package misc.migration.v1_1; - - -import javax.persistence.Entity; -import javax.persistence.Id; -import javax.persistence.Table; - -import io.ebean.annotation.History; - - -@Entity -@Table(name = "migtest_e_history4") -@History -public class EHistory4 { - - @Id - Integer id; - - Long testNumber; - -} diff --git a/ebean-ddl-generator/src/test/java/misc/migration/v1_1/EHistory5.java b/ebean-ddl-generator/src/test/java/misc/migration/v1_1/EHistory5.java deleted file mode 100644 index 9bb9aba0b..000000000 --- a/ebean-ddl-generator/src/test/java/misc/migration/v1_1/EHistory5.java +++ /dev/null @@ -1,27 +0,0 @@ -package misc.migration.v1_1; - - -import javax.persistence.Entity; -import javax.persistence.Id; -import javax.persistence.Table; - -import io.ebean.annotation.DbDefault; -import io.ebean.annotation.History; -import io.ebean.annotation.NotNull; - - -@Entity -@Table(name = "migtest_e_history5") -@History -public class EHistory5 { - - @Id - Integer id; - - Integer testNumber; - - @NotNull - @DbDefault("false") - Boolean testBoolean; - -} diff --git a/ebean-ddl-generator/src/test/java/misc/migration/v1_1/EHistory6.java b/ebean-ddl-generator/src/test/java/misc/migration/v1_1/EHistory6.java deleted file mode 100644 index c05f51a15..000000000 --- a/ebean-ddl-generator/src/test/java/misc/migration/v1_1/EHistory6.java +++ /dev/null @@ -1,27 +0,0 @@ -package misc.migration.v1_1; - - -import javax.persistence.Entity; -import javax.persistence.Id; -import javax.persistence.Table; - -import io.ebean.annotation.DbDefault; -import io.ebean.annotation.History; -import io.ebean.annotation.NotNull; - - -@Entity -@Table(name = "migtest_e_history6") -@History -public class EHistory6 { - - @Id - Integer id; - - @NotNull - @DbDefault("42") - Integer testNumber1; - - - Integer testNumber2; -} diff --git a/ebean-ddl-generator/src/test/java/misc/migration/v1_1/ESoftdelete.java b/ebean-ddl-generator/src/test/java/misc/migration/v1_1/ESoftdelete.java deleted file mode 100644 index 3213ddcd3..000000000 --- a/ebean-ddl-generator/src/test/java/misc/migration/v1_1/ESoftdelete.java +++ /dev/null @@ -1,22 +0,0 @@ -package misc.migration.v1_1; - - -import javax.persistence.Entity; -import javax.persistence.Id; -import javax.persistence.Table; - -import io.ebean.annotation.SoftDelete; - -@Entity -@Table(name = "migtest_e_softdelete") -public class ESoftdelete { - - @Id - Integer id; - - - String testString; - - @SoftDelete - boolean deleted; -} diff --git a/ebean-ddl-generator/src/test/java/misc/migration/v1_1/EUser.java b/ebean-ddl-generator/src/test/java/misc/migration/v1_1/EUser.java deleted file mode 100644 index 42b901033..000000000 --- a/ebean-ddl-generator/src/test/java/misc/migration/v1_1/EUser.java +++ /dev/null @@ -1,13 +0,0 @@ -package misc.migration.v1_1; - -import javax.persistence.Entity; -import javax.persistence.Id; -import javax.persistence.Table; - -@Entity -@Table(name = "migtest_e_user") -public class EUser { - - @Id - Integer id; -} \ No newline at end of file diff --git a/ebean-ddl-generator/src/test/java/misc/migration/v1_1/MtmChild.java b/ebean-ddl-generator/src/test/java/misc/migration/v1_1/MtmChild.java deleted file mode 100644 index 7cf239f91..000000000 --- a/ebean-ddl-generator/src/test/java/misc/migration/v1_1/MtmChild.java +++ /dev/null @@ -1,45 +0,0 @@ -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/ebean-ddl-generator/src/test/java/misc/migration/v1_1/MtmMaster.java b/ebean-ddl-generator/src/test/java/misc/migration/v1_1/MtmMaster.java deleted file mode 100644 index 067d396dc..000000000 --- a/ebean-ddl-generator/src/test/java/misc/migration/v1_1/MtmMaster.java +++ /dev/null @@ -1,46 +0,0 @@ -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/ebean-ddl-generator/src/test/java/misc/migration/v1_1/OtoChild.java b/ebean-ddl-generator/src/test/java/misc/migration/v1_1/OtoChild.java deleted file mode 100644 index dd42d0771..000000000 --- a/ebean-ddl-generator/src/test/java/misc/migration/v1_1/OtoChild.java +++ /dev/null @@ -1,49 +0,0 @@ -package misc.migration.v1_1; - -import io.ebean.annotation.Index; - -import javax.persistence.Entity; -import javax.persistence.Id; -import javax.persistence.OneToOne; -import javax.persistence.Table; - -import static io.ebean.annotation.Platform.POSTGRES; - -@Index(columnNames = "name", platforms = POSTGRES) -@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/ebean-ddl-generator/src/test/java/misc/migration/v1_1/OtoMaster.java b/ebean-ddl-generator/src/test/java/misc/migration/v1_1/OtoMaster.java deleted file mode 100644 index f44bbaa9d..000000000 --- a/ebean-ddl-generator/src/test/java/misc/migration/v1_1/OtoMaster.java +++ /dev/null @@ -1,45 +0,0 @@ -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/ebean-ddl-generator/src/test/java/misc/migration/v1_2/CKeyAssoc.java b/ebean-ddl-generator/src/test/java/misc/migration/v1_2/CKeyAssoc.java deleted file mode 100644 index 351bb3ca7..000000000 --- a/ebean-ddl-generator/src/test/java/misc/migration/v1_2/CKeyAssoc.java +++ /dev/null @@ -1,32 +0,0 @@ -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/ebean-ddl-generator/src/test/java/misc/migration/v1_2/CKeyDetail.java b/ebean-ddl-generator/src/test/java/misc/migration/v1_2/CKeyDetail.java deleted file mode 100644 index c02288f0a..000000000 --- a/ebean-ddl-generator/src/test/java/misc/migration/v1_2/CKeyDetail.java +++ /dev/null @@ -1,41 +0,0 @@ -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/ebean-ddl-generator/src/test/java/misc/migration/v1_2/CKeyParent.java b/ebean-ddl-generator/src/test/java/misc/migration/v1_2/CKeyParent.java deleted file mode 100644 index 7c44a42dc..000000000 --- a/ebean-ddl-generator/src/test/java/misc/migration/v1_2/CKeyParent.java +++ /dev/null @@ -1,44 +0,0 @@ -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/ebean-ddl-generator/src/test/java/misc/migration/v1_2/CKeyParentId.java b/ebean-ddl-generator/src/test/java/misc/migration/v1_2/CKeyParentId.java deleted file mode 100644 index a2f42926b..000000000 --- a/ebean-ddl-generator/src/test/java/misc/migration/v1_2/CKeyParentId.java +++ /dev/null @@ -1,59 +0,0 @@ -package misc.migration.v1_2; - -import javax.persistence.Embeddable; -import javax.validation.constraints.Size; - -@Embeddable -public class CKeyParentId { - - 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/ebean-ddl-generator/src/test/java/misc/migration/v1_2/DfkCascade.java b/ebean-ddl-generator/src/test/java/misc/migration/v1_2/DfkCascade.java deleted file mode 100644 index 31f91eb2a..000000000 --- a/ebean-ddl-generator/src/test/java/misc/migration/v1_2/DfkCascade.java +++ /dev/null @@ -1,22 +0,0 @@ -package misc.migration.v1_2; - -import io.ebean.annotation.ConstraintMode; -import io.ebean.annotation.DbForeignKey; - -import javax.persistence.Entity; -import javax.persistence.Id; -import javax.persistence.ManyToOne; -import javax.persistence.Table; - -@Entity -@Table(name = "migtest_fk_cascade") -public class DfkCascade { - - @Id - long id; - - @ManyToOne - @DbForeignKey(onDelete = ConstraintMode.CASCADE) - DfkCascadeOne one; - -} diff --git a/ebean-ddl-generator/src/test/java/misc/migration/v1_2/DfkCascadeOne.java b/ebean-ddl-generator/src/test/java/misc/migration/v1_2/DfkCascadeOne.java deleted file mode 100644 index 8cdb2a38a..000000000 --- a/ebean-ddl-generator/src/test/java/misc/migration/v1_2/DfkCascadeOne.java +++ /dev/null @@ -1,21 +0,0 @@ -package misc.migration.v1_2; - -import javax.persistence.CascadeType; -import javax.persistence.Entity; -import javax.persistence.Id; -import javax.persistence.OneToMany; -import javax.persistence.Table; - -import java.util.List; - -@Entity -@Table(name = "migtest_fk_cascade_one") -public class DfkCascadeOne { - - @Id - long id; - - @OneToMany(mappedBy = "one", cascade = CascadeType.ALL) - List details; - -} diff --git a/ebean-ddl-generator/src/test/java/misc/migration/v1_2/DfkNone.java b/ebean-ddl-generator/src/test/java/misc/migration/v1_2/DfkNone.java deleted file mode 100644 index 4bc65eb4d..000000000 --- a/ebean-ddl-generator/src/test/java/misc/migration/v1_2/DfkNone.java +++ /dev/null @@ -1,21 +0,0 @@ -package misc.migration.v1_2; - -import io.ebean.annotation.DbForeignKey; - -import javax.persistence.Entity; -import javax.persistence.Id; -import javax.persistence.ManyToOne; -import javax.persistence.Table; - - -@Entity -@Table(name = "migtest_fk_none") -public class DfkNone { - - @Id - long id; - - @ManyToOne - @DbForeignKey(noConstraint = true) - DfkOne one; -} diff --git a/ebean-ddl-generator/src/test/java/misc/migration/v1_2/DfkNoneViaJoin.java b/ebean-ddl-generator/src/test/java/misc/migration/v1_2/DfkNoneViaJoin.java deleted file mode 100644 index 809b17f76..000000000 --- a/ebean-ddl-generator/src/test/java/misc/migration/v1_2/DfkNoneViaJoin.java +++ /dev/null @@ -1,22 +0,0 @@ -package misc.migration.v1_2; - -import javax.persistence.ConstraintMode; -import javax.persistence.Entity; -import javax.persistence.ForeignKey; -import javax.persistence.Id; -import javax.persistence.JoinColumn; -import javax.persistence.ManyToOne; -import javax.persistence.Table; - -@Entity -@Table(name = "migtest_fk_none_via_join") -public class DfkNoneViaJoin { - - @Id - long id; - - @ManyToOne - @JoinColumn(name = "one_id", foreignKey = @ForeignKey(ConstraintMode.NO_CONSTRAINT)) - DfkOne one; - -} diff --git a/ebean-ddl-generator/src/test/java/misc/migration/v1_2/DfkOne.java b/ebean-ddl-generator/src/test/java/misc/migration/v1_2/DfkOne.java deleted file mode 100644 index f1141d186..000000000 --- a/ebean-ddl-generator/src/test/java/misc/migration/v1_2/DfkOne.java +++ /dev/null @@ -1,13 +0,0 @@ -package misc.migration.v1_2; - -import javax.persistence.Entity; -import javax.persistence.Id; -import javax.persistence.Table; - -@Entity -@Table(name = "migtest_fk_one") -public class DfkOne { - - @Id - long id; -} diff --git a/ebean-ddl-generator/src/test/java/misc/migration/v1_2/DfkSetNull.java b/ebean-ddl-generator/src/test/java/misc/migration/v1_2/DfkSetNull.java deleted file mode 100644 index 01b643c99..000000000 --- a/ebean-ddl-generator/src/test/java/misc/migration/v1_2/DfkSetNull.java +++ /dev/null @@ -1,22 +0,0 @@ -package misc.migration.v1_2; - -import io.ebean.annotation.ConstraintMode; -import io.ebean.annotation.DbForeignKey; - -import javax.persistence.Entity; -import javax.persistence.Id; -import javax.persistence.ManyToOne; -import javax.persistence.Table; - -@Entity -@Table(name = "migtest_fk_set_null") -public class DfkSetNull { - - @Id - long id; - - @ManyToOne - @DbForeignKey(onDelete = ConstraintMode.SET_NULL) - DfkOne one; - -} diff --git a/ebean-ddl-generator/src/test/java/misc/migration/v1_2/EBasic.java b/ebean-ddl-generator/src/test/java/misc/migration/v1_2/EBasic.java deleted file mode 100644 index eb2a16d9e..000000000 --- a/ebean-ddl-generator/src/test/java/misc/migration/v1_2/EBasic.java +++ /dev/null @@ -1,131 +0,0 @@ -package misc.migration.v1_2; - -import io.ebean.annotation.DbDefault; -import io.ebean.annotation.EnumValue; -import io.ebean.annotation.Index; -import io.ebean.annotation.NotNull; - -import javax.persistence.Entity; -import javax.persistence.Id; -import javax.persistence.ManyToOne; -import javax.persistence.Table; -import javax.validation.constraints.Size; - -import java.sql.Timestamp; - -@Entity -@Table(name = "migtest_e_basic") -public class EBasic { - - public enum Status { - @EnumValue("N") - NEW, - - @EnumValue("A") - ACTIVE, - - @EnumValue("I") - INACTIVE, - } - - @Id - Integer id; - - Status status; - - @DbDefault("N") - @NotNull - Status status2; - - @Size(max=127) - String name; - - @Size(max=127) - String description; - - Timestamp someDate; - - boolean old_boolean; - - Boolean old_boolean2; - - @ManyToOne - ERef eref; - - - // test add & remove indices - @Index - @Size(max=127) - String indextest1; - - @Index(unique = true) - @Size(max=127) - String indextest2; - - @Size(max=127) - String indextest3; - - @Size(max=127) - String indextest4; - - @Index(unique = false) - @Size(max=127) - String indextest5; - - @Index(unique = true) - @Size(max=127) - String indextest6; - - @NotNull - @DbDefault("23") - int user_id; - - public EBasic() { - - } - - public EBasic(String name) { - this.name = name; - } - - public Integer getId() { - return id; - } - - public void setId(Integer id) { - this.id = id; - } - - public Status getStatus() { - return status; - } - - public void setStatus(Status status) { - this.status = status; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getDescription() { - return description; - } - - public void setDescription(String description) { - this.description = description; - } - - public Timestamp getSomeDate() { - return someDate; - } - - public void setSomeDate(Timestamp someDate) { - this.someDate = someDate; - } - -} diff --git a/ebean-ddl-generator/src/test/java/misc/migration/v1_2/EEnum.java b/ebean-ddl-generator/src/test/java/misc/migration/v1_2/EEnum.java deleted file mode 100644 index 26f2a5d31..000000000 --- a/ebean-ddl-generator/src/test/java/misc/migration/v1_2/EEnum.java +++ /dev/null @@ -1,29 +0,0 @@ -package misc.migration.v1_2; - - -import javax.persistence.Entity; -import javax.persistence.Id; -import javax.persistence.Table; - -import io.ebean.annotation.EnumValue; - -@Entity -@Table(name = "migtest_e_enum") -public class EEnum { - - public enum Status { - @EnumValue("N") - NEW, - - @EnumValue("A") - ACTIVE, - - @EnumValue("I") - INACTIVE, - } - - @Id - Integer id; - - Status testStatus; -} diff --git a/ebean-ddl-generator/src/test/java/misc/migration/v1_2/EHistory.java b/ebean-ddl-generator/src/test/java/misc/migration/v1_2/EHistory.java deleted file mode 100644 index 0e166625c..000000000 --- a/ebean-ddl-generator/src/test/java/misc/migration/v1_2/EHistory.java +++ /dev/null @@ -1,17 +0,0 @@ -package misc.migration.v1_2; - - -import javax.persistence.Entity; -import javax.persistence.Id; -import javax.persistence.Table; - -@Entity -@Table(name = "migtest_e_history") -public class EHistory { - - @Id - Integer id; - - - Long testString; // keep it as long as history prevents altering -} diff --git a/ebean-ddl-generator/src/test/java/misc/migration/v1_2/EHistory2.java b/ebean-ddl-generator/src/test/java/misc/migration/v1_2/EHistory2.java deleted file mode 100644 index 18a2c17fe..000000000 --- a/ebean-ddl-generator/src/test/java/misc/migration/v1_2/EHistory2.java +++ /dev/null @@ -1,26 +0,0 @@ -package misc.migration.v1_2; - - -import javax.persistence.Entity; -import javax.persistence.Id; -import javax.persistence.Table; - -import io.ebean.annotation.History; -import io.ebean.annotation.HistoryExclude; - -@Entity -@Table(name = "migtest_e_history2") -@History -public class EHistory2 { - - @Id - Integer id; - - - String testString; - - @HistoryExclude - String obsoleteString1; - - String obsoleteString2; -} diff --git a/ebean-ddl-generator/src/test/java/misc/migration/v1_2/EHistory3.java b/ebean-ddl-generator/src/test/java/misc/migration/v1_2/EHistory3.java deleted file mode 100644 index f945e6e7b..000000000 --- a/ebean-ddl-generator/src/test/java/misc/migration/v1_2/EHistory3.java +++ /dev/null @@ -1,21 +0,0 @@ -package misc.migration.v1_2; - - -import javax.persistence.Entity; -import javax.persistence.Id; -import javax.persistence.Table; - -import io.ebean.annotation.History; - - -@Entity -@Table(name = "migtest_e_history3") -@History -public class EHistory3 { - - @Id - Integer id; - - String testString; - -} diff --git a/ebean-ddl-generator/src/test/java/misc/migration/v1_2/EHistory4.java b/ebean-ddl-generator/src/test/java/misc/migration/v1_2/EHistory4.java deleted file mode 100644 index 083928e5c..000000000 --- a/ebean-ddl-generator/src/test/java/misc/migration/v1_2/EHistory4.java +++ /dev/null @@ -1,21 +0,0 @@ -package misc.migration.v1_2; - - -import javax.persistence.Entity; -import javax.persistence.Id; -import javax.persistence.Table; - -import io.ebean.annotation.History; - - -@Entity -@Table(name = "migtest_e_history4") -@History -public class EHistory4 { - - @Id - Integer id; - - Integer testNumber; - -} diff --git a/ebean-ddl-generator/src/test/java/misc/migration/v1_2/EHistory5.java b/ebean-ddl-generator/src/test/java/misc/migration/v1_2/EHistory5.java deleted file mode 100644 index 9de9206a0..000000000 --- a/ebean-ddl-generator/src/test/java/misc/migration/v1_2/EHistory5.java +++ /dev/null @@ -1,21 +0,0 @@ -package misc.migration.v1_2; - - -import javax.persistence.Entity; -import javax.persistence.Id; -import javax.persistence.Table; - -import io.ebean.annotation.History; - - -@Entity -@Table(name = "migtest_e_history5") -@History -public class EHistory5 { - - @Id - Integer id; - - Integer testNumber; - -} diff --git a/ebean-ddl-generator/src/test/java/misc/migration/v1_2/EHistory6.java b/ebean-ddl-generator/src/test/java/misc/migration/v1_2/EHistory6.java deleted file mode 100644 index 1d886ccb2..000000000 --- a/ebean-ddl-generator/src/test/java/misc/migration/v1_2/EHistory6.java +++ /dev/null @@ -1,26 +0,0 @@ -package misc.migration.v1_2; - - -import javax.persistence.Entity; -import javax.persistence.Id; -import javax.persistence.Table; - -import io.ebean.annotation.DbDefault; -import io.ebean.annotation.History; -import io.ebean.annotation.NotNull; - - -@Entity -@Table(name = "migtest_e_history6") -@History -public class EHistory6 { - - @Id - Integer id; - - Integer testNumber1; - - @NotNull - @DbDefault("7") - Integer testNumber2; -} diff --git a/ebean-ddl-generator/src/test/java/misc/migration/v1_2/ERef.java b/ebean-ddl-generator/src/test/java/misc/migration/v1_2/ERef.java deleted file mode 100644 index df16ba21c..000000000 --- a/ebean-ddl-generator/src/test/java/misc/migration/v1_2/ERef.java +++ /dev/null @@ -1,28 +0,0 @@ -package misc.migration.v1_2; - -import java.util.List; - -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") -public class ERef { - - @Id - Integer id; - - @OneToMany - List basics; - - @NotNull - @Index(unique = true) - @Size(max=127) - String name; -} diff --git a/ebean-ddl-generator/src/test/java/misc/migration/v1_2/ESoftdelete.java b/ebean-ddl-generator/src/test/java/misc/migration/v1_2/ESoftdelete.java deleted file mode 100644 index 5987135e3..000000000 --- a/ebean-ddl-generator/src/test/java/misc/migration/v1_2/ESoftdelete.java +++ /dev/null @@ -1,17 +0,0 @@ -package misc.migration.v1_2; - - -import javax.persistence.Entity; -import javax.persistence.Id; -import javax.persistence.Table; - -@Entity -@Table(name = "migtest_e_softdelete") -public class ESoftdelete { - - @Id - Integer id; - - - String testString; -} diff --git a/ebean-ddl-generator/src/test/java/misc/migration/v1_2/MtmChild.java b/ebean-ddl-generator/src/test/java/misc/migration/v1_2/MtmChild.java deleted file mode 100644 index de83d8194..000000000 --- a/ebean-ddl-generator/src/test/java/misc/migration/v1_2/MtmChild.java +++ /dev/null @@ -1,34 +0,0 @@ -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/ebean-ddl-generator/src/test/java/misc/migration/v1_2/MtmMaster.java b/ebean-ddl-generator/src/test/java/misc/migration/v1_2/MtmMaster.java deleted file mode 100644 index a1e5e41cf..000000000 --- a/ebean-ddl-generator/src/test/java/misc/migration/v1_2/MtmMaster.java +++ /dev/null @@ -1,32 +0,0 @@ -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/ebean-ddl-generator/src/test/java/misc/migration/v1_2/OtoChild.java b/ebean-ddl-generator/src/test/java/misc/migration/v1_2/OtoChild.java deleted file mode 100644 index 39b298d8b..000000000 --- a/ebean-ddl-generator/src/test/java/misc/migration/v1_2/OtoChild.java +++ /dev/null @@ -1,42 +0,0 @@ -package misc.migration.v1_2; - -import io.ebean.annotation.Index; - -import javax.persistence.Entity; -import javax.persistence.Id; -import javax.persistence.Table; - -import static io.ebean.annotation.Platform.MYSQL; -import static io.ebean.annotation.Platform.POSTGRES; - -@Index(name = "ix_m12_otoc71", columnNames = "name", platforms = {POSTGRES}) -@Index(name = "ix_m12_otoc72", columnNames = "name", platforms = {MYSQL}) -@Index(unique = true, name = "uq_m12_otoc71", columnNames = "lower(name)", platforms = {POSTGRES}) -@Index(unique = true, name = "uq_m12_otoc72", columnNames = "name", platforms = {MYSQL}) -@Index(columnNames = "name", platforms = POSTGRES) -@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/ebean-ddl-generator/src/test/java/misc/migration/v1_2/OtoMaster.java b/ebean-ddl-generator/src/test/java/misc/migration/v1_2/OtoMaster.java deleted file mode 100644 index ef7f78cba..000000000 --- a/ebean-ddl-generator/src/test/java/misc/migration/v1_2/OtoMaster.java +++ /dev/null @@ -1,40 +0,0 @@ -package misc.migration.v1_2; - -import io.ebean.annotation.Index; - -import javax.persistence.Entity; -import javax.persistence.Id; -import javax.persistence.Table; - -import static io.ebean.annotation.Platform.MYSQL; -import static io.ebean.annotation.Platform.POSTGRES; - -@Index(columnNames = "name", platforms = {MYSQL}) -@Index(unique = true, columnNames = "lower(name)", platforms = {POSTGRES}) -@Index(unique = true, columnNames = "name", platforms = {MYSQL}) -@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/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/DbMigrationDropHistoryTest.java b/ebean-test/src/test/java/io/ebeaninternal/dbmigration/DbMigrationDropHistoryTest.java similarity index 100% rename from ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/DbMigrationDropHistoryTest.java rename to ebean-test/src/test/java/io/ebeaninternal/dbmigration/DbMigrationDropHistoryTest.java diff --git a/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/DbMigrationGenerateTest.java b/ebean-test/src/test/java/io/ebeaninternal/dbmigration/DbMigrationGenerateTest.java similarity index 100% rename from ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/DbMigrationGenerateTest.java rename to ebean-test/src/test/java/io/ebeaninternal/dbmigration/DbMigrationGenerateTest.java diff --git a/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/DbMigrationTest.java b/ebean-test/src/test/java/io/ebeaninternal/dbmigration/DbMigrationTest.java similarity index 99% rename from ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/DbMigrationTest.java rename to ebean-test/src/test/java/io/ebeaninternal/dbmigration/DbMigrationTest.java index aec05f62e..2bf74e8bb 100644 --- a/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/DbMigrationTest.java +++ b/ebean-test/src/test/java/io/ebeaninternal/dbmigration/DbMigrationTest.java @@ -3,7 +3,7 @@ package io.ebeaninternal.dbmigration; import io.localtest.BaseTestCase; import io.ebean.SqlRow; import io.ebean.SqlUpdate; -import io.localtest.annotation.IgnorePlatform; +import io.ebean.annotation.IgnorePlatform; import io.ebean.annotation.Platform; import io.ebeaninternal.dbmigration.ddlgeneration.Helper; import org.junit.jupiter.api.Test; diff --git a/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/MysqlGenerateMigrationTest.java b/ebean-test/src/test/java/io/ebeaninternal/dbmigration/MysqlGenerateMigrationTest.java similarity index 100% rename from ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/MysqlGenerateMigrationTest.java rename to ebean-test/src/test/java/io/ebeaninternal/dbmigration/MysqlGenerateMigrationTest.java diff --git a/ebean-ddl-generator/src/test/java/misc/migration/mysql_v1_0/EBasic.java b/ebean-test/src/test/java/misc/migration/mysql_v1_0/EBasic.java similarity index 100% rename from ebean-ddl-generator/src/test/java/misc/migration/mysql_v1_0/EBasic.java rename to ebean-test/src/test/java/misc/migration/mysql_v1_0/EBasic.java diff --git a/ebean-ddl-generator/src/test/java/misc/migration/mysql_v1_1/EBasic.java b/ebean-test/src/test/java/misc/migration/mysql_v1_1/EBasic.java similarity index 100% rename from ebean-ddl-generator/src/test/java/misc/migration/mysql_v1_1/EBasic.java rename to ebean-test/src/test/java/misc/migration/mysql_v1_1/EBasic.java diff --git a/ebean-test/src/test/resources/dbmigration/migrationtest-history/1.0__initial.sql b/ebean-test/src/test/resources/dbmigration/migrationtest-history/1.0__initial.sql new file mode 100644 index 000000000..c2e2019a7 --- /dev/null +++ b/ebean-test/src/test/resources/dbmigration/migrationtest-history/1.0__initial.sql @@ -0,0 +1,17 @@ +-- Migrationscripts for ebean unittest DbMigrationDropHistoryTest +-- apply changes +create table migtest_e_history7 ( + id integer generated by default as identity not null, + constraint pk_migtest_e_history7 primary key (id) +); + +alter table migtest_e_history7 add column sys_period_start timestamp default now(); +alter table migtest_e_history7 add column sys_period_end timestamp; +create table migtest_e_history7_history( + id integer, + sys_period_start timestamp, + sys_period_end timestamp +); +create view migtest_e_history7_with_history as select * from migtest_e_history7 union all select * from migtest_e_history7_history; + +create trigger migtest_e_history7_history_upd before update,delete on migtest_e_history7 for each row call "io.ebean.config.dbplatform.h2.H2HistoryTrigger"; diff --git a/ebean-test/src/test/resources/dbmigration/migrationtest-history/1.2__dropsFor_1.1.sql b/ebean-test/src/test/resources/dbmigration/migrationtest-history/1.2__dropsFor_1.1.sql new file mode 100644 index 000000000..692d93f76 --- /dev/null +++ b/ebean-test/src/test/resources/dbmigration/migrationtest-history/1.2__dropsFor_1.1.sql @@ -0,0 +1,10 @@ +-- Migrationscripts for ebean unittest DbMigrationDropHistoryTest +-- drop dependencies +drop trigger migtest_e_history7_history_upd; +drop view migtest_e_history7_with_history; +alter table migtest_e_history7 drop column sys_period_start; +alter table migtest_e_history7 drop column sys_period_end; +drop table migtest_e_history7_history; + + +-- apply changes diff --git a/ebean-test/src/test/resources/dbmigration/migrationtest-history/R__multi_comments.sql b/ebean-test/src/test/resources/dbmigration/migrationtest-history/R__multi_comments.sql new file mode 100644 index 000000000..0ede0c9eb --- /dev/null +++ b/ebean-test/src/test/resources/dbmigration/migrationtest-history/R__multi_comments.sql @@ -0,0 +1,3 @@ + + -- h2 and postgres script + \ No newline at end of file diff --git a/ebean-test/src/test/resources/dbmigration/migrationtest-history/R__order_views.sql b/ebean-test/src/test/resources/dbmigration/migrationtest-history/R__order_views.sql new file mode 100644 index 000000000..ccf30a2c6 --- /dev/null +++ b/ebean-test/src/test/resources/dbmigration/migrationtest-history/R__order_views.sql @@ -0,0 +1,7 @@ + + create or replace view order_agg_vw as + select d.order_id, sum(d.order_qty * d.unit_price) as order_total, + sum(d.ship_qty * d.unit_price) as ship_total + from o_order_detail d + group by d.order_id + \ No newline at end of file diff --git a/ebean-test/src/test/resources/dbmigration/migrationtest-history/model/1.0__initial.model.xml b/ebean-test/src/test/resources/dbmigration/migrationtest-history/model/1.0__initial.model.xml new file mode 100644 index 000000000..52d70c793 --- /dev/null +++ b/ebean-test/src/test/resources/dbmigration/migrationtest-history/model/1.0__initial.model.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/ebean-test/src/test/resources/dbmigration/migrationtest-history/model/1.1.model.xml b/ebean-test/src/test/resources/dbmigration/migrationtest-history/model/1.1.model.xml new file mode 100644 index 000000000..8c0a04b2b --- /dev/null +++ b/ebean-test/src/test/resources/dbmigration/migrationtest-history/model/1.1.model.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/ebean-test/src/test/resources/dbmigration/migrationtest-history/model/1.2__dropsFor_1.1.model.xml b/ebean-test/src/test/resources/dbmigration/migrationtest-history/model/1.2__dropsFor_1.1.model.xml new file mode 100644 index 000000000..4cfc4672f --- /dev/null +++ b/ebean-test/src/test/resources/dbmigration/migrationtest-history/model/1.2__dropsFor_1.1.model.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/clickhouse/1.0__initial.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/clickhouse/1.0__initial.sql new file mode 100644 index 000000000..e4afafaad --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/clickhouse/1.0__initial.sql @@ -0,0 +1,134 @@ +-- Migrationscripts for ebean unittest +-- apply changes +create table migtest_ckey_assoc ( + id UInt32, + assoc_one String +) ENGINE = Log(); + +create table migtest_ckey_detail ( + id UInt32, + something String +) ENGINE = Log(); + +create table migtest_ckey_parent ( + one_key UInt32, + two_key String, + name String, + version UInt32 +) ENGINE = Log(); + +create table migtest_fk_cascade ( + id UInt64, + one_id UInt64 +) ENGINE = Log(); + +create table migtest_fk_cascade_one ( + id UInt64 +) ENGINE = Log(); + +create table migtest_fk_none ( + id UInt64, + one_id UInt64 +) ENGINE = Log(); + +create table migtest_fk_none_via_join ( + id UInt64, + one_id UInt64 +) ENGINE = Log(); + +create table migtest_fk_one ( + id UInt64 +) ENGINE = Log(); + +create table migtest_fk_set_null ( + id UInt64, + one_id UInt64 +) ENGINE = Log(); + +create table migtest_e_basic ( + id UInt32, + status String, + status2 String default 'N', + name String, + description String, + some_date DateTime, + old_boolean UInt8 default false, + old_boolean2 UInt8, + eref_id UInt32, + indextest1 String, + indextest2 String, + indextest3 String, + indextest4 String, + indextest5 String, + indextest6 String, + user_id UInt32 +) ENGINE = Log(); + +create table migtest_e_enum ( + id UInt32, + test_status String +) ENGINE = Log(); + +create table migtest_e_history ( + id UInt32, + test_string String +) ENGINE = Log(); + +create table migtest_e_history2 ( + id UInt32, + test_string String, + obsolete_string1 String, + obsolete_string2 String +) ENGINE = Log(); + +create table migtest_e_history3 ( + id UInt32, + test_string String +) ENGINE = Log(); + +create table migtest_e_history4 ( + id UInt32, + test_number UInt32 +) ENGINE = Log(); + +create table migtest_e_history5 ( + id UInt32, + test_number UInt32 +) ENGINE = Log(); + +create table migtest_e_history6 ( + id UInt32, + test_number1 UInt32, + test_number2 UInt32 +) ENGINE = Log(); + +create table migtest_e_ref ( + id UInt32, + name String +) ENGINE = Log(); + +create table migtest_e_softdelete ( + id UInt32, + test_string String +) ENGINE = Log(); + +create table migtest_mtm_c ( + id UInt32, + name String +) ENGINE = Log(); + +create table migtest_mtm_m ( + id UInt64, + name String +) ENGINE = Log(); + +create table migtest_oto_child ( + id UInt32, + name String +) ENGINE = Log(); + +create table migtest_oto_master ( + id UInt64, + name String +) ENGINE = Log(); + diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/clickhouse/1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/clickhouse/1.1.sql new file mode 100644 index 000000000..844845a50 --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/clickhouse/1.1.sql @@ -0,0 +1,76 @@ +-- Migrationscripts for ebean unittest +-- apply changes +create table migtest_e_user ( + id UInt32 +) ENGINE = Log(); + +create table migtest_mtm_c_migtest_mtm_m ( + migtest_mtm_c_id UInt32, + migtest_mtm_m_id UInt64 +) ENGINE = Log(); + +create table migtest_mtm_m_migtest_mtm_c ( + migtest_mtm_m_id UInt64, + migtest_mtm_c_id UInt32 +) ENGINE = Log(); + +alter table migtest_ckey_detail add column one_key UInt32; +alter table migtest_ckey_detail add column two_key String; + +alter table migtest_ckey_parent add column assoc_id UInt32; + + +update migtest_e_basic set status = 'A' where status is null; +alter table migtest_e_basic drop constraint if exists ck_migtest_e_basic_status; +alter table migtest_e_basic alter column status set default 'A'; +alter table migtest_e_basic alter column status set not null; +alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I','?')); +alter table migtest_e_basic drop constraint if exists ck_migtest_e_basic_status2; +alter table migtest_e_basic alter column status2 String; +alter table migtest_e_basic alter column status2 drop default; +alter table migtest_e_basic alter column status2 set null; + +-- rename all collisions; +alter table migtest_e_basic add constraint uq_migtest_e_basic_description unique (description); + +insert into migtest_e_user (id) select distinct user_id from migtest_e_basic; +alter table migtest_e_basic alter column user_id set null; +alter table migtest_e_basic add column new_string_field String default 'foo''bar'; +alter table migtest_e_basic add column new_boolean_field UInt8 default true; +update migtest_e_basic set new_boolean_field = old_boolean; + +alter table migtest_e_basic add column new_boolean_field2 UInt8 default true; +alter table migtest_e_basic add column progress UInt32 default 0; +alter table migtest_e_basic add constraint ck_migtest_e_basic_progress check ( progress in (0,1,2)); +alter table migtest_e_basic add column new_integer UInt32 default 42; + +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); +alter table migtest_e_enum drop constraint if exists ck_migtest_e_enum_test_status; +alter table migtest_e_history alter column test_string UInt64; + +-- NOTE: table has @History - special migration may be necessary +update migtest_e_history2 set test_string = 'unknown' where test_string is null; +alter table migtest_e_history2 alter column test_string set default 'unknown'; +alter table migtest_e_history2 alter column test_string set not null; +alter table migtest_e_history2 add column test_string2 String; +alter table migtest_e_history2 add column test_string3 String default 'unknown'; +alter table migtest_e_history2 add column new_column String; + +alter table migtest_e_history4 alter column test_number UInt64; +alter table migtest_e_history5 add column test_boolean UInt8 default false; + + +-- NOTE: table has @History - special migration may be necessary +update migtest_e_history6 set test_number1 = 42 where test_number1 is null; +alter table migtest_e_history6 alter column test_number1 set default 42; +alter table migtest_e_history6 alter column test_number1 set not null; +alter table migtest_e_history6 alter column test_number2 set null; +alter table migtest_e_softdelete add column deleted UInt8 default false; + +alter table migtest_oto_child add column master_id UInt64; + diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/clickhouse/1.2__dropsFor_1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/clickhouse/1.2__dropsFor_1.1.sql new file mode 100644 index 000000000..3f8f468ba --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/clickhouse/1.2__dropsFor_1.1.sql @@ -0,0 +1,13 @@ +-- Migrationscripts for ebean unittest +-- apply changes +alter table migtest_e_basic drop column old_boolean; + +alter table migtest_e_basic drop column old_boolean2; + +alter table migtest_e_basic drop column eref_id; + +alter table migtest_e_history2 drop column obsolete_string1; + +alter table migtest_e_history2 drop column obsolete_string2; + +drop table if exists migtest_e_ref; diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/clickhouse/1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/clickhouse/1.3.sql new file mode 100644 index 000000000..a9becf417 --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/clickhouse/1.3.sql @@ -0,0 +1,48 @@ +-- Migrationscripts for ebean unittest +-- apply changes +create table migtest_e_ref ( + id UInt32, + name String +) ENGINE = Log(); + +alter table migtest_e_basic drop constraint if exists ck_migtest_e_basic_status; +alter table migtest_e_basic alter column status drop default; +alter table migtest_e_basic alter column status set null; +alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I')); + +update migtest_e_basic set status2 = 'N' where status2 is null; +alter table migtest_e_basic drop constraint if exists ck_migtest_e_basic_status2; +alter table migtest_e_basic alter column status2 String; +alter table migtest_e_basic alter column status2 set default 'N'; +alter table migtest_e_basic alter column status2 set not null; +alter table migtest_e_basic add constraint ck_migtest_e_basic_status2 check ( status2 in ('N','A','I')); +alter table migtest_e_basic drop constraint uq_migtest_e_basic_description; + +update migtest_e_basic set user_id = 23 where user_id is null; +alter table migtest_e_basic alter column user_id set default 23; +alter table migtest_e_basic alter column user_id set not null; +alter table migtest_e_basic add column old_boolean UInt8 default false; +alter table migtest_e_basic add column old_boolean2 UInt8; +alter table migtest_e_basic add column eref_id UInt32; + +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; +alter table migtest_e_basic add constraint uq_migtest_e_basic_indextest2 unique (indextest2); +alter table migtest_e_basic add constraint uq_migtest_e_basic_indextest6 unique (indextest6); +alter table migtest_e_enum drop constraint if exists ck_migtest_e_enum_test_status; +alter table migtest_e_enum add constraint ck_migtest_e_enum_test_status check ( test_status in ('N','A','I')); +alter table migtest_e_history2 alter column test_string drop default; +alter table migtest_e_history2 alter column test_string set null; +alter table migtest_e_history2 add column obsolete_string1 String; +alter table migtest_e_history2 add column obsolete_string2 String; + +alter table migtest_e_history4 alter column test_number UInt32; +alter table migtest_e_history6 alter column test_number1 drop default; +alter table migtest_e_history6 alter column test_number1 set null; + +-- NOTE: table has @History - special migration may be necessary +update migtest_e_history6 set test_number2 = 7 where test_number2 is null; +alter table migtest_e_history6 alter column test_number2 set default 7; +alter table migtest_e_history6 alter column test_number2 set not null; diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/clickhouse/1.4__dropsFor_1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/clickhouse/1.4__dropsFor_1.3.sql new file mode 100644 index 000000000..24e4e93ba --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/clickhouse/1.4__dropsFor_1.3.sql @@ -0,0 +1,33 @@ +-- 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; + +alter table migtest_e_basic drop column new_boolean_field2; + +alter table migtest_e_basic drop column progress; + +alter table migtest_e_basic drop column new_integer; + +alter table migtest_e_history2 drop column test_string2; + +alter table migtest_e_history2 drop column test_string3; + +alter table migtest_e_history2 drop column new_column; + +alter table migtest_e_history5 drop column test_boolean; + +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/ebean-test/src/test/resources/migrationtest/dbmigration/clickhouse/idx_clickhouse.migrations b/ebean-test/src/test/resources/migrationtest/dbmigration/clickhouse/idx_clickhouse.migrations new file mode 100644 index 000000000..c2f4378fb --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/clickhouse/idx_clickhouse.migrations @@ -0,0 +1,6 @@ +79609527, 1.0__initial.sql +-779316787, 1.1.sql +1359055889, 1.2__dropsFor_1.1.sql +-715327671, 1.3.sql +-1070218324, 1.4__dropsFor_1.3.sql + diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/cockroach/1.0__initial.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/cockroach/1.0__initial.sql new file mode 100644 index 000000000..371a3fad1 --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/cockroach/1.0__initial.sql @@ -0,0 +1,174 @@ +-- 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, + constraint pk_migtest_fk_cascade primary key (id) +); + +create table migtest_fk_cascade_one ( + id bigint generated by default as identity not null, + constraint pk_migtest_fk_cascade_one primary key (id) +); + +create table migtest_fk_none ( + id bigint generated by default as identity not null, + one_id bigint, + constraint pk_migtest_fk_none primary key (id) +); + +create table migtest_fk_none_via_join ( + id bigint generated by default as identity not null, + one_id bigint, + constraint pk_migtest_fk_none_via_join primary key (id) +); + +create table migtest_fk_one ( + id bigint generated by default as identity not null, + constraint pk_migtest_fk_one primary key (id) +); + +create table migtest_fk_set_null ( + id bigint generated by default as identity not null, + one_id bigint, + constraint pk_migtest_fk_set_null primary key (id) +); + +create table migtest_e_basic ( + id integer generated by default as identity not null, + status varchar(1), + status2 varchar(1) default 'N' not null, + name varchar(127), + description varchar(127), + some_date timestamptz, + old_boolean boolean default false not null, + old_boolean2 boolean, + eref_id integer, + indextest1 varchar(127), + indextest2 varchar(127), + indextest3 varchar(127), + indextest4 varchar(127), + indextest5 varchar(127), + indextest6 varchar(127), + user_id integer not null, + constraint ck_migtest_e_basic_status check ( status in ('N','A','I')), + constraint ck_migtest_e_basic_status2 check ( status2 in ('N','A','I')), + constraint uq_migtest_e_basic_indextest2 unique (indextest2), + constraint uq_migtest_e_basic_indextest6 unique (indextest6), + constraint pk_migtest_e_basic primary key (id) +); + +create table migtest_e_enum ( + id integer generated by default as identity not null, + test_status varchar(1), + constraint ck_migtest_e_enum_test_status check ( test_status in ('N','A','I')), + constraint pk_migtest_e_enum primary key (id) +); + +create table migtest_e_history ( + id integer generated by default as identity not null, + test_string varchar(255), + constraint pk_migtest_e_history primary key (id) +); + +create table migtest_e_history2 ( + id integer generated by default as identity not null, + test_string varchar(255), + obsolete_string1 varchar(255), + obsolete_string2 varchar(255), + constraint pk_migtest_e_history2 primary key (id) +); + +create table migtest_e_history3 ( + id integer generated by default as identity not null, + test_string varchar(255), + constraint pk_migtest_e_history3 primary key (id) +); + +create table migtest_e_history4 ( + id integer generated by default as identity not null, + test_number integer, + constraint pk_migtest_e_history4 primary key (id) +); + +create table migtest_e_history5 ( + id integer generated by default as identity not null, + test_number integer, + constraint pk_migtest_e_history5 primary key (id) +); + +create table migtest_e_history6 ( + id integer generated by default as identity not null, + test_number1 integer, + test_number2 integer not null, + constraint pk_migtest_e_history6 primary key (id) +); + +create table migtest_e_ref ( + id integer generated by default as identity not null, + name varchar(127) not null, + constraint uq_migtest_e_ref_name unique (name), + constraint pk_migtest_e_ref primary key (id) +); + +create table migtest_e_softdelete ( + id integer generated by default as identity not null, + test_string varchar(255), + 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); +create index ix_migtest_fk_cascade_one_id on 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 restrict; + +create index ix_migtest_fk_set_null_one_id on migtest_fk_set_null (one_id); +alter table migtest_fk_set_null add constraint fk_migtest_fk_set_null_one_id foreign key (one_id) references migtest_fk_one (id) on delete set null on update restrict; + +create index ix_migtest_e_basic_eref_id on migtest_e_basic (eref_id); +alter table migtest_e_basic add constraint fk_migtest_e_basic_eref_id foreign key (eref_id) references migtest_e_ref (id) on delete restrict on update restrict; + diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/cockroach/1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/cockroach/1.1.sql new file mode 100644 index 000000000..f57bbd6d1 --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/cockroach/1.1.sql @@ -0,0 +1,113 @@ +-- Migrationscripts for ebean unittest +-- apply changes +create table migtest_e_user ( + id integer generated by default as identity not null, + 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; +alter table migtest_fk_none_via_join add constraint fk_migtest_fk_none_via_join_one_id foreign key (one_id) references migtest_fk_one (id) on delete restrict on update restrict; +alter table if exists migtest_fk_set_null drop constraint if exists fk_migtest_fk_set_null_one_id; +alter table migtest_fk_set_null add constraint fk_migtest_fk_set_null_one_id foreign key (one_id) references migtest_fk_one (id) on delete restrict on update restrict; + +update migtest_e_basic set status = 'A' where status is null; +alter table migtest_e_basic drop constraint if exists ck_migtest_e_basic_status; +alter table migtest_e_basic alter column status set default 'A'; +alter table migtest_e_basic alter column status set not null; +alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I','?')); +alter table migtest_e_basic drop constraint if exists ck_migtest_e_basic_status2; +alter table migtest_e_basic alter column status2 type varchar(127); +alter table migtest_e_basic alter column status2 drop default; +alter table migtest_e_basic alter column status2 drop not null; + +-- rename all collisions; +alter table migtest_e_basic add constraint uq_migtest_e_basic_description unique (description); + +insert into migtest_e_user (id) select distinct user_id from migtest_e_basic; +alter table migtest_e_basic add constraint fk_migtest_e_basic_user_id foreign key (user_id) references migtest_e_user (id) on delete restrict on update restrict; +alter table migtest_e_basic alter column user_id drop not null; +alter table migtest_e_basic add column new_string_field varchar(255) default 'foo''bar' not null; +alter table migtest_e_basic add column new_boolean_field boolean default true not null; +update migtest_e_basic set new_boolean_field = old_boolean; + +alter table migtest_e_basic add column new_boolean_field2 boolean default true not null; +alter table migtest_e_basic add column progress integer default 0 not null; +alter table migtest_e_basic add constraint ck_migtest_e_basic_progress check ( progress in (0,1,2)); +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); +alter table migtest_e_enum drop constraint if exists ck_migtest_e_enum_test_status; +alter table migtest_e_history alter column test_string type bigint; + +-- NOTE: table has @History - special migration may be necessary +update migtest_e_history2 set test_string = 'unknown' where test_string is null; +alter table migtest_e_history2 alter column test_string set default 'unknown'; +alter table migtest_e_history2 alter column test_string set not null; +alter table migtest_e_history2 add column test_string2 varchar(255); +alter table migtest_e_history2 add column test_string3 varchar(255) default 'unknown' not null; +alter table migtest_e_history2 add column new_column varchar(20); +alter table migtest_e_history2_history add column test_string2 varchar(255); +alter table migtest_e_history2_history add column test_string3 varchar(255) default 'unknown'; +alter table migtest_e_history2_history add column new_column varchar(20); + +alter table migtest_e_history4 alter column test_number type bigint; +alter table migtest_e_history4_history alter column test_number type bigint; +alter table migtest_e_history5 add column test_boolean boolean default false not null; +alter table migtest_e_history5_history add column test_boolean boolean default false; + + +-- NOTE: table has @History - special migration may be necessary +update migtest_e_history6 set test_number1 = 42 where test_number1 is null; +alter table migtest_e_history6 alter column test_number1 set default 42; +alter table migtest_e_history6 alter column test_number1 set not null; +alter table migtest_e_history6 alter column test_number2 drop not null; +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; +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_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_m on migtest_mtm_c_migtest_mtm_m (migtest_mtm_m_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_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_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_c on migtest_mtm_m_migtest_mtm_c (migtest_mtm_c_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_ckey_parent_assoc_id on migtest_ckey_parent (assoc_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; + +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/ebean-test/src/test/resources/migrationtest/dbmigration/cockroach/1.2__dropsFor_1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/cockroach/1.2__dropsFor_1.1.sql new file mode 100644 index 000000000..e88e788c0 --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/cockroach/1.2__dropsFor_1.1.sql @@ -0,0 +1,16 @@ +-- Migrationscripts for ebean unittest +-- apply changes +alter table migtest_e_basic drop column old_boolean; + +alter table migtest_e_basic drop column old_boolean2; + +alter table migtest_e_basic drop column eref_id; + +alter table migtest_e_history2 drop column obsolete_string1; +alter table migtest_e_history2_history drop column obsolete_string1; + +alter table migtest_e_history2 drop column obsolete_string2; +alter table migtest_e_history2_history drop column obsolete_string2; + +drop table if exists migtest_e_ref cascade; +drop sequence if exists migtest_e_ref_seq; diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/cockroach/1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/cockroach/1.3.sql new file mode 100644 index 000000000..3784bbb0c --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/cockroach/1.3.sql @@ -0,0 +1,68 @@ +-- Migrationscripts for ebean unittest +-- apply changes +create table migtest_e_ref ( + id integer generated by default as identity 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 restrict; +alter table if exists migtest_fk_none drop constraint if exists fk_migtest_fk_none_one_id; +alter table if exists migtest_fk_none_via_join drop constraint if exists fk_migtest_fk_none_via_join_one_id; +alter table if exists migtest_fk_set_null drop constraint if exists fk_migtest_fk_set_null_one_id; +alter table migtest_fk_set_null add constraint fk_migtest_fk_set_null_one_id foreign key (one_id) references migtest_fk_one (id) on delete set null on update restrict; +alter table migtest_e_basic drop constraint if exists ck_migtest_e_basic_status; +alter table migtest_e_basic alter column status drop default; +alter table migtest_e_basic alter column status drop not null; +alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I')); + +update migtest_e_basic set status2 = 'N' where status2 is null; +alter table migtest_e_basic drop constraint if exists ck_migtest_e_basic_status2; +alter table migtest_e_basic alter column status2 type varchar(1); +alter table migtest_e_basic alter column status2 set default 'N'; +alter table migtest_e_basic alter column status2 set not null; +alter table migtest_e_basic add constraint ck_migtest_e_basic_status2 check ( status2 in ('N','A','I')); +alter table migtest_e_basic drop constraint uq_migtest_e_basic_description; + +update migtest_e_basic set user_id = 23 where user_id is null; +alter table if exists migtest_e_basic drop constraint if exists fk_migtest_e_basic_user_id; +alter table migtest_e_basic alter column user_id set default 23; +alter table migtest_e_basic alter column user_id set not null; +alter table migtest_e_basic add column old_boolean boolean default false not null; +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; +alter table migtest_e_basic add constraint uq_migtest_e_basic_indextest2 unique (indextest2); +alter table migtest_e_basic add constraint uq_migtest_e_basic_indextest6 unique (indextest6); +alter table migtest_e_enum drop constraint if exists ck_migtest_e_enum_test_status; +alter table migtest_e_enum add constraint ck_migtest_e_enum_test_status check ( test_status in ('N','A','I')); +alter table migtest_e_history2 alter column test_string drop default; +alter table migtest_e_history2 alter column test_string drop not null; +alter table migtest_e_history2 add column obsolete_string1 varchar(255); +alter table migtest_e_history2 add column obsolete_string2 varchar(255); +alter table migtest_e_history2_history add column obsolete_string1 varchar(255); +alter table migtest_e_history2_history add column obsolete_string2 varchar(255); + +alter table migtest_e_history4 alter column test_number type integer; +alter table migtest_e_history4_history alter column test_number type integer; +alter table migtest_e_history6 alter column test_number1 drop default; +alter table migtest_e_history6 alter column test_number1 drop not null; + +-- NOTE: table has @History - special migration may be necessary +update migtest_e_history6 set test_number2 = 7 where test_number2 is null; +alter table migtest_e_history6 alter column test_number2 set default 7; +alter table migtest_e_history6 alter column test_number2 set not null; +create index ix_migtest_e_basic_indextest1 on migtest_e_basic (indextest1); +create index ix_migtest_e_basic_indextest5 on migtest_e_basic (indextest5); +drop index if exists ix_migtest_e_basic_indextest3; +drop index if exists ix_migtest_e_basic_indextest6; +create index ix_migtest_e_basic_eref_id on migtest_e_basic (eref_id); +alter table migtest_e_basic add constraint fk_migtest_e_basic_eref_id foreign key (eref_id) references migtest_e_ref (id) on delete restrict on update restrict; + diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/cockroach/1.4__dropsFor_1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/cockroach/1.4__dropsFor_1.3.sql new file mode 100644 index 000000000..9357602a1 --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/cockroach/1.4__dropsFor_1.3.sql @@ -0,0 +1,38 @@ +-- 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; + +alter table migtest_e_basic drop column new_boolean_field2; + +alter table migtest_e_basic drop column progress; + +alter table migtest_e_basic drop column new_integer; + +alter table migtest_e_history2 drop column test_string2; +alter table migtest_e_history2_history drop column test_string2; + +alter table migtest_e_history2 drop column test_string3; +alter table migtest_e_history2_history drop column test_string3; + +alter table migtest_e_history2 drop column new_column; +alter table migtest_e_history2_history drop column new_column; + +alter table migtest_e_history5 drop column test_boolean; +alter table migtest_e_history5_history drop column test_boolean; + +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; diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/cockroach/R__order_views.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/cockroach/R__order_views.sql new file mode 100644 index 000000000..ccf30a2c6 --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/cockroach/R__order_views.sql @@ -0,0 +1,7 @@ + + create or replace view order_agg_vw as + select d.order_id, sum(d.order_qty * d.unit_price) as order_total, + sum(d.ship_qty * d.unit_price) as ship_total + from o_order_detail d + group by d.order_id + \ No newline at end of file diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/cockroach/idx_cockroach.migrations b/ebean-test/src/test/resources/migrationtest/dbmigration/cockroach/idx_cockroach.migrations new file mode 100644 index 000000000..549742da7 --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/cockroach/idx_cockroach.migrations @@ -0,0 +1,7 @@ +-487576609, 1.0__initial.sql +-889791572, 1.1.sql +-91524786, 1.2__dropsFor_1.1.sql +735879716, 1.3.sql +-807148201, 1.4__dropsFor_1.3.sql +561281075, R__order_views.sql + diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/db2/1.0__initial.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/db2/1.0__initial.sql new file mode 100644 index 000000000..5d4113a24 --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2/1.0__initial.sql @@ -0,0 +1,174 @@ +-- 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, + constraint pk_migtest_fk_cascade primary key (id) +); + +create table migtest_fk_cascade_one ( + id bigint generated by default as identity not null, + constraint pk_migtest_fk_cascade_one primary key (id) +); + +create table migtest_fk_none ( + id bigint generated by default as identity not null, + one_id bigint, + constraint pk_migtest_fk_none primary key (id) +); + +create table migtest_fk_none_via_join ( + id bigint generated by default as identity not null, + one_id bigint, + constraint pk_migtest_fk_none_via_join primary key (id) +); + +create table migtest_fk_one ( + id bigint generated by default as identity not null, + constraint pk_migtest_fk_one primary key (id) +); + +create table migtest_fk_set_null ( + id bigint generated by default as identity not null, + one_id bigint, + constraint pk_migtest_fk_set_null primary key (id) +); + +create table migtest_e_basic ( + id integer generated by default as identity not null, + status varchar(1), + status2 varchar(1) default 'N' not null, + name varchar(127), + description varchar(127), + some_date timestamp, + old_boolean boolean default false not null, + old_boolean2 boolean, + eref_id integer, + indextest1 varchar(127), + indextest2 varchar(127), + indextest3 varchar(127), + indextest4 varchar(127), + indextest5 varchar(127), + indextest6 varchar(127), + user_id integer not null, + constraint ck_migtest_e_basic_status check ( status in ('N','A','I')), + constraint ck_migtest_e_basic_status2 check ( status2 in ('N','A','I')), + constraint pk_migtest_e_basic primary key (id) +); +create unique index uq_migtest_e_basic_indextest2 on migtest_e_basic(indextest2) exclude null keys; +create unique index uq_migtest_e_basic_indextest6 on migtest_e_basic(indextest6) exclude null keys; + +create table migtest_e_enum ( + id integer generated by default as identity not null, + test_status varchar(1), + constraint ck_migtest_e_enum_test_status check ( test_status in ('N','A','I')), + constraint pk_migtest_e_enum primary key (id) +); + +create table migtest_e_history ( + id integer generated by default as identity not null, + test_string varchar(255), + constraint pk_migtest_e_history primary key (id) +); + +create table migtest_e_history2 ( + id integer generated by default as identity not null, + test_string varchar(255), + obsolete_string1 varchar(255), + obsolete_string2 varchar(255), + constraint pk_migtest_e_history2 primary key (id) +); + +create table migtest_e_history3 ( + id integer generated by default as identity not null, + test_string varchar(255), + constraint pk_migtest_e_history3 primary key (id) +); + +create table migtest_e_history4 ( + id integer generated by default as identity not null, + test_number integer, + constraint pk_migtest_e_history4 primary key (id) +); + +create table migtest_e_history5 ( + id integer generated by default as identity not null, + test_number integer, + constraint pk_migtest_e_history5 primary key (id) +); + +create table migtest_e_history6 ( + id integer generated by default as identity not null, + test_number1 integer, + test_number2 integer not null, + constraint pk_migtest_e_history6 primary key (id) +); + +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, + test_string varchar(255), + 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); +create index ix_migtest_fk_cascade_one_id on 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; + +create index ix_migtest_fk_set_null_one_id on migtest_fk_set_null (one_id); +alter table migtest_fk_set_null add constraint fk_migtest_fk_set_null_one_id foreign key (one_id) references migtest_fk_one (id) on delete set null; + +create index ix_migtest_e_basic_eref_id on migtest_e_basic (eref_id); +alter table migtest_e_basic add constraint fk_migtest_e_basic_eref_id foreign key (eref_id) references migtest_e_ref (id) on delete restrict; + diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/db2/1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/db2/1.1.sql new file mode 100644 index 000000000..769a12a7b --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2/1.1.sql @@ -0,0 +1,110 @@ +-- Migrationscripts for ebean unittest +-- apply changes +create table migtest_e_user ( + id integer generated by default as identity not null, + 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; +alter table migtest_fk_none_via_join add constraint fk_migtest_fk_none_via_join_one_id foreign key (one_id) references migtest_fk_one (id) on delete restrict; +alter table migtest_fk_set_null drop constraint fk_migtest_fk_set_null_one_id; +alter table migtest_fk_set_null add constraint fk_migtest_fk_set_null_one_id foreign key (one_id) references migtest_fk_one (id) on delete restrict; + +update migtest_e_basic set status = 'A' where status is null; +alter table migtest_e_basic drop constraint ck_migtest_e_basic_status; +alter table migtest_e_basic alter column status set default 'A'; +alter table migtest_e_basic alter column status set not null; +alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I','?')); +alter table migtest_e_basic drop constraint ck_migtest_e_basic_status2; +alter table migtest_e_basic alter column status2 set data type varchar(127); +alter table migtest_e_basic alter column status2 drop default; +alter table migtest_e_basic alter column status2 drop not null; + +-- rename all collisions; +create unique index uq_migtest_e_basic_description on migtest_e_basic(description) exclude null keys; + +insert into migtest_e_user (id) select distinct user_id from migtest_e_basic; +alter table migtest_e_basic add constraint fk_migtest_e_basic_user_id foreign key (user_id) references migtest_e_user (id) on delete restrict; +alter table migtest_e_basic alter column user_id drop not null; +alter table migtest_e_basic add column new_string_field varchar(255) default 'foo''bar' not null; +alter table migtest_e_basic add column new_boolean_field boolean default true not null; +update migtest_e_basic set new_boolean_field = old_boolean; + +alter table migtest_e_basic add column new_boolean_field2 boolean default true not null; +alter table migtest_e_basic add column progress integer default 0 not null; +alter table migtest_e_basic add constraint ck_migtest_e_basic_progress check ( progress in (0,1,2)); +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; +create unique index uq_migtest_e_basic_status_indextest1 on migtest_e_basic(status,indextest1) exclude null keys; +create unique index uq_migtest_e_basic_name on migtest_e_basic(name) exclude null keys; +create unique index uq_migtest_e_basic_indextest4 on migtest_e_basic(indextest4) exclude null keys; +create unique index uq_migtest_e_basic_indextest5 on migtest_e_basic(indextest5) exclude null keys; +alter table migtest_e_enum drop constraint ck_migtest_e_enum_test_status; +comment on column migtest_e_history.test_string is 'Column altered to long now'; +alter table migtest_e_history alter column test_string set data type bigint; +comment on table migtest_e_history is 'We have history now'; + +-- NOTE: table has @History - special migration may be necessary +update migtest_e_history2 set test_string = 'unknown' where test_string is null; +alter table migtest_e_history2 alter column test_string set default 'unknown'; +alter table migtest_e_history2 alter column test_string set not null; +alter table migtest_e_history2 add column test_string2 varchar(255); +alter table migtest_e_history2 add column test_string3 varchar(255) default 'unknown' not null; +alter table migtest_e_history2 add column new_column varchar(20); + +alter table migtest_e_history4 alter column test_number set data type bigint; +alter table migtest_e_history5 add column test_boolean boolean default false not null; + + +-- NOTE: table has @History - special migration may be necessary +update migtest_e_history6 set test_number1 = 42 where test_number1 is null; +alter table migtest_e_history6 alter column test_number1 set default 42; +alter table migtest_e_history6 alter column test_number1 set not null; +alter table migtest_e_history6 alter column test_number2 drop not null; +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; +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_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_m on migtest_mtm_c_migtest_mtm_m (migtest_mtm_m_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_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_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_c on migtest_mtm_m_migtest_mtm_c (migtest_mtm_c_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_ckey_parent_assoc_id on migtest_ckey_parent (assoc_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; + +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/ebean-test/src/test/resources/migrationtest/dbmigration/db2/1.2__dropsFor_1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/db2/1.2__dropsFor_1.1.sql new file mode 100644 index 000000000..f7ff8b135 --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2/1.2__dropsFor_1.1.sql @@ -0,0 +1,14 @@ +-- Migrationscripts for ebean unittest +-- apply changes +alter table migtest_e_basic drop column old_boolean; + +alter table migtest_e_basic drop column old_boolean2; + +alter table migtest_e_basic drop column eref_id; + +alter table migtest_e_history2 drop column obsolete_string1; + +alter table migtest_e_history2 drop column obsolete_string2; + +drop table migtest_e_ref; +drop sequence migtest_e_ref_seq; diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/db2/1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/db2/1.3.sql new file mode 100644 index 000000000..e6dd4b34a --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2/1.3.sql @@ -0,0 +1,67 @@ +-- Migrationscripts for ebean unittest +-- 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; +alter table migtest_fk_none_via_join drop constraint fk_migtest_fk_none_via_join_one_id; +alter table migtest_fk_set_null drop constraint fk_migtest_fk_set_null_one_id; +alter table migtest_fk_set_null add constraint fk_migtest_fk_set_null_one_id foreign key (one_id) references migtest_fk_one (id) on delete set null; +alter table migtest_e_basic drop constraint ck_migtest_e_basic_status; +alter table migtest_e_basic alter column status drop default; +alter table migtest_e_basic alter column status drop not null; +alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I')); + +update migtest_e_basic set status2 = 'N' where status2 is null; +alter table migtest_e_basic drop constraint ck_migtest_e_basic_status2; +alter table migtest_e_basic alter column status2 set data type varchar(1); +alter table migtest_e_basic alter column status2 set default 'N'; +alter table migtest_e_basic alter column status2 set not null; +alter table migtest_e_basic add constraint ck_migtest_e_basic_status2 check ( status2 in ('N','A','I')); +alter table migtest_e_basic drop constraint uq_migtest_e_basic_description; + +update migtest_e_basic set user_id = 23 where user_id is null; +alter table migtest_e_basic drop constraint fk_migtest_e_basic_user_id; +alter table migtest_e_basic alter column user_id set default 23; +alter table migtest_e_basic alter column user_id set not null; +alter table migtest_e_basic add column old_boolean boolean default false not null; +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; +create unique index uq_migtest_e_basic_indextest2 on migtest_e_basic(indextest2) exclude null keys; +create unique index uq_migtest_e_basic_indextest6 on migtest_e_basic(indextest6) exclude null keys; +alter table migtest_e_enum drop constraint ck_migtest_e_enum_test_status; +alter table migtest_e_enum add constraint ck_migtest_e_enum_test_status check ( test_status in ('N','A','I')); +comment on column migtest_e_history.test_string is ''; +comment on table migtest_e_history is ''; +alter table migtest_e_history2 alter column test_string drop default; +alter table migtest_e_history2 alter column test_string drop not null; +alter table migtest_e_history2 add column obsolete_string1 varchar(255); +alter table migtest_e_history2 add column obsolete_string2 varchar(255); + +alter table migtest_e_history4 alter column test_number set data type integer; +alter table migtest_e_history6 alter column test_number1 drop default; +alter table migtest_e_history6 alter column test_number1 drop not null; + +-- NOTE: table has @History - special migration may be necessary +update migtest_e_history6 set test_number2 = 7 where test_number2 is null; +alter table migtest_e_history6 alter column test_number2 set default 7; +alter table migtest_e_history6 alter column test_number2 set not null; +create index ix_migtest_e_basic_indextest1 on migtest_e_basic (indextest1); +create index ix_migtest_e_basic_indextest5 on migtest_e_basic (indextest5); +drop index ix_migtest_e_basic_indextest3; +drop index ix_migtest_e_basic_indextest6; +create index ix_migtest_e_basic_eref_id on migtest_e_basic (eref_id); +alter table migtest_e_basic add constraint fk_migtest_e_basic_eref_id foreign key (eref_id) references migtest_e_ref (id) on delete restrict; + diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/db2/1.4__dropsFor_1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/db2/1.4__dropsFor_1.3.sql new file mode 100644 index 000000000..038f64f6a --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2/1.4__dropsFor_1.3.sql @@ -0,0 +1,34 @@ +-- 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; + +alter table migtest_e_basic drop column new_boolean_field2; + +alter table migtest_e_basic drop column progress; + +alter table migtest_e_basic drop column new_integer; + +alter table migtest_e_history2 drop column test_string2; + +alter table migtest_e_history2 drop column test_string3; + +alter table migtest_e_history2 drop column new_column; + +alter table migtest_e_history5 drop column test_boolean; + +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/ebean-test/src/test/resources/migrationtest/dbmigration/db2/R__order_views.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/db2/R__order_views.sql new file mode 100644 index 000000000..ccf30a2c6 --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2/R__order_views.sql @@ -0,0 +1,7 @@ + + create or replace view order_agg_vw as + select d.order_id, sum(d.order_qty * d.unit_price) as order_total, + sum(d.ship_qty * d.unit_price) as ship_total + from o_order_detail d + group by d.order_id + \ No newline at end of file diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/db2/idx_db2.migrations b/ebean-test/src/test/resources/migrationtest/dbmigration/db2/idx_db2.migrations new file mode 100644 index 000000000..b872100d4 --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2/idx_db2.migrations @@ -0,0 +1,7 @@ +1580812656, 1.0__initial.sql +1011854984, 1.1.sql +578073685, 1.2__dropsFor_1.1.sql +-1206650320, 1.3.sql +-1475628451, 1.4__dropsFor_1.3.sql +561281075, R__order_views.sql + diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/generic/1.0__initial.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/generic/1.0__initial.sql new file mode 100644 index 000000000..b8b1952df --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/generic/1.0__initial.sql @@ -0,0 +1,174 @@ +-- 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 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, + constraint pk_migtest_fk_cascade primary key (id) +); + +create table migtest_fk_cascade_one ( + id bigint auto_increment not null, + constraint pk_migtest_fk_cascade_one primary key (id) +); + +create table migtest_fk_none ( + id bigint auto_increment not null, + one_id bigint, + constraint pk_migtest_fk_none primary key (id) +); + +create table migtest_fk_none_via_join ( + id bigint auto_increment not null, + one_id bigint, + constraint pk_migtest_fk_none_via_join primary key (id) +); + +create table migtest_fk_one ( + id bigint auto_increment not null, + constraint pk_migtest_fk_one primary key (id) +); + +create table migtest_fk_set_null ( + id bigint auto_increment not null, + one_id bigint, + constraint pk_migtest_fk_set_null primary key (id) +); + +create table migtest_e_basic ( + id integer auto_increment not null, + status varchar(1), + status2 varchar(1) default 'N' not null, + name varchar(127), + description varchar(127), + some_date timestamp, + old_boolean boolean default false not null, + old_boolean2 boolean, + eref_id integer, + indextest1 varchar(127), + indextest2 varchar(127), + indextest3 varchar(127), + indextest4 varchar(127), + indextest5 varchar(127), + indextest6 varchar(127), + user_id integer not null, + constraint ck_migtest_e_basic_status check ( status in ('N','A','I')), + constraint ck_migtest_e_basic_status2 check ( status2 in ('N','A','I')), + constraint uq_migtest_e_basic_indextest2 unique (indextest2), + constraint uq_migtest_e_basic_indextest6 unique (indextest6), + constraint pk_migtest_e_basic primary key (id) +); + +create table migtest_e_enum ( + id integer auto_increment not null, + test_status varchar(1), + constraint ck_migtest_e_enum_test_status check ( test_status in ('N','A','I')), + constraint pk_migtest_e_enum primary key (id) +); + +create table migtest_e_history ( + id integer auto_increment not null, + test_string varchar(255), + constraint pk_migtest_e_history primary key (id) +); + +create table migtest_e_history2 ( + id integer auto_increment not null, + test_string varchar(255), + obsolete_string1 varchar(255), + obsolete_string2 varchar(255), + constraint pk_migtest_e_history2 primary key (id) +); + +create table migtest_e_history3 ( + id integer auto_increment not null, + test_string varchar(255), + constraint pk_migtest_e_history3 primary key (id) +); + +create table migtest_e_history4 ( + id integer auto_increment not null, + test_number integer, + constraint pk_migtest_e_history4 primary key (id) +); + +create table migtest_e_history5 ( + id integer auto_increment not null, + test_number integer, + constraint pk_migtest_e_history5 primary key (id) +); + +create table migtest_e_history6 ( + id integer auto_increment not null, + test_number1 integer, + test_number2 integer not null, + constraint pk_migtest_e_history6 primary key (id) +); + +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) +); + +create table migtest_e_softdelete ( + id integer auto_increment not null, + test_string varchar(255), + 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); +create index ix_migtest_fk_cascade_one_id on 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 restrict; + +create index ix_migtest_fk_set_null_one_id on migtest_fk_set_null (one_id); +alter table migtest_fk_set_null add constraint fk_migtest_fk_set_null_one_id foreign key (one_id) references migtest_fk_one (id) on delete set null on update restrict; + +create index ix_migtest_e_basic_eref_id on migtest_e_basic (eref_id); +alter table migtest_e_basic add constraint fk_migtest_e_basic_eref_id foreign key (eref_id) references migtest_e_ref (id) on delete restrict on update restrict; + diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/generic/1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/generic/1.1.sql new file mode 100644 index 000000000..dbbe731ba --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/generic/1.1.sql @@ -0,0 +1,110 @@ +-- Migrationscripts for ebean unittest +-- apply changes +create table migtest_e_user ( + id integer auto_increment not null, + 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; +alter table migtest_fk_none_via_join add constraint fk_migtest_fk_none_via_join_one_id foreign key (one_id) references migtest_fk_one (id) on delete restrict on update restrict; +alter table migtest_fk_set_null drop constraint if exists fk_migtest_fk_set_null_one_id; +alter table migtest_fk_set_null add constraint fk_migtest_fk_set_null_one_id foreign key (one_id) references migtest_fk_one (id) on delete restrict on update restrict; + +update migtest_e_basic set status = 'A' where status is null; +alter table migtest_e_basic drop constraint if exists ck_migtest_e_basic_status; +alter table migtest_e_basic alter column status set default 'A'; +alter table migtest_e_basic alter column status set not null; +alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I','?')); +alter table migtest_e_basic drop constraint if exists ck_migtest_e_basic_status2; +alter table migtest_e_basic alter column status2 varchar(127); +alter table migtest_e_basic alter column status2 drop default; +alter table migtest_e_basic alter column status2 set null; + +-- rename all collisions; +alter table migtest_e_basic add constraint uq_migtest_e_basic_description unique (description); + +insert into migtest_e_user (id) select distinct user_id from migtest_e_basic; +alter table migtest_e_basic add constraint fk_migtest_e_basic_user_id foreign key (user_id) references migtest_e_user (id) on delete restrict on update restrict; +alter table migtest_e_basic alter column user_id set null; +alter table migtest_e_basic add column new_string_field varchar(255) default 'foo''bar' not null; +alter table migtest_e_basic add column new_boolean_field boolean default true not null; +update migtest_e_basic set new_boolean_field = old_boolean; + +alter table migtest_e_basic add column new_boolean_field2 boolean default true not null; +alter table migtest_e_basic add column progress integer default 0 not null; +alter table migtest_e_basic add constraint ck_migtest_e_basic_progress check ( progress in (0,1,2)); +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); +alter table migtest_e_enum drop constraint if exists ck_migtest_e_enum_test_status; +comment on column migtest_e_history.test_string is 'Column altered to long now'; +alter table migtest_e_history alter column test_string bigint; +comment on table migtest_e_history is 'We have history now'; + +-- NOTE: table has @History - special migration may be necessary +update migtest_e_history2 set test_string = 'unknown' where test_string is null; +alter table migtest_e_history2 alter column test_string set default 'unknown'; +alter table migtest_e_history2 alter column test_string set not null; +alter table migtest_e_history2 add column test_string2 varchar(255); +alter table migtest_e_history2 add column test_string3 varchar(255) default 'unknown' not null; +alter table migtest_e_history2 add column new_column varchar(20); + +alter table migtest_e_history4 alter column test_number bigint; +alter table migtest_e_history5 add column test_boolean boolean default false not null; + + +-- NOTE: table has @History - special migration may be necessary +update migtest_e_history6 set test_number1 = 42 where test_number1 is null; +alter table migtest_e_history6 alter column test_number1 set default 42; +alter table migtest_e_history6 alter column test_number1 set not null; +alter table migtest_e_history6 alter column test_number2 set null; +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; +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_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_m on migtest_mtm_c_migtest_mtm_m (migtest_mtm_m_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_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_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_c on migtest_mtm_m_migtest_mtm_c (migtest_mtm_c_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_ckey_parent_assoc_id on migtest_ckey_parent (assoc_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; + +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/ebean-test/src/test/resources/migrationtest/dbmigration/generic/1.2__dropsFor_1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/generic/1.2__dropsFor_1.1.sql new file mode 100644 index 000000000..3f8f468ba --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/generic/1.2__dropsFor_1.1.sql @@ -0,0 +1,13 @@ +-- Migrationscripts for ebean unittest +-- apply changes +alter table migtest_e_basic drop column old_boolean; + +alter table migtest_e_basic drop column old_boolean2; + +alter table migtest_e_basic drop column eref_id; + +alter table migtest_e_history2 drop column obsolete_string1; + +alter table migtest_e_history2 drop column obsolete_string2; + +drop table if exists migtest_e_ref; diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/generic/1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/generic/1.3.sql new file mode 100644 index 000000000..8e3122e17 --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/generic/1.3.sql @@ -0,0 +1,67 @@ +-- Migrationscripts for ebean unittest +-- 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 restrict; +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; +alter table migtest_fk_set_null drop constraint if exists fk_migtest_fk_set_null_one_id; +alter table migtest_fk_set_null add constraint fk_migtest_fk_set_null_one_id foreign key (one_id) references migtest_fk_one (id) on delete set null on update restrict; +alter table migtest_e_basic drop constraint if exists ck_migtest_e_basic_status; +alter table migtest_e_basic alter column status drop default; +alter table migtest_e_basic alter column status set null; +alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I')); + +update migtest_e_basic set status2 = 'N' where status2 is null; +alter table migtest_e_basic drop constraint if exists ck_migtest_e_basic_status2; +alter table migtest_e_basic alter column status2 varchar(1); +alter table migtest_e_basic alter column status2 set default 'N'; +alter table migtest_e_basic alter column status2 set not null; +alter table migtest_e_basic add constraint ck_migtest_e_basic_status2 check ( status2 in ('N','A','I')); +alter table migtest_e_basic drop constraint uq_migtest_e_basic_description; + +update migtest_e_basic set user_id = 23 where user_id is null; +alter table migtest_e_basic drop constraint if exists fk_migtest_e_basic_user_id; +alter table migtest_e_basic alter column user_id set default 23; +alter table migtest_e_basic alter column user_id set not null; +alter table migtest_e_basic add column old_boolean boolean default false not null; +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; +alter table migtest_e_basic add constraint uq_migtest_e_basic_indextest2 unique (indextest2); +alter table migtest_e_basic add constraint uq_migtest_e_basic_indextest6 unique (indextest6); +alter table migtest_e_enum drop constraint if exists ck_migtest_e_enum_test_status; +alter table migtest_e_enum add constraint ck_migtest_e_enum_test_status check ( test_status in ('N','A','I')); +comment on column migtest_e_history.test_string is ''; +comment on table migtest_e_history is ''; +alter table migtest_e_history2 alter column test_string drop default; +alter table migtest_e_history2 alter column test_string set null; +alter table migtest_e_history2 add column obsolete_string1 varchar(255); +alter table migtest_e_history2 add column obsolete_string2 varchar(255); + +alter table migtest_e_history4 alter column test_number integer; +alter table migtest_e_history6 alter column test_number1 drop default; +alter table migtest_e_history6 alter column test_number1 set null; + +-- NOTE: table has @History - special migration may be necessary +update migtest_e_history6 set test_number2 = 7 where test_number2 is null; +alter table migtest_e_history6 alter column test_number2 set default 7; +alter table migtest_e_history6 alter column test_number2 set not null; +create index ix_migtest_e_basic_indextest1 on migtest_e_basic (indextest1); +create index ix_migtest_e_basic_indextest5 on migtest_e_basic (indextest5); +drop index if exists ix_migtest_e_basic_indextest3; +drop index if exists ix_migtest_e_basic_indextest6; +create index ix_migtest_e_basic_eref_id on migtest_e_basic (eref_id); +alter table migtest_e_basic add constraint fk_migtest_e_basic_eref_id foreign key (eref_id) references migtest_e_ref (id) on delete restrict on update restrict; + diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/generic/1.4__dropsFor_1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/generic/1.4__dropsFor_1.3.sql new file mode 100644 index 000000000..24e4e93ba --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/generic/1.4__dropsFor_1.3.sql @@ -0,0 +1,33 @@ +-- 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; + +alter table migtest_e_basic drop column new_boolean_field2; + +alter table migtest_e_basic drop column progress; + +alter table migtest_e_basic drop column new_integer; + +alter table migtest_e_history2 drop column test_string2; + +alter table migtest_e_history2 drop column test_string3; + +alter table migtest_e_history2 drop column new_column; + +alter table migtest_e_history5 drop column test_boolean; + +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/ebean-test/src/test/resources/migrationtest/dbmigration/generic/idx_generic.migrations b/ebean-test/src/test/resources/migrationtest/dbmigration/generic/idx_generic.migrations new file mode 100644 index 000000000..dceb0bc58 --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/generic/idx_generic.migrations @@ -0,0 +1,6 @@ +-1827577042, 1.0__initial.sql +350584020, 1.1.sql +1359055889, 1.2__dropsFor_1.1.sql +297569863, 1.3.sql +-1070218324, 1.4__dropsFor_1.3.sql + diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/h2/1.0__initial.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/h2/1.0__initial.sql new file mode 100644 index 000000000..1e2a4095f --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/h2/1.0__initial.sql @@ -0,0 +1,232 @@ +-- 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, + constraint pk_migtest_fk_cascade primary key (id) +); + +create table migtest_fk_cascade_one ( + id bigint generated by default as identity not null, + constraint pk_migtest_fk_cascade_one primary key (id) +); + +create table migtest_fk_none ( + id bigint generated by default as identity not null, + one_id bigint, + constraint pk_migtest_fk_none primary key (id) +); + +create table migtest_fk_none_via_join ( + id bigint generated by default as identity not null, + one_id bigint, + constraint pk_migtest_fk_none_via_join primary key (id) +); + +create table migtest_fk_one ( + id bigint generated by default as identity not null, + constraint pk_migtest_fk_one primary key (id) +); + +create table migtest_fk_set_null ( + id bigint generated by default as identity not null, + one_id bigint, + constraint pk_migtest_fk_set_null primary key (id) +); + +create table migtest_e_basic ( + id integer generated by default as identity not null, + status varchar(1), + status2 varchar(1) default 'N' not null, + name varchar(127), + description varchar(127), + some_date timestamp, + old_boolean boolean default false not null, + old_boolean2 boolean, + eref_id integer, + indextest1 varchar(127), + indextest2 varchar(127), + indextest3 varchar(127), + indextest4 varchar(127), + indextest5 varchar(127), + indextest6 varchar(127), + user_id integer not null, + constraint ck_migtest_e_basic_status check ( status in ('N','A','I')), + constraint ck_migtest_e_basic_status2 check ( status2 in ('N','A','I')), + constraint uq_migtest_e_basic_indextest2 unique (indextest2), + constraint uq_migtest_e_basic_indextest6 unique (indextest6), + constraint pk_migtest_e_basic primary key (id) +); + +create table migtest_e_enum ( + id integer generated by default as identity not null, + test_status varchar(1), + constraint ck_migtest_e_enum_test_status check ( test_status in ('N','A','I')), + constraint pk_migtest_e_enum primary key (id) +); + +create table migtest_e_history ( + id integer generated by default as identity not null, + test_string varchar(255), + constraint pk_migtest_e_history primary key (id) +); + +create table migtest_e_history2 ( + id integer generated by default as identity not null, + test_string varchar(255), + obsolete_string1 varchar(255), + obsolete_string2 varchar(255), + constraint pk_migtest_e_history2 primary key (id) +); + +create table migtest_e_history3 ( + id integer generated by default as identity not null, + test_string varchar(255), + constraint pk_migtest_e_history3 primary key (id) +); + +create table migtest_e_history4 ( + id integer generated by default as identity not null, + test_number integer, + constraint pk_migtest_e_history4 primary key (id) +); + +create table migtest_e_history5 ( + id integer generated by default as identity not null, + test_number integer, + constraint pk_migtest_e_history5 primary key (id) +); + +create table migtest_e_history6 ( + id integer generated by default as identity not null, + test_number1 integer, + test_number2 integer not null, + constraint pk_migtest_e_history6 primary key (id) +); + +create table migtest_e_ref ( + id integer generated by default as identity not null, + name varchar(127) not null, + constraint uq_migtest_e_ref_name unique (name), + constraint pk_migtest_e_ref primary key (id) +); + +create table migtest_e_softdelete ( + id integer generated by default as identity not null, + test_string varchar(255), + 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); +create index ix_migtest_fk_cascade_one_id on 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 restrict; + +create index ix_migtest_fk_set_null_one_id on migtest_fk_set_null (one_id); +alter table migtest_fk_set_null add constraint fk_migtest_fk_set_null_one_id foreign key (one_id) references migtest_fk_one (id) on delete set null on update restrict; + +create index ix_migtest_e_basic_eref_id on migtest_e_basic (eref_id); +alter table migtest_e_basic add constraint fk_migtest_e_basic_eref_id foreign key (eref_id) references migtest_e_ref (id) on delete restrict on update restrict; + +alter table migtest_e_history2 add column sys_period_start timestamp default now(); +alter table migtest_e_history2 add column sys_period_end timestamp; +create table migtest_e_history2_history( + id integer, + test_string varchar(255), + obsolete_string1 varchar(255), + obsolete_string2 varchar(255), + sys_period_start timestamp, + sys_period_end timestamp +); +create view migtest_e_history2_with_history as select * from migtest_e_history2 union all select * from migtest_e_history2_history; + +alter table migtest_e_history3 add column sys_period_start timestamp default now(); +alter table migtest_e_history3 add column sys_period_end timestamp; +create table migtest_e_history3_history( + id integer, + test_string varchar(255), + sys_period_start timestamp, + sys_period_end timestamp +); +create view migtest_e_history3_with_history as select * from migtest_e_history3 union all select * from migtest_e_history3_history; + +alter table migtest_e_history4 add column sys_period_start timestamp default now(); +alter table migtest_e_history4 add column sys_period_end timestamp; +create table migtest_e_history4_history( + id integer, + test_number integer, + sys_period_start timestamp, + sys_period_end timestamp +); +create view migtest_e_history4_with_history as select * from migtest_e_history4 union all select * from migtest_e_history4_history; + +alter table migtest_e_history5 add column sys_period_start timestamp default now(); +alter table migtest_e_history5 add column sys_period_end timestamp; +create table migtest_e_history5_history( + id integer, + test_number integer, + sys_period_start timestamp, + sys_period_end timestamp +); +create view migtest_e_history5_with_history as select * from migtest_e_history5 union all select * from migtest_e_history5_history; + +alter table migtest_e_history6 add column sys_period_start timestamp default now(); +alter table migtest_e_history6 add column sys_period_end timestamp; +create table migtest_e_history6_history( + id integer, + test_number1 integer, + test_number2 integer, + sys_period_start timestamp, + sys_period_end timestamp +); +create view migtest_e_history6_with_history as select * from migtest_e_history6 union all select * from migtest_e_history6_history; + +create trigger migtest_e_history2_history_upd before update,delete on migtest_e_history2 for each row call "io.ebean.config.dbplatform.h2.H2HistoryTrigger"; +create trigger migtest_e_history3_history_upd before update,delete on migtest_e_history3 for each row call "io.ebean.config.dbplatform.h2.H2HistoryTrigger"; +create trigger migtest_e_history4_history_upd before update,delete on migtest_e_history4 for each row call "io.ebean.config.dbplatform.h2.H2HistoryTrigger"; +create trigger migtest_e_history5_history_upd before update,delete on migtest_e_history5 for each row call "io.ebean.config.dbplatform.h2.H2HistoryTrigger"; +create trigger migtest_e_history6_history_upd before update,delete on migtest_e_history6 for each row call "io.ebean.config.dbplatform.h2.H2HistoryTrigger"; diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/h2/1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/h2/1.1.sql new file mode 100644 index 000000000..b51d15d2e --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/h2/1.1.sql @@ -0,0 +1,152 @@ +-- Migrationscripts for ebean unittest +-- drop dependencies +drop view if exists migtest_e_history2_with_history; +drop view if exists migtest_e_history3_with_history; +drop view if exists migtest_e_history4_with_history; +drop view if exists migtest_e_history5_with_history; + +-- apply changes +create table migtest_e_user ( + id integer generated by default as identity not null, + 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; +alter table migtest_fk_none_via_join add constraint fk_migtest_fk_none_via_join_one_id foreign key (one_id) references migtest_fk_one (id) on delete restrict on update restrict; +alter table migtest_fk_set_null drop constraint if exists fk_migtest_fk_set_null_one_id; +alter table migtest_fk_set_null add constraint fk_migtest_fk_set_null_one_id foreign key (one_id) references migtest_fk_one (id) on delete restrict on update restrict; + +update migtest_e_basic set status = 'A' where status is null; +alter table migtest_e_basic drop constraint if exists ck_migtest_e_basic_status; +alter table migtest_e_basic alter column status set default 'A'; +alter table migtest_e_basic alter column status set not null; +alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I','?')); +alter table migtest_e_basic drop constraint if exists ck_migtest_e_basic_status2; +alter table migtest_e_basic alter column status2 varchar(127); +alter table migtest_e_basic alter column status2 drop default; +alter table migtest_e_basic alter column status2 set null; + +-- rename all collisions; +alter table migtest_e_basic add constraint uq_migtest_e_basic_description unique (description); + +insert into migtest_e_user (id) select distinct user_id from migtest_e_basic; +alter table migtest_e_basic add constraint fk_migtest_e_basic_user_id foreign key (user_id) references migtest_e_user (id) on delete restrict on update restrict; +alter table migtest_e_basic alter column user_id set null; +alter table migtest_e_basic add column new_string_field varchar(255) default 'foo''bar' not null; +alter table migtest_e_basic add column new_boolean_field boolean default true not null; +update migtest_e_basic set new_boolean_field = old_boolean; + +alter table migtest_e_basic add column new_boolean_field2 boolean default true not null; +alter table migtest_e_basic add column progress integer default 0 not null; +alter table migtest_e_basic add constraint ck_migtest_e_basic_progress check ( progress in (0,1,2)); +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); +alter table migtest_e_enum drop constraint if exists ck_migtest_e_enum_test_status; +comment on column migtest_e_history.test_string is 'Column altered to long now'; +alter table migtest_e_history alter column test_string bigint; +comment on table migtest_e_history is 'We have history now'; + +-- NOTE: table has @History - special migration may be necessary +update migtest_e_history2 set test_string = 'unknown' where test_string is null; +alter table migtest_e_history2 alter column test_string set default 'unknown'; +alter table migtest_e_history2 alter column test_string set not null; +alter table migtest_e_history2 add column test_string2 varchar(255); +alter table migtest_e_history2 add column test_string3 varchar(255) default 'unknown' not null; +alter table migtest_e_history2 add column new_column varchar(20); +alter table migtest_e_history2_history add column test_string2 varchar(255); +alter table migtest_e_history2_history add column test_string3 varchar(255) default 'unknown'; +alter table migtest_e_history2_history add column new_column varchar(20); + +alter table migtest_e_history4 alter column test_number bigint; +alter table migtest_e_history4_history alter column test_number bigint; +alter table migtest_e_history5 add column test_boolean boolean default false not null; +alter table migtest_e_history5_history add column test_boolean boolean default false; + + +-- NOTE: table has @History - special migration may be necessary +update migtest_e_history6 set test_number1 = 42 where test_number1 is null; +alter table migtest_e_history6 alter column test_number1 set default 42; +alter table migtest_e_history6 alter column test_number1 set not null; +alter table migtest_e_history6 alter column test_number2 set null; +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; +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_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_m on migtest_mtm_c_migtest_mtm_m (migtest_mtm_m_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_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_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_c on migtest_mtm_m_migtest_mtm_c (migtest_mtm_c_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_ckey_parent_assoc_id on migtest_ckey_parent (assoc_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; + +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 timestamp default now(); +alter table migtest_e_history add column sys_period_end timestamp; +create table migtest_e_history_history( + id integer, + test_string bigint, + sys_period_start timestamp, + sys_period_end timestamp +); +create view migtest_e_history_with_history as select * from migtest_e_history union all select * from migtest_e_history_history; + +create view migtest_e_history2_with_history as select * from migtest_e_history2 union all select * from migtest_e_history2_history; + +create view migtest_e_history3_with_history as select * from migtest_e_history3 union all select * from migtest_e_history3_history; + +create view migtest_e_history4_with_history as select * from migtest_e_history4 union all select * from migtest_e_history4_history; + +create view migtest_e_history5_with_history as select * from migtest_e_history5 union all select * from migtest_e_history5_history; + +create trigger migtest_e_history_history_upd before update,delete on migtest_e_history for each row call "io.ebean.config.dbplatform.h2.H2HistoryTrigger"; +-- changes: [add test_string2, add test_string3, add new_column] +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"; +-- changes: [exclude test_string] +drop trigger migtest_e_history3_history_upd; +create trigger migtest_e_history3_history_upd before update,delete on migtest_e_history3 for each row call "io.ebean.config.dbplatform.h2.H2HistoryTrigger"; +-- changes: [alter test_number] +drop trigger migtest_e_history4_history_upd; +create trigger migtest_e_history4_history_upd before update,delete on migtest_e_history4 for each row call "io.ebean.config.dbplatform.h2.H2HistoryTrigger"; +-- changes: [add test_boolean] +drop trigger migtest_e_history5_history_upd; +create trigger migtest_e_history5_history_upd before update,delete on migtest_e_history5 for each row call "io.ebean.config.dbplatform.h2.H2HistoryTrigger"; diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/h2/1.2__dropsFor_1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/h2/1.2__dropsFor_1.1.sql new file mode 100644 index 000000000..dea5dde03 --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/h2/1.2__dropsFor_1.1.sql @@ -0,0 +1,24 @@ +-- Migrationscripts for ebean unittest +-- drop dependencies +drop view if exists migtest_e_history2_with_history; + +-- apply changes +alter table migtest_e_basic drop column old_boolean; + +alter table migtest_e_basic drop column old_boolean2; + +alter table migtest_e_basic drop column eref_id; + +alter table migtest_e_history2 drop column obsolete_string1; +alter table migtest_e_history2_history drop column obsolete_string1; + +alter table migtest_e_history2 drop column obsolete_string2; +alter table migtest_e_history2_history drop column obsolete_string2; + +drop table if exists migtest_e_ref; +drop sequence if exists migtest_e_ref_seq; +create view migtest_e_history2_with_history as select * from migtest_e_history2 union all select * from migtest_e_history2_history; + +-- changes: [drop obsolete_string1, drop obsolete_string2] +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/ebean-test/src/test/resources/migrationtest/dbmigration/h2/1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/h2/1.3.sql new file mode 100644 index 000000000..a1d6ccad1 --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/h2/1.3.sql @@ -0,0 +1,90 @@ +-- Migrationscripts for ebean unittest +-- drop dependencies +drop view if exists migtest_e_history2_with_history; +drop view if exists migtest_e_history3_with_history; +drop view if exists migtest_e_history4_with_history; + +-- apply changes +create table migtest_e_ref ( + id integer generated by default as identity 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 restrict; +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; +alter table migtest_fk_set_null drop constraint if exists fk_migtest_fk_set_null_one_id; +alter table migtest_fk_set_null add constraint fk_migtest_fk_set_null_one_id foreign key (one_id) references migtest_fk_one (id) on delete set null on update restrict; +alter table migtest_e_basic drop constraint if exists ck_migtest_e_basic_status; +alter table migtest_e_basic alter column status drop default; +alter table migtest_e_basic alter column status set null; +alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I')); + +update migtest_e_basic set status2 = 'N' where status2 is null; +alter table migtest_e_basic drop constraint if exists ck_migtest_e_basic_status2; +alter table migtest_e_basic alter column status2 varchar(1); +alter table migtest_e_basic alter column status2 set default 'N'; +alter table migtest_e_basic alter column status2 set not null; +alter table migtest_e_basic add constraint ck_migtest_e_basic_status2 check ( status2 in ('N','A','I')); +alter table migtest_e_basic drop constraint uq_migtest_e_basic_description; + +update migtest_e_basic set user_id = 23 where user_id is null; +alter table migtest_e_basic drop constraint if exists fk_migtest_e_basic_user_id; +alter table migtest_e_basic alter column user_id set default 23; +alter table migtest_e_basic alter column user_id set not null; +alter table migtest_e_basic add column old_boolean boolean default false not null; +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; +alter table migtest_e_basic add constraint uq_migtest_e_basic_indextest2 unique (indextest2); +alter table migtest_e_basic add constraint uq_migtest_e_basic_indextest6 unique (indextest6); +alter table migtest_e_enum drop constraint if exists ck_migtest_e_enum_test_status; +alter table migtest_e_enum add constraint ck_migtest_e_enum_test_status check ( test_status in ('N','A','I')); +comment on column migtest_e_history.test_string is ''; +comment on table migtest_e_history is ''; +alter table migtest_e_history2 alter column test_string drop default; +alter table migtest_e_history2 alter column test_string set null; +alter table migtest_e_history2 add column obsolete_string1 varchar(255); +alter table migtest_e_history2 add column obsolete_string2 varchar(255); +alter table migtest_e_history2_history add column obsolete_string1 varchar(255); +alter table migtest_e_history2_history add column obsolete_string2 varchar(255); + +alter table migtest_e_history4 alter column test_number integer; +alter table migtest_e_history4_history alter column test_number integer; +alter table migtest_e_history6 alter column test_number1 drop default; +alter table migtest_e_history6 alter column test_number1 set null; + +-- NOTE: table has @History - special migration may be necessary +update migtest_e_history6 set test_number2 = 7 where test_number2 is null; +alter table migtest_e_history6 alter column test_number2 set default 7; +alter table migtest_e_history6 alter column test_number2 set not null; +create index ix_migtest_e_basic_indextest1 on migtest_e_basic (indextest1); +create index ix_migtest_e_basic_indextest5 on migtest_e_basic (indextest5); +drop index if exists ix_migtest_e_basic_indextest3; +drop index if exists ix_migtest_e_basic_indextest6; +create index ix_migtest_e_basic_eref_id on migtest_e_basic (eref_id); +alter table migtest_e_basic add constraint fk_migtest_e_basic_eref_id foreign key (eref_id) references migtest_e_ref (id) on delete restrict on update restrict; + +create view migtest_e_history2_with_history as select * from migtest_e_history2 union all select * from migtest_e_history2_history; + +create view migtest_e_history3_with_history as select * from migtest_e_history3 union all select * from migtest_e_history3_history; + +create view migtest_e_history4_with_history as select * from migtest_e_history4 union all select * from migtest_e_history4_history; + +-- changes: [add obsolete_string1, add obsolete_string2] +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"; +-- changes: [include test_string] +drop trigger migtest_e_history3_history_upd; +create trigger migtest_e_history3_history_upd before update,delete on migtest_e_history3 for each row call "io.ebean.config.dbplatform.h2.H2HistoryTrigger"; +-- changes: [alter test_number] +drop trigger migtest_e_history4_history_upd; +create trigger migtest_e_history4_history_upd before update,delete on migtest_e_history4 for each row call "io.ebean.config.dbplatform.h2.H2HistoryTrigger"; diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/h2/1.4__dropsFor_1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/h2/1.4__dropsFor_1.3.sql new file mode 100644 index 000000000..1776f5309 --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/h2/1.4__dropsFor_1.3.sql @@ -0,0 +1,58 @@ +-- Migrationscripts for ebean unittest +-- drop dependencies +drop trigger migtest_e_history_history_upd; +drop view migtest_e_history_with_history; +alter table migtest_e_history drop column sys_period_start; +alter table migtest_e_history drop column sys_period_end; +drop table migtest_e_history_history; + +drop view if exists migtest_e_history2_with_history; +drop view if exists migtest_e_history5_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; + +alter table migtest_e_basic drop column new_boolean_field2; + +alter table migtest_e_basic drop column progress; + +alter table migtest_e_basic drop column new_integer; + +alter table migtest_e_history2 drop column test_string2; +alter table migtest_e_history2_history drop column test_string2; + +alter table migtest_e_history2 drop column test_string3; +alter table migtest_e_history2_history drop column test_string3; + +alter table migtest_e_history2 drop column new_column; +alter table migtest_e_history2_history drop column new_column; + +alter table migtest_e_history5 drop column test_boolean; +alter table migtest_e_history5_history drop column test_boolean; + +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; +create view migtest_e_history2_with_history as select * from migtest_e_history2 union all select * from migtest_e_history2_history; + +create view migtest_e_history5_with_history as select * from migtest_e_history5 union all select * from migtest_e_history5_history; + +-- changes: [drop test_string2, drop test_string3, drop new_column] +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"; +-- changes: [drop test_boolean] +drop trigger migtest_e_history5_history_upd; +create trigger migtest_e_history5_history_upd before update,delete on migtest_e_history5 for each row call "io.ebean.config.dbplatform.h2.H2HistoryTrigger"; diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/h2/R__multi_comments.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/h2/R__multi_comments.sql new file mode 100644 index 000000000..0ede0c9eb --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/h2/R__multi_comments.sql @@ -0,0 +1,3 @@ + + -- h2 and postgres script + \ No newline at end of file diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/h2/R__order_views.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/h2/R__order_views.sql new file mode 100644 index 000000000..ccf30a2c6 --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/h2/R__order_views.sql @@ -0,0 +1,7 @@ + + create or replace view order_agg_vw as + select d.order_id, sum(d.order_qty * d.unit_price) as order_total, + sum(d.ship_qty * d.unit_price) as ship_total + from o_order_detail d + group by d.order_id + \ No newline at end of file diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/h2/idx_h2.migrations b/ebean-test/src/test/resources/migrationtest/dbmigration/h2/idx_h2.migrations new file mode 100644 index 000000000..88665985e --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/h2/idx_h2.migrations @@ -0,0 +1,8 @@ +-745768926, 1.0__initial.sql +39858255, 1.1.sql +1616986842, 1.2__dropsFor_1.1.sql +-1513154593, 1.3.sql +374569329, 1.4__dropsFor_1.3.sql +783227075, R__multi_comments.sql +561281075, R__order_views.sql + diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/hana/1.0__initial.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/hana/1.0__initial.sql new file mode 100644 index 000000000..837424e6d --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/hana/1.0__initial.sql @@ -0,0 +1,237 @@ +-- Migrationscripts for ebean unittest +-- apply changes +create column table migtest_ckey_assoc ( + id integer generated by default as identity not null, + assoc_one nvarchar(255), + constraint pk_migtest_ckey_assoc primary key (id) +); + +create column table migtest_ckey_detail ( + id integer generated by default as identity not null, + something nvarchar(255), + constraint pk_migtest_ckey_detail primary key (id) +); + +create column table migtest_ckey_parent ( + one_key integer not null, + two_key nvarchar(127) not null, + name nvarchar(255), + version integer not null, + constraint pk_migtest_ckey_parent primary key (one_key,two_key) +); + +create column table migtest_fk_cascade ( + id bigint generated by default as identity not null, + one_id bigint, + constraint pk_migtest_fk_cascade primary key (id) +); + +create column table migtest_fk_cascade_one ( + id bigint generated by default as identity not null, + constraint pk_migtest_fk_cascade_one primary key (id) +); + +create column table migtest_fk_none ( + id bigint generated by default as identity not null, + one_id bigint, + constraint pk_migtest_fk_none primary key (id) +); + +create column table migtest_fk_none_via_join ( + id bigint generated by default as identity not null, + one_id bigint, + constraint pk_migtest_fk_none_via_join primary key (id) +); + +create column table migtest_fk_one ( + id bigint generated by default as identity not null, + constraint pk_migtest_fk_one primary key (id) +); + +create column table migtest_fk_set_null ( + id bigint generated by default as identity not null, + one_id bigint, + constraint pk_migtest_fk_set_null primary key (id) +); + +create column table migtest_e_basic ( + id integer generated by default as identity not null, + status nvarchar(1), + status2 nvarchar(1) default 'N' not null, + name nvarchar(127), + description nvarchar(127), + some_date timestamp, + old_boolean boolean default false not null, + old_boolean2 boolean, + eref_id integer, + indextest1 nvarchar(127), + indextest2 nvarchar(127), + indextest3 nvarchar(127), + indextest4 nvarchar(127), + indextest5 nvarchar(127), + indextest6 nvarchar(127), + user_id integer not null, + constraint ck_migtest_e_basic_status check ( status in ('N','A','I')), + constraint ck_migtest_e_basic_status2 check ( status2 in ('N','A','I')), + constraint uq_migtest_e_basic_indextest2 unique (indextest2), + constraint uq_migtest_e_basic_indextest6 unique (indextest6), + constraint pk_migtest_e_basic primary key (id) +); + +create column table migtest_e_enum ( + id integer generated by default as identity not null, + test_status nvarchar(1), + constraint ck_migtest_e_enum_test_status check ( test_status in ('N','A','I')), + constraint pk_migtest_e_enum primary key (id) +); + +create column table migtest_e_history ( + id integer generated by default as identity not null, + test_string nvarchar(255), + constraint pk_migtest_e_history primary key (id) +); + +create column table migtest_e_history2 ( + id integer generated by default as identity not null, + test_string nvarchar(255), + obsolete_string1 nvarchar(255), + obsolete_string2 nvarchar(255), + constraint pk_migtest_e_history2 primary key (id) +); + +create column table migtest_e_history3 ( + id integer generated by default as identity not null, + test_string nvarchar(255), + constraint pk_migtest_e_history3 primary key (id) +); + +create column table migtest_e_history4 ( + id integer generated by default as identity not null, + test_number integer, + constraint pk_migtest_e_history4 primary key (id) +); + +create column table migtest_e_history5 ( + id integer generated by default as identity not null, + test_number integer, + constraint pk_migtest_e_history5 primary key (id) +); + +create column table migtest_e_history6 ( + id integer generated by default as identity not null, + test_number1 integer, + test_number2 integer not null, + constraint pk_migtest_e_history6 primary key (id) +); + +create column table migtest_e_ref ( + id integer generated by default as identity not null, + name nvarchar(127) not null, + constraint uq_migtest_e_ref_name unique (name), + constraint pk_migtest_e_ref primary key (id) +); + +create column table migtest_e_softdelete ( + id integer generated by default as identity not null, + test_string nvarchar(255), + constraint pk_migtest_e_softdelete primary key (id) +); + +create column table migtest_mtm_c ( + id integer generated by default as identity not null, + name nvarchar(255), + constraint pk_migtest_mtm_c primary key (id) +); + +create column table migtest_mtm_m ( + id bigint generated by default as identity not null, + name nvarchar(255), + constraint pk_migtest_mtm_m primary key (id) +); + +create column table migtest_oto_child ( + id integer generated by default as identity not null, + name nvarchar(255), + constraint pk_migtest_oto_child primary key (id) +); + +create column table migtest_oto_master ( + id bigint generated by default as identity not null, + name nvarchar(255), + constraint pk_migtest_oto_master primary key (id) +); + +-- explicit index "ix_migtest_e_basic_indextest1" for single column "indextest1" of table "migtest_e_basic" is not necessary; +-- explicit index "ix_migtest_e_basic_indextest5" for single column "indextest5" of table "migtest_e_basic" is not necessary; +-- explicit index "ix_migtest_fk_cascade_one_id" for single column "one_id" of table "migtest_fk_cascade" is not necessary; +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 restrict; + +-- explicit index "ix_migtest_fk_set_null_one_id" for single column "one_id" of table "migtest_fk_set_null" is not necessary; +alter table migtest_fk_set_null add constraint fk_migtest_fk_set_null_one_id foreign key (one_id) references migtest_fk_one (id) on delete set null on update restrict; + +-- explicit index "ix_migtest_e_basic_eref_id" for single column "eref_id" of table "migtest_e_basic" is not necessary; +alter table migtest_e_basic add constraint fk_migtest_e_basic_eref_id foreign key (eref_id) references migtest_e_ref (id) on delete restrict on update restrict; + +create column table migtest_e_history2_history ( + id integer, + test_string nvarchar(255), + obsolete_string1 nvarchar(255), + obsolete_string2 nvarchar(255), + sys_period_start timestamp, + sys_period_end timestamp +); +alter table migtest_e_history2 add ( + sys_period_start TIMESTAMP NOT NULL GENERATED ALWAYS AS ROW START, + sys_period_end TIMESTAMP NOT NULL GENERATED ALWAYS AS ROW END +); +alter table migtest_e_history2 add period for system_time(sys_period_start,sys_period_end); +alter table migtest_e_history2 add system versioning history table migtest_e_history2_history; +create column table migtest_e_history3_history ( + id integer, + test_string nvarchar(255), + sys_period_start timestamp, + sys_period_end timestamp +); +alter table migtest_e_history3 add ( + sys_period_start TIMESTAMP NOT NULL GENERATED ALWAYS AS ROW START, + sys_period_end TIMESTAMP NOT NULL GENERATED ALWAYS AS ROW END +); +alter table migtest_e_history3 add period for system_time(sys_period_start,sys_period_end); +alter table migtest_e_history3 add system versioning history table migtest_e_history3_history; +create column table migtest_e_history4_history ( + id integer, + test_number integer, + sys_period_start timestamp, + sys_period_end timestamp +); +alter table migtest_e_history4 add ( + sys_period_start TIMESTAMP NOT NULL GENERATED ALWAYS AS ROW START, + sys_period_end TIMESTAMP NOT NULL GENERATED ALWAYS AS ROW END +); +alter table migtest_e_history4 add period for system_time(sys_period_start,sys_period_end); +alter table migtest_e_history4 add system versioning history table migtest_e_history4_history; +create column table migtest_e_history5_history ( + id integer, + test_number integer, + sys_period_start timestamp, + sys_period_end timestamp +); +alter table migtest_e_history5 add ( + sys_period_start TIMESTAMP NOT NULL GENERATED ALWAYS AS ROW START, + sys_period_end TIMESTAMP NOT NULL GENERATED ALWAYS AS ROW END +); +alter table migtest_e_history5 add period for system_time(sys_period_start,sys_period_end); +alter table migtest_e_history5 add system versioning history table migtest_e_history5_history; +create column table migtest_e_history6_history ( + id integer, + test_number1 integer, + test_number2 integer not null, + sys_period_start timestamp, + sys_period_end timestamp +); +alter table migtest_e_history6 add ( + sys_period_start TIMESTAMP NOT NULL GENERATED ALWAYS AS ROW START, + sys_period_end TIMESTAMP NOT NULL GENERATED ALWAYS AS ROW END +); +alter table migtest_e_history6 add period for system_time(sys_period_start,sys_period_end); +alter table migtest_e_history6 add system versioning history table migtest_e_history6_history; diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/hana/1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/hana/1.1.sql new file mode 100644 index 000000000..7f92f6534 --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/hana/1.1.sql @@ -0,0 +1,181 @@ +-- Migrationscripts for ebean unittest +-- apply changes +create column table migtest_e_user ( + id integer generated by default as identity not null, + constraint pk_migtest_e_user primary key (id) +); + +create column 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 column 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 ( one_key integer); +alter table migtest_ckey_detail add ( two_key nvarchar(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 ( 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 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; +alter table migtest_fk_none_via_join add constraint fk_migtest_fk_none_via_join_one_id foreign key (one_id) references migtest_fk_one (id) on delete restrict on update restrict; +alter table migtest_fk_set_null drop constraint fk_migtest_fk_set_null_one_id; +alter table migtest_fk_set_null add constraint fk_migtest_fk_set_null_one_id foreign key (one_id) references migtest_fk_one (id) on delete restrict on update restrict; + +update migtest_e_basic set status = 'A' where status is null; +delimiter $$ +do +begin +declare exit handler for sql_error_code 397 begin end; +exec 'alter table migtest_e_basic drop constraint ck_migtest_e_basic_status'; +end; +$$; +alter table migtest_e_basic alter ( status nvarchar(1) default 'A' not null); +alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I','?')); +delimiter $$ +do +begin +declare exit handler for sql_error_code 397 begin end; +exec 'alter table migtest_e_basic drop constraint ck_migtest_e_basic_status2'; +end; +$$; +alter table migtest_e_basic alter ( status2 nvarchar(127) default null); + +-- rename all collisions; +-- cannot create unique index "uq_migtest_e_basic_description" on table "migtest_e_basic" with nullable columns; + +insert into migtest_e_user (id) select distinct user_id from migtest_e_basic; +alter table migtest_e_basic add constraint fk_migtest_e_basic_user_id foreign key (user_id) references migtest_e_user (id) on delete restrict on update restrict; +alter table migtest_e_basic alter ( user_id integer); +alter table migtest_e_basic add ( new_string_field nvarchar(255) default 'foo''bar' not null); +alter table migtest_e_basic add ( new_boolean_field boolean default true not null); +update migtest_e_basic set new_boolean_field = old_boolean; + +alter table migtest_e_basic add ( new_boolean_field2 boolean default true not null); +alter table migtest_e_basic add ( progress integer default 0 not null); +alter table migtest_e_basic add constraint ck_migtest_e_basic_progress check ( progress in (0,1,2)); +alter table migtest_e_basic add ( new_integer integer default 42 not null); + +delimiter $$ +do +begin +declare exit handler for sql_error_code 397 begin end; +exec 'alter table migtest_e_basic drop constraint uq_migtest_e_basic_indextest2'; +end; +$$; +delimiter $$ +do +begin +declare exit handler for sql_error_code 397 begin end; +exec 'alter table migtest_e_basic drop constraint uq_migtest_e_basic_indextest6'; +end; +$$; +-- cannot create unique index "uq_migtest_e_basic_status_indextest1" on table "migtest_e_basic" with nullable columns; +-- cannot create unique index "uq_migtest_e_basic_name" on table "migtest_e_basic" with nullable columns; +-- cannot create unique index "uq_migtest_e_basic_indextest4" on table "migtest_e_basic" with nullable columns; +-- cannot create unique index "uq_migtest_e_basic_indextest5" on table "migtest_e_basic" with nullable columns; +delimiter $$ +do +begin +declare exit handler for sql_error_code 397 begin end; +exec 'alter table migtest_e_enum drop constraint ck_migtest_e_enum_test_status'; +end; +$$; +comment on column migtest_e_history.test_string is 'Column altered to long now'; +alter table migtest_e_history alter ( test_string bigint); +comment on table migtest_e_history is 'We have history now'; +alter table migtest_e_history2 drop system versioning /* 0 */; + +-- NOTE: table has @History - special migration may be necessary +update migtest_e_history2 set test_string = 'unknown' where test_string is null; +alter table migtest_e_history2 alter ( test_string nvarchar(255) default 'unknown' not null); +alter table migtest_e_history2_history alter ( test_string nvarchar(255) default 'unknown' not null); +alter table migtest_e_history2 add system versioning history table migtest_e_history2_history not validated /* 1 */; +alter table migtest_e_history2 drop system versioning /* 2 */; +alter table migtest_e_history2 add ( test_string2 nvarchar(255)); +alter table migtest_e_history2 add ( test_string3 nvarchar(255) default 'unknown' not null); +alter table migtest_e_history2 add ( new_column nvarchar(20)); + +alter table migtest_e_history2_history add ( test_string2 nvarchar(255)); +alter table migtest_e_history2_history add ( test_string3 nvarchar(255) default 'unknown'); +alter table migtest_e_history2_history add ( new_column nvarchar(20)); +alter table migtest_e_history2 add system versioning history table migtest_e_history2_history not validated /* 3 */; +alter table migtest_e_history3 drop system versioning /* 4 */; +alter table migtest_e_history3 add system versioning history table migtest_e_history3_history not validated /* 5 */; +alter table migtest_e_history4 drop system versioning /* 6 */; +alter table migtest_e_history4 alter ( test_number bigint); +alter table migtest_e_history4_history alter ( test_number bigint); +alter table migtest_e_history4 add system versioning history table migtest_e_history4_history not validated /* 7 */; +alter table migtest_e_history5 drop system versioning /* 8 */; +alter table migtest_e_history5 add ( test_boolean boolean default false not null); + +alter table migtest_e_history5_history add ( test_boolean boolean default false); +alter table migtest_e_history5 add system versioning history table migtest_e_history5_history not validated /* 9 */; +alter table migtest_e_history6 drop system versioning /* 10 */; + +-- NOTE: table has @History - special migration may be necessary +update migtest_e_history6 set test_number1 = 42 where test_number1 is null; +alter table migtest_e_history6 alter ( test_number1 integer default 42 not null); +alter table migtest_e_history6_history alter ( test_number1 integer default 42 not null); +alter table migtest_e_history6 add system versioning history table migtest_e_history6_history not validated /* 11 */; +alter table migtest_e_history6 drop system versioning /* 12 */; +alter table migtest_e_history6 alter ( test_number2 integer); +alter table migtest_e_history6_history alter ( test_number2 integer); +alter table migtest_e_history6 add system versioning history table migtest_e_history6_history not validated /* 13 */; +alter table migtest_e_softdelete add ( deleted boolean default false not null); + +alter table migtest_oto_child add ( master_id bigint); + +-- explicit index "ix_migtest_e_basic_indextest3" for single column "indextest3" of table "migtest_e_basic" is not necessary; +-- explicit index "ix_migtest_e_basic_indextest6" for single column "indextest6" of table "migtest_e_basic" is not necessary; +delimiter $$ +do +begin +declare exit handler for sql_error_code 261 begin end; +exec 'drop index ix_migtest_e_basic_indextest1'; +end; +$$; +delimiter $$ +do +begin +declare exit handler for sql_error_code 261 begin end; +exec 'drop index ix_migtest_e_basic_indextest5'; +end; +$$; +-- explicit index "ix_migtest_mtm_c_migtest_mtm_m_migtest_mtm_c" for single column "migtest_mtm_c_id" of table "migtest_mtm_c_migtest_mtm_m" is not necessary; +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; + +-- explicit index "ix_migtest_mtm_c_migtest_mtm_m_migtest_mtm_m" for single column "migtest_mtm_m_id" of table "migtest_mtm_c_migtest_mtm_m" is not necessary; +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; + +-- explicit index "ix_migtest_mtm_m_migtest_mtm_c_migtest_mtm_m" for single column "migtest_mtm_m_id" of table "migtest_mtm_m_migtest_mtm_c" is not necessary; +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; + +-- explicit index "ix_migtest_mtm_m_migtest_mtm_c_migtest_mtm_c" for single column "migtest_mtm_c_id" of table "migtest_mtm_m_migtest_mtm_c" is not necessary; +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; + +-- explicit index "ix_migtest_ckey_parent_assoc_id" for single column "assoc_id" of table "migtest_ckey_parent" is not necessary; +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; + +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; + +create column table migtest_e_history_history ( + id integer, + test_string bigint, + sys_period_start timestamp, + sys_period_end timestamp +); +alter table migtest_e_history add ( + sys_period_start TIMESTAMP NOT NULL GENERATED ALWAYS AS ROW START, + sys_period_end TIMESTAMP NOT NULL GENERATED ALWAYS AS ROW END +); +alter table migtest_e_history add period for system_time(sys_period_start,sys_period_end); +alter table migtest_e_history add system versioning history table migtest_e_history_history; diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/hana/1.2__dropsFor_1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/hana/1.2__dropsFor_1.1.sql new file mode 100644 index 000000000..a69417f3e --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/hana/1.2__dropsFor_1.1.sql @@ -0,0 +1,19 @@ +-- Migrationscripts for ebean unittest +-- apply changes +CALL usp_ebean_drop_column('migtest_e_basic', 'old_boolean'); + +CALL usp_ebean_drop_column('migtest_e_basic', 'old_boolean2'); + +CALL usp_ebean_drop_column('migtest_e_basic', 'eref_id'); + +alter table migtest_e_history2 drop system versioning /* 0 */; +CALL usp_ebean_drop_column('migtest_e_history2', 'obsolete_string1'); + +CALL usp_ebean_drop_column('migtest_e_history2_history', 'obsolete_string1'); +alter table migtest_e_history2 add system versioning history table migtest_e_history2_history not validated /* 1 */; +alter table migtest_e_history2 drop system versioning /* 2 */; +CALL usp_ebean_drop_column('migtest_e_history2', 'obsolete_string2'); + +CALL usp_ebean_drop_column('migtest_e_history2_history', 'obsolete_string2'); +alter table migtest_e_history2 add system versioning history table migtest_e_history2_history not validated /* 3 */; +drop table migtest_e_ref cascade; diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/hana/1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/hana/1.3.sql new file mode 100644 index 000000000..9e3ba6f9f --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/hana/1.3.sql @@ -0,0 +1,141 @@ +-- Migrationscripts for ebean unittest +-- apply changes +create column table migtest_e_ref ( + id integer generated by default as identity not null, + name nvarchar(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 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 on update restrict; +alter table migtest_fk_none drop constraint fk_migtest_fk_none_one_id; +alter table migtest_fk_none_via_join drop constraint fk_migtest_fk_none_via_join_one_id; +alter table migtest_fk_set_null drop constraint fk_migtest_fk_set_null_one_id; +alter table migtest_fk_set_null add constraint fk_migtest_fk_set_null_one_id foreign key (one_id) references migtest_fk_one (id) on delete set null on update restrict; +delimiter $$ +do +begin +declare exit handler for sql_error_code 397 begin end; +exec 'alter table migtest_e_basic drop constraint ck_migtest_e_basic_status'; +end; +$$; +alter table migtest_e_basic alter ( status nvarchar(1) default null); +alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I')); + +update migtest_e_basic set status2 = 'N' where status2 is null; +delimiter $$ +do +begin +declare exit handler for sql_error_code 397 begin end; +exec 'alter table migtest_e_basic drop constraint ck_migtest_e_basic_status2'; +end; +$$; +alter table migtest_e_basic alter ( status2 nclob default 'N' not null); +alter table migtest_e_basic alter ( status2 nvarchar(1) default 'N' not null); +alter table migtest_e_basic add constraint ck_migtest_e_basic_status2 check ( status2 in ('N','A','I')); +delimiter $$ +do +begin +declare exit handler for sql_error_code 397 begin end; +exec 'alter table migtest_e_basic drop constraint uq_migtest_e_basic_description'; +end; +$$; + +update migtest_e_basic set user_id = 23 where user_id is null; +alter table migtest_e_basic drop constraint fk_migtest_e_basic_user_id; +alter table migtest_e_basic alter ( user_id integer default 23 not null); +alter table migtest_e_basic add ( old_boolean boolean default false not null); +alter table migtest_e_basic add ( old_boolean2 boolean); +alter table migtest_e_basic add ( eref_id integer); + +delimiter $$ +do +begin +declare exit handler for sql_error_code 397 begin end; +exec 'alter table migtest_e_basic drop constraint uq_migtest_e_basic_status_indextest1'; +end; +$$; +delimiter $$ +do +begin +declare exit handler for sql_error_code 397 begin end; +exec 'alter table migtest_e_basic drop constraint uq_migtest_e_basic_name'; +end; +$$; +delimiter $$ +do +begin +declare exit handler for sql_error_code 397 begin end; +exec 'alter table migtest_e_basic drop constraint uq_migtest_e_basic_indextest4'; +end; +$$; +delimiter $$ +do +begin +declare exit handler for sql_error_code 397 begin end; +exec 'alter table migtest_e_basic drop constraint uq_migtest_e_basic_indextest5'; +end; +$$; +-- cannot create unique index "uq_migtest_e_basic_indextest2" on table "migtest_e_basic" with nullable columns; +-- cannot create unique index "uq_migtest_e_basic_indextest6" on table "migtest_e_basic" with nullable columns; +delimiter $$ +do +begin +declare exit handler for sql_error_code 397 begin end; +exec 'alter table migtest_e_enum drop constraint ck_migtest_e_enum_test_status'; +end; +$$; +alter table migtest_e_enum add constraint ck_migtest_e_enum_test_status check ( test_status in ('N','A','I')); +comment on column migtest_e_history.test_string is ''; +comment on table migtest_e_history is ''; +alter table migtest_e_history2 drop system versioning /* 0 */; +alter table migtest_e_history2 alter ( test_string nvarchar(255) default null); +alter table migtest_e_history2_history alter ( test_string nvarchar(255) default null); +alter table migtest_e_history2 add system versioning history table migtest_e_history2_history not validated /* 1 */; +alter table migtest_e_history2 drop system versioning /* 2 */; +alter table migtest_e_history2 add ( obsolete_string1 nvarchar(255)); +alter table migtest_e_history2 add ( obsolete_string2 nvarchar(255)); + +alter table migtest_e_history2_history add ( obsolete_string1 nvarchar(255)); +alter table migtest_e_history2_history add ( obsolete_string2 nvarchar(255)); +alter table migtest_e_history2 add system versioning history table migtest_e_history2_history not validated /* 3 */; +alter table migtest_e_history3 drop system versioning /* 4 */; +alter table migtest_e_history3 add system versioning history table migtest_e_history3_history not validated /* 5 */; +alter table migtest_e_history4 drop system versioning /* 6 */; +alter table migtest_e_history4 alter ( test_number decimal ); +alter table migtest_e_history4 alter ( test_number integer); +alter table migtest_e_history4_history alter ( test_number decimal ); +alter table migtest_e_history4_history alter ( test_number integer); +alter table migtest_e_history4 add system versioning history table migtest_e_history4_history not validated /* 7 */; +alter table migtest_e_history6 drop system versioning /* 8 */; +alter table migtest_e_history6 alter ( test_number1 integer default null); +alter table migtest_e_history6_history alter ( test_number1 integer default null); +alter table migtest_e_history6 add system versioning history table migtest_e_history6_history not validated /* 9 */; +alter table migtest_e_history6 drop system versioning /* 10 */; + +-- NOTE: table has @History - special migration may be necessary +update migtest_e_history6 set test_number2 = 7 where test_number2 is null; +alter table migtest_e_history6 alter ( test_number2 integer default 7 not null); +alter table migtest_e_history6_history alter ( test_number2 integer default 7 not null); +alter table migtest_e_history6 add system versioning history table migtest_e_history6_history not validated /* 11 */; +-- explicit index "ix_migtest_e_basic_indextest1" for single column "indextest1" of table "migtest_e_basic" is not necessary; +-- explicit index "ix_migtest_e_basic_indextest5" for single column "indextest5" of table "migtest_e_basic" is not necessary; +delimiter $$ +do +begin +declare exit handler for sql_error_code 261 begin end; +exec 'drop index ix_migtest_e_basic_indextest3'; +end; +$$; +delimiter $$ +do +begin +declare exit handler for sql_error_code 261 begin end; +exec 'drop index ix_migtest_e_basic_indextest6'; +end; +$$; +-- explicit index "ix_migtest_e_basic_eref_id" for single column "eref_id" of table "migtest_e_basic" is not necessary; +alter table migtest_e_basic add constraint fk_migtest_e_basic_eref_id foreign key (eref_id) references migtest_e_ref (id) on delete restrict on update restrict; + diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/hana/1.4__dropsFor_1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/hana/1.4__dropsFor_1.3.sql new file mode 100644 index 000000000..fe5d6371f --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/hana/1.4__dropsFor_1.3.sql @@ -0,0 +1,51 @@ +-- Migrationscripts for ebean unittest +-- drop dependencies +alter table migtest_e_history drop system versioning; +alter table migtest_e_history drop period for system_time; +alter table migtest_e_history drop (sys_period_start,sys_period_end); +drop table migtest_e_history_history cascade; + +-- apply changes +CALL usp_ebean_drop_column('migtest_ckey_detail', 'one_key'); + +CALL usp_ebean_drop_column('migtest_ckey_detail', 'two_key'); + +CALL usp_ebean_drop_column('migtest_ckey_parent', 'assoc_id'); + +CALL usp_ebean_drop_column('migtest_e_basic', 'new_string_field'); + +CALL usp_ebean_drop_column('migtest_e_basic', 'new_boolean_field'); + +CALL usp_ebean_drop_column('migtest_e_basic', 'new_boolean_field2'); + +CALL usp_ebean_drop_column('migtest_e_basic', 'progress'); + +CALL usp_ebean_drop_column('migtest_e_basic', 'new_integer'); + +alter table migtest_e_history2 drop system versioning /* 0 */; +CALL usp_ebean_drop_column('migtest_e_history2', 'test_string2'); + +CALL usp_ebean_drop_column('migtest_e_history2_history', 'test_string2'); +alter table migtest_e_history2 add system versioning history table migtest_e_history2_history not validated /* 1 */; +alter table migtest_e_history2 drop system versioning /* 2 */; +CALL usp_ebean_drop_column('migtest_e_history2', 'test_string3'); + +CALL usp_ebean_drop_column('migtest_e_history2_history', 'test_string3'); +alter table migtest_e_history2 add system versioning history table migtest_e_history2_history not validated /* 3 */; +alter table migtest_e_history2 drop system versioning /* 4 */; +CALL usp_ebean_drop_column('migtest_e_history2', 'new_column'); + +CALL usp_ebean_drop_column('migtest_e_history2_history', 'new_column'); +alter table migtest_e_history2 add system versioning history table migtest_e_history2_history not validated /* 5 */; +alter table migtest_e_history5 drop system versioning /* 6 */; +CALL usp_ebean_drop_column('migtest_e_history5', 'test_boolean'); + +CALL usp_ebean_drop_column('migtest_e_history5_history', 'test_boolean'); +alter table migtest_e_history5 add system versioning history table migtest_e_history5_history not validated /* 7 */; +CALL usp_ebean_drop_column('migtest_e_softdelete', 'deleted'); + +CALL usp_ebean_drop_column('migtest_oto_child', 'master_id'); + +drop table migtest_e_user cascade; +drop table migtest_mtm_c_migtest_mtm_m cascade; +drop table migtest_mtm_m_migtest_mtm_c cascade; diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/hana/R__order_views_hana.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/hana/R__order_views_hana.sql new file mode 100644 index 000000000..85b1dce9f --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/hana/R__order_views_hana.sql @@ -0,0 +1,7 @@ + + create view order_agg_vw as + select d.order_id, sum(d.order_qty * d.unit_price) as order_total, + sum(d.ship_qty * d.unit_price) as ship_total + from o_order_detail d + group by d.order_id; + \ No newline at end of file diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/hana/idx_hana.migrations b/ebean-test/src/test/resources/migrationtest/dbmigration/hana/idx_hana.migrations new file mode 100644 index 000000000..2f7b6ef51 --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/hana/idx_hana.migrations @@ -0,0 +1,7 @@ +-1536923954, 1.0__initial.sql +1039838314, 1.1.sql +562867593, 1.2__dropsFor_1.1.sql +1566488731, 1.3.sql +1030652294, 1.4__dropsFor_1.3.sql +1906063401, R__order_views_hana.sql + diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/hsqldb/1.0__initial.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/hsqldb/1.0__initial.sql new file mode 100644 index 000000000..40616be0a --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/hsqldb/1.0__initial.sql @@ -0,0 +1,174 @@ +-- 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, + constraint pk_migtest_fk_cascade primary key (id) +); + +create table migtest_fk_cascade_one ( + id bigint generated by default as identity (start with 1) not null, + constraint pk_migtest_fk_cascade_one primary key (id) +); + +create table migtest_fk_none ( + id bigint generated by default as identity (start with 1) not null, + one_id bigint, + constraint pk_migtest_fk_none primary key (id) +); + +create table migtest_fk_none_via_join ( + id bigint generated by default as identity (start with 1) not null, + one_id bigint, + constraint pk_migtest_fk_none_via_join primary key (id) +); + +create table migtest_fk_one ( + id bigint generated by default as identity (start with 1) not null, + constraint pk_migtest_fk_one primary key (id) +); + +create table migtest_fk_set_null ( + id bigint generated by default as identity (start with 1) not null, + one_id bigint, + constraint pk_migtest_fk_set_null primary key (id) +); + +create table migtest_e_basic ( + id integer generated by default as identity (start with 1) not null, + status varchar(1), + status2 varchar(1) default 'N' not null, + name varchar(127), + description varchar(127), + some_date timestamp, + old_boolean boolean default false not null, + old_boolean2 boolean, + eref_id integer, + indextest1 varchar(127), + indextest2 varchar(127), + indextest3 varchar(127), + indextest4 varchar(127), + indextest5 varchar(127), + indextest6 varchar(127), + user_id integer not null, + constraint ck_migtest_e_basic_status check ( status in ('N','A','I')), + constraint ck_migtest_e_basic_status2 check ( status2 in ('N','A','I')), + constraint uq_migtest_e_basic_indextest2 unique (indextest2), + constraint uq_migtest_e_basic_indextest6 unique (indextest6), + constraint pk_migtest_e_basic primary key (id) +); + +create table migtest_e_enum ( + id integer generated by default as identity (start with 1) not null, + test_status varchar(1), + constraint ck_migtest_e_enum_test_status check ( test_status in ('N','A','I')), + constraint pk_migtest_e_enum primary key (id) +); + +create table migtest_e_history ( + id integer generated by default as identity (start with 1) not null, + test_string varchar(255), + constraint pk_migtest_e_history primary key (id) +); + +create table migtest_e_history2 ( + id integer generated by default as identity (start with 1) not null, + test_string varchar(255), + obsolete_string1 varchar(255), + obsolete_string2 varchar(255), + constraint pk_migtest_e_history2 primary key (id) +); + +create table migtest_e_history3 ( + id integer generated by default as identity (start with 1) not null, + test_string varchar(255), + constraint pk_migtest_e_history3 primary key (id) +); + +create table migtest_e_history4 ( + id integer generated by default as identity (start with 1) not null, + test_number integer, + constraint pk_migtest_e_history4 primary key (id) +); + +create table migtest_e_history5 ( + id integer generated by default as identity (start with 1) not null, + test_number integer, + constraint pk_migtest_e_history5 primary key (id) +); + +create table migtest_e_history6 ( + id integer generated by default as identity (start with 1) not null, + test_number1 integer, + test_number2 integer not null, + constraint pk_migtest_e_history6 primary key (id) +); + +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) +); + +create table migtest_e_softdelete ( + id integer generated by default as identity (start with 1) not null, + test_string varchar(255), + 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); +create index ix_migtest_fk_cascade_one_id on 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 restrict; + +create index ix_migtest_fk_set_null_one_id on migtest_fk_set_null (one_id); +alter table migtest_fk_set_null add constraint fk_migtest_fk_set_null_one_id foreign key (one_id) references migtest_fk_one (id) on delete set null on update restrict; + +create index ix_migtest_e_basic_eref_id on migtest_e_basic (eref_id); +alter table migtest_e_basic add constraint fk_migtest_e_basic_eref_id foreign key (eref_id) references migtest_e_ref (id) on delete restrict on update restrict; + diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/hsqldb/1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/hsqldb/1.1.sql new file mode 100644 index 000000000..cebb8b994 --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/hsqldb/1.1.sql @@ -0,0 +1,110 @@ +-- Migrationscripts for ebean unittest +-- apply changes +create table migtest_e_user ( + id integer generated by default as identity (start with 1) not null, + 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; +alter table migtest_fk_none_via_join add constraint fk_migtest_fk_none_via_join_one_id foreign key (one_id) references migtest_fk_one (id) on delete restrict on update restrict; +alter table migtest_fk_set_null drop constraint if exists fk_migtest_fk_set_null_one_id; +alter table migtest_fk_set_null add constraint fk_migtest_fk_set_null_one_id foreign key (one_id) references migtest_fk_one (id) on delete restrict on update restrict; + +update migtest_e_basic set status = 'A' where status is null; +alter table migtest_e_basic drop constraint if exists ck_migtest_e_basic_status; +alter table migtest_e_basic alter column status set default 'A'; +alter table migtest_e_basic alter column status set not null; +alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I','?')); +alter table migtest_e_basic drop constraint if exists ck_migtest_e_basic_status2; +alter table migtest_e_basic alter column status2 varchar(127); +alter table migtest_e_basic alter column status2 drop default; +alter table migtest_e_basic alter column status2 set null; + +-- rename all collisions; +alter table migtest_e_basic add constraint uq_migtest_e_basic_description unique (description); + +insert into migtest_e_user (id) select distinct user_id from migtest_e_basic; +alter table migtest_e_basic add constraint fk_migtest_e_basic_user_id foreign key (user_id) references migtest_e_user (id) on delete restrict on update restrict; +alter table migtest_e_basic alter column user_id set null; +alter table migtest_e_basic add column new_string_field varchar(255) default 'foo''bar' not null; +alter table migtest_e_basic add column new_boolean_field boolean default true not null; +update migtest_e_basic set new_boolean_field = old_boolean; + +alter table migtest_e_basic add column new_boolean_field2 boolean default true not null; +alter table migtest_e_basic add column progress integer default 0 not null; +alter table migtest_e_basic add constraint ck_migtest_e_basic_progress check ( progress in (0,1,2)); +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); +alter table migtest_e_enum drop constraint if exists ck_migtest_e_enum_test_status; +comment on column migtest_e_history.test_string is 'Column altered to long now'; +alter table migtest_e_history alter column test_string bigint; +comment on table migtest_e_history is 'We have history now'; + +-- NOTE: table has @History - special migration may be necessary +update migtest_e_history2 set test_string = 'unknown' where test_string is null; +alter table migtest_e_history2 alter column test_string set default 'unknown'; +alter table migtest_e_history2 alter column test_string set not null; +alter table migtest_e_history2 add column test_string2 varchar(255); +alter table migtest_e_history2 add column test_string3 varchar(255) default 'unknown' not null; +alter table migtest_e_history2 add column new_column varchar(20); + +alter table migtest_e_history4 alter column test_number bigint; +alter table migtest_e_history5 add column test_boolean boolean default false not null; + + +-- NOTE: table has @History - special migration may be necessary +update migtest_e_history6 set test_number1 = 42 where test_number1 is null; +alter table migtest_e_history6 alter column test_number1 set default 42; +alter table migtest_e_history6 alter column test_number1 set not null; +alter table migtest_e_history6 alter column test_number2 set null; +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; +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_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_m on migtest_mtm_c_migtest_mtm_m (migtest_mtm_m_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_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_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_c on migtest_mtm_m_migtest_mtm_c (migtest_mtm_c_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_ckey_parent_assoc_id on migtest_ckey_parent (assoc_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; + +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/ebean-test/src/test/resources/migrationtest/dbmigration/hsqldb/1.2__dropsFor_1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/hsqldb/1.2__dropsFor_1.1.sql new file mode 100644 index 000000000..6fb11c3a4 --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/hsqldb/1.2__dropsFor_1.1.sql @@ -0,0 +1,14 @@ +-- Migrationscripts for ebean unittest +-- apply changes +alter table migtest_e_basic drop column old_boolean; + +alter table migtest_e_basic drop column old_boolean2; + +alter table migtest_e_basic drop column eref_id; + +alter table migtest_e_history2 drop column obsolete_string1; + +alter table migtest_e_history2 drop column obsolete_string2; + +drop table if exists migtest_e_ref; +drop sequence if exists migtest_e_ref_seq; diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/hsqldb/1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/hsqldb/1.3.sql new file mode 100644 index 000000000..f7f307719 --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/hsqldb/1.3.sql @@ -0,0 +1,67 @@ +-- Migrationscripts for ebean unittest +-- 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 restrict; +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; +alter table migtest_fk_set_null drop constraint if exists fk_migtest_fk_set_null_one_id; +alter table migtest_fk_set_null add constraint fk_migtest_fk_set_null_one_id foreign key (one_id) references migtest_fk_one (id) on delete set null on update restrict; +alter table migtest_e_basic drop constraint if exists ck_migtest_e_basic_status; +alter table migtest_e_basic alter column status drop default; +alter table migtest_e_basic alter column status set null; +alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I')); + +update migtest_e_basic set status2 = 'N' where status2 is null; +alter table migtest_e_basic drop constraint if exists ck_migtest_e_basic_status2; +alter table migtest_e_basic alter column status2 varchar(1); +alter table migtest_e_basic alter column status2 set default 'N'; +alter table migtest_e_basic alter column status2 set not null; +alter table migtest_e_basic add constraint ck_migtest_e_basic_status2 check ( status2 in ('N','A','I')); +alter table migtest_e_basic drop constraint uq_migtest_e_basic_description; + +update migtest_e_basic set user_id = 23 where user_id is null; +alter table migtest_e_basic drop constraint if exists fk_migtest_e_basic_user_id; +alter table migtest_e_basic alter column user_id set default 23; +alter table migtest_e_basic alter column user_id set not null; +alter table migtest_e_basic add column old_boolean boolean default false not null; +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; +alter table migtest_e_basic add constraint uq_migtest_e_basic_indextest2 unique (indextest2); +alter table migtest_e_basic add constraint uq_migtest_e_basic_indextest6 unique (indextest6); +alter table migtest_e_enum drop constraint if exists ck_migtest_e_enum_test_status; +alter table migtest_e_enum add constraint ck_migtest_e_enum_test_status check ( test_status in ('N','A','I')); +comment on column migtest_e_history.test_string is ''; +comment on table migtest_e_history is ''; +alter table migtest_e_history2 alter column test_string drop default; +alter table migtest_e_history2 alter column test_string set null; +alter table migtest_e_history2 add column obsolete_string1 varchar(255); +alter table migtest_e_history2 add column obsolete_string2 varchar(255); + +alter table migtest_e_history4 alter column test_number integer; +alter table migtest_e_history6 alter column test_number1 drop default; +alter table migtest_e_history6 alter column test_number1 set null; + +-- NOTE: table has @History - special migration may be necessary +update migtest_e_history6 set test_number2 = 7 where test_number2 is null; +alter table migtest_e_history6 alter column test_number2 set default 7; +alter table migtest_e_history6 alter column test_number2 set not null; +create index ix_migtest_e_basic_indextest1 on migtest_e_basic (indextest1); +create index ix_migtest_e_basic_indextest5 on migtest_e_basic (indextest5); +drop index if exists ix_migtest_e_basic_indextest3; +drop index if exists ix_migtest_e_basic_indextest6; +create index ix_migtest_e_basic_eref_id on migtest_e_basic (eref_id); +alter table migtest_e_basic add constraint fk_migtest_e_basic_eref_id foreign key (eref_id) references migtest_e_ref (id) on delete restrict on update restrict; + diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/hsqldb/1.4__dropsFor_1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/hsqldb/1.4__dropsFor_1.3.sql new file mode 100644 index 000000000..c613e4a5a --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/hsqldb/1.4__dropsFor_1.3.sql @@ -0,0 +1,34 @@ +-- 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; + +alter table migtest_e_basic drop column new_boolean_field2; + +alter table migtest_e_basic drop column progress; + +alter table migtest_e_basic drop column new_integer; + +alter table migtest_e_history2 drop column test_string2; + +alter table migtest_e_history2 drop column test_string3; + +alter table migtest_e_history2 drop column new_column; + +alter table migtest_e_history5 drop column test_boolean; + +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/ebean-test/src/test/resources/migrationtest/dbmigration/hsqldb/R__order_views_hsqldb.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/hsqldb/R__order_views_hsqldb.sql new file mode 100644 index 000000000..5f7ba1784 --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/hsqldb/R__order_views_hsqldb.sql @@ -0,0 +1,8 @@ + + drop view order_agg_vw if exists ; + create view order_agg_vw as + select d.order_id, sum(d.order_qty * d.unit_price) as order_total, + sum(d.ship_qty * d.unit_price) as ship_total + from o_order_detail d + group by d.order_id; + \ No newline at end of file diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/hsqldb/idx_hsqldb.migrations b/ebean-test/src/test/resources/migrationtest/dbmigration/hsqldb/idx_hsqldb.migrations new file mode 100644 index 000000000..3838db054 --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/hsqldb/idx_hsqldb.migrations @@ -0,0 +1,7 @@ +2097980375, 1.0__initial.sql +2086418403, 1.1.sql +-1462014216, 1.2__dropsFor_1.1.sql +-2039573992, 1.3.sql +2106151405, 1.4__dropsFor_1.3.sql +861001272, R__order_views_hsqldb.sql + diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb/1.0__initial.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb/1.0__initial.sql new file mode 100644 index 000000000..dd7505e20 --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb/1.0__initial.sql @@ -0,0 +1,176 @@ +-- 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 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, + constraint pk_migtest_fk_cascade primary key (id) +); + +create table migtest_fk_cascade_one ( + id bigint auto_increment not null, + constraint pk_migtest_fk_cascade_one primary key (id) +); + +create table migtest_fk_none ( + id bigint auto_increment not null, + one_id bigint, + constraint pk_migtest_fk_none primary key (id) +); + +create table migtest_fk_none_via_join ( + id bigint auto_increment not null, + one_id bigint, + constraint pk_migtest_fk_none_via_join primary key (id) +); + +create table migtest_fk_one ( + id bigint auto_increment not null, + constraint pk_migtest_fk_one primary key (id) +); + +create table migtest_fk_set_null ( + id bigint auto_increment not null, + one_id bigint, + constraint pk_migtest_fk_set_null primary key (id) +); + +create table migtest_e_basic ( + id integer auto_increment not null, + status varchar(1), + status2 varchar(1) default 'N' not null, + name varchar(127), + description varchar(127), + some_date datetime(6), + old_boolean tinyint(1) default 0 not null, + old_boolean2 tinyint(1), + eref_id integer, + indextest1 varchar(127), + indextest2 varchar(127), + indextest3 varchar(127), + indextest4 varchar(127), + indextest5 varchar(127), + indextest6 varchar(127), + user_id integer not null, + constraint uq_migtest_e_basic_indextest2 unique (indextest2), + constraint uq_migtest_e_basic_indextest6 unique (indextest6), + constraint pk_migtest_e_basic primary key (id) +); + +create table migtest_e_enum ( + id integer auto_increment not null, + test_status varchar(1), + constraint pk_migtest_e_enum primary key (id) +); + +create table migtest_e_history ( + id integer auto_increment not null, + test_string varchar(255), + constraint pk_migtest_e_history primary key (id) +); + +create table migtest_e_history2 ( + id integer auto_increment not null, + test_string varchar(255), + obsolete_string1 varchar(255), + obsolete_string2 varchar(255), + constraint pk_migtest_e_history2 primary key (id) +); + +create table migtest_e_history3 ( + id integer auto_increment not null, + test_string varchar(255), + constraint pk_migtest_e_history3 primary key (id) +); + +create table migtest_e_history4 ( + id integer auto_increment not null, + test_number integer, + constraint pk_migtest_e_history4 primary key (id) +); + +create table migtest_e_history5 ( + id integer auto_increment not null, + test_number integer, + constraint pk_migtest_e_history5 primary key (id) +); + +create table migtest_e_history6 ( + id integer auto_increment not null, + test_number1 integer, + test_number2 integer not null, + constraint pk_migtest_e_history6 primary key (id) +); + +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) +); + +create table migtest_e_softdelete ( + id integer auto_increment not null, + test_string varchar(255), + 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); +create index ix_migtest_fk_cascade_one_id on 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 restrict; + +create index ix_migtest_fk_set_null_one_id on migtest_fk_set_null (one_id); +alter table migtest_fk_set_null add constraint fk_migtest_fk_set_null_one_id foreign key (one_id) references migtest_fk_one (id) on delete set null on update restrict; + +create index ix_migtest_e_basic_eref_id on migtest_e_basic (eref_id); +alter table migtest_e_basic add constraint fk_migtest_e_basic_eref_id foreign key (eref_id) references migtest_e_ref (id) on delete restrict on update restrict; + +alter table migtest_e_history2 add system versioning; +alter table migtest_e_history3 add system versioning; +alter table migtest_e_history4 add system versioning; +alter table migtest_e_history5 add system versioning; +alter table migtest_e_history6 add system versioning; diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb/1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb/1.1.sql new file mode 100644 index 000000000..1d15256d7 --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb/1.1.sql @@ -0,0 +1,106 @@ +-- Migrationscripts for ebean unittest +-- apply changes +create table migtest_e_user ( + id integer auto_increment not null, + 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 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; +alter table migtest_fk_none_via_join add constraint fk_migtest_fk_none_via_join_one_id foreign key (one_id) references migtest_fk_one (id) on delete restrict on update restrict; +alter table migtest_fk_set_null drop foreign key fk_migtest_fk_set_null_one_id; +alter table migtest_fk_set_null add constraint fk_migtest_fk_set_null_one_id foreign key (one_id) references migtest_fk_one (id) on delete restrict on update restrict; + +update migtest_e_basic set status = 'A' where status is null; +alter table migtest_e_basic alter status set default 'A'; +alter table migtest_e_basic modify status varchar(1) not null; +alter table migtest_e_basic alter status2 drop default; +alter table migtest_e_basic modify status2 varchar(127); + +-- rename all collisions; +alter table migtest_e_basic add constraint uq_migtest_e_basic_description unique (description); + +insert into migtest_e_user (id) select distinct user_id from migtest_e_basic; +alter table migtest_e_basic add constraint fk_migtest_e_basic_user_id foreign key (user_id) references migtest_e_user (id) on delete restrict on update restrict; +alter table migtest_e_basic modify user_id integer; +alter table migtest_e_basic add column new_string_field varchar(255) default 'foo''bar' not null; +alter table migtest_e_basic add column new_boolean_field tinyint(1) default 1 not null; +update migtest_e_basic set new_boolean_field = old_boolean; + +alter table migtest_e_basic add column new_boolean_field2 tinyint(1) default 1 not null; +alter table migtest_e_basic add column progress integer default 0 not null; +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); +alter table migtest_e_history modify test_string bigint; +alter table migtest_e_history comment = 'We have history now'; + +-- NOTE: table has @History - special migration may be necessary +update migtest_e_history2 set test_string = 'unknown' where test_string is null; +alter table migtest_e_history2 alter test_string set default 'unknown'; +alter table migtest_e_history2 modify test_string varchar(255) not null; +alter table migtest_e_history2 add column test_string2 varchar(255); +alter table migtest_e_history2 add column test_string3 varchar(255) default 'unknown' not null; +alter table migtest_e_history2 add column new_column varchar(20); + +alter table migtest_e_history4 modify test_number bigint; +alter table migtest_e_history5 add column test_boolean tinyint(1) default 0 not null; + + +-- NOTE: table has @History - special migration may be necessary +update migtest_e_history6 set test_number1 = 42 where test_number1 is null; +alter table migtest_e_history6 alter test_number1 set default 42; +alter table migtest_e_history6 modify test_number1 integer not null; +alter table migtest_e_history6 modify test_number2 integer; +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; +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_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_m on migtest_mtm_c_migtest_mtm_m (migtest_mtm_m_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_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_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_c on migtest_mtm_m_migtest_mtm_c (migtest_mtm_c_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_ckey_parent_assoc_id on migtest_ckey_parent (assoc_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; + +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 system versioning; +lock tables migtest_e_history3 write; +unlock tables; diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb/1.2__dropsFor_1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb/1.2__dropsFor_1.1.sql new file mode 100644 index 000000000..6fb11c3a4 --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb/1.2__dropsFor_1.1.sql @@ -0,0 +1,14 @@ +-- Migrationscripts for ebean unittest +-- apply changes +alter table migtest_e_basic drop column old_boolean; + +alter table migtest_e_basic drop column old_boolean2; + +alter table migtest_e_basic drop column eref_id; + +alter table migtest_e_history2 drop column obsolete_string1; + +alter table migtest_e_history2 drop column obsolete_string2; + +drop table if exists migtest_e_ref; +drop sequence if exists migtest_e_ref_seq; diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb/1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb/1.3.sql new file mode 100644 index 000000000..5930c283a --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb/1.3.sql @@ -0,0 +1,61 @@ +-- Migrationscripts for ebean unittest +-- 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 restrict; +alter table migtest_fk_none drop foreign key fk_migtest_fk_none_one_id; +alter table migtest_fk_none_via_join drop foreign key fk_migtest_fk_none_via_join_one_id; +alter table migtest_fk_set_null drop foreign key fk_migtest_fk_set_null_one_id; +alter table migtest_fk_set_null add constraint fk_migtest_fk_set_null_one_id foreign key (one_id) references migtest_fk_one (id) on delete set null on update restrict; +alter table migtest_e_basic alter status drop default; +alter table migtest_e_basic modify status varchar(1); + +update migtest_e_basic set status2 = 'N' where status2 is null; +alter table migtest_e_basic alter status2 set default 'N'; +alter table migtest_e_basic modify status2 varchar(1) not null; +alter table migtest_e_basic drop index uq_migtest_e_basic_description; + +update migtest_e_basic set user_id = 23 where user_id is null; +alter table migtest_e_basic drop foreign key fk_migtest_e_basic_user_id; +alter table migtest_e_basic alter user_id set default 23; +alter table migtest_e_basic modify user_id integer not null; +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; +alter table migtest_e_basic add constraint uq_migtest_e_basic_indextest2 unique (indextest2); +alter table migtest_e_basic add constraint uq_migtest_e_basic_indextest6 unique (indextest6); +alter table migtest_e_history comment = ''; +alter table migtest_e_history2 alter test_string drop default; +alter table migtest_e_history2 modify test_string varchar(255); +alter table migtest_e_history2 add column obsolete_string1 varchar(255); +alter table migtest_e_history2 add column obsolete_string2 varchar(255); + +alter table migtest_e_history4 modify test_number integer; +alter table migtest_e_history6 alter test_number1 drop default; +alter table migtest_e_history6 modify test_number1 integer; + +-- NOTE: table has @History - special migration may be necessary +update migtest_e_history6 set test_number2 = 7 where test_number2 is null; +alter table migtest_e_history6 alter test_number2 set default 7; +alter table migtest_e_history6 modify test_number2 integer not null; +create index ix_migtest_e_basic_indextest1 on migtest_e_basic (indextest1); +create index ix_migtest_e_basic_indextest5 on migtest_e_basic (indextest5); +drop index ix_migtest_e_basic_indextest3 on migtest_e_basic; +drop index ix_migtest_e_basic_indextest6 on migtest_e_basic; +create index ix_migtest_e_basic_eref_id on migtest_e_basic (eref_id); +alter table migtest_e_basic add constraint fk_migtest_e_basic_eref_id foreign key (eref_id) references migtest_e_ref (id) on delete restrict on update restrict; + +lock tables migtest_e_history3 write; +unlock tables; diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb/1.4__dropsFor_1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb/1.4__dropsFor_1.3.sql new file mode 100644 index 000000000..89603a694 --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb/1.4__dropsFor_1.3.sql @@ -0,0 +1,35 @@ +-- 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; + +alter table migtest_e_basic drop column new_boolean_field2; + +alter table migtest_e_basic drop column progress; + +alter table migtest_e_basic drop column new_integer; + +alter table migtest_e_history2 drop column test_string2; + +alter table migtest_e_history2 drop column test_string3; + +alter table migtest_e_history2 drop column new_column; + +alter table migtest_e_history5 drop column test_boolean; + +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; +alter table migtest_e_history drop system versioning; diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb/R__order_views.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb/R__order_views.sql new file mode 100644 index 000000000..ccf30a2c6 --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb/R__order_views.sql @@ -0,0 +1,7 @@ + + create or replace view order_agg_vw as + select d.order_id, sum(d.order_qty * d.unit_price) as order_total, + sum(d.ship_qty * d.unit_price) as ship_total + from o_order_detail d + group by d.order_id + \ No newline at end of file diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb/idx_mariadb.migrations b/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb/idx_mariadb.migrations new file mode 100644 index 000000000..68906e201 --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb/idx_mariadb.migrations @@ -0,0 +1,7 @@ +1615386118, 1.0__initial.sql +1747697741, 1.1.sql +-1462014216, 1.2__dropsFor_1.1.sql +-1957738355, 1.3.sql +1081793242, 1.4__dropsFor_1.3.sql +561281075, R__order_views.sql + diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/model/1.0__initial.model.xml b/ebean-test/src/test/resources/migrationtest/dbmigration/model/1.0__initial.model.xml new file mode 100644 index 000000000..68661ce4c --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/model/1.0__initial.model.xml @@ -0,0 +1,122 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/model/1.1.model.xml b/ebean-test/src/test/resources/migrationtest/dbmigration/model/1.1.model.xml new file mode 100644 index 000000000..e165e05d8 --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/model/1.1.model.xml @@ -0,0 +1,104 @@ + + + + + + + + + + + + + + + + + + + + -- rename all collisions + + + + + insert into migtest_e_user (id) select distinct user_id from migtest_e_basic + + + + + + + update ${table} set ${column} = old_boolean + + + + + + + + + + + + + + + + + alter table ${table} alter column ${column} TYPE bigint USING (${column}::integer) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/model/1.2__dropsFor_1.1.model.xml b/ebean-test/src/test/resources/migrationtest/dbmigration/model/1.2__dropsFor_1.1.model.xml new file mode 100644 index 000000000..59bf48a8f --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/model/1.2__dropsFor_1.1.model.xml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/model/1.3.model.xml b/ebean-test/src/test/resources/migrationtest/dbmigration/model/1.3.model.xml new file mode 100644 index 000000000..77171547d --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/model/1.3.model.xml @@ -0,0 +1,73 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/model/1.4__dropsFor_1.3.model.xml b/ebean-test/src/test/resources/migrationtest/dbmigration/model/1.4__dropsFor_1.3.model.xml new file mode 100644 index 000000000..a1cc6616a --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/model/1.4__dropsFor_1.3.model.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/mysql/1.0__initial.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/mysql/1.0__initial.sql new file mode 100644 index 000000000..0a76ab174 --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/mysql/1.0__initial.sql @@ -0,0 +1,269 @@ +-- 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 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, + constraint pk_migtest_fk_cascade primary key (id) +); + +create table migtest_fk_cascade_one ( + id bigint auto_increment not null, + constraint pk_migtest_fk_cascade_one primary key (id) +); + +create table migtest_fk_none ( + id bigint auto_increment not null, + one_id bigint, + constraint pk_migtest_fk_none primary key (id) +); + +create table migtest_fk_none_via_join ( + id bigint auto_increment not null, + one_id bigint, + constraint pk_migtest_fk_none_via_join primary key (id) +); + +create table migtest_fk_one ( + id bigint auto_increment not null, + constraint pk_migtest_fk_one primary key (id) +); + +create table migtest_fk_set_null ( + id bigint auto_increment not null, + one_id bigint, + constraint pk_migtest_fk_set_null primary key (id) +); + +create table migtest_e_basic ( + id integer auto_increment not null, + status varchar(1), + status2 varchar(1) default 'N' not null, + name varchar(127), + description varchar(127), + some_date datetime, + old_boolean tinyint(1) default 0 not null, + old_boolean2 tinyint(1), + eref_id integer, + indextest1 varchar(127), + indextest2 varchar(127), + indextest3 varchar(127), + indextest4 varchar(127), + indextest5 varchar(127), + indextest6 varchar(127), + user_id integer not null, + constraint uq_migtest_e_basic_indextest2 unique (indextest2), + constraint uq_migtest_e_basic_indextest6 unique (indextest6), + constraint pk_migtest_e_basic primary key (id) +); + +create table migtest_e_enum ( + id integer auto_increment not null, + test_status varchar(1), + constraint pk_migtest_e_enum primary key (id) +); + +create table migtest_e_history ( + id integer auto_increment not null, + test_string varchar(255), + constraint pk_migtest_e_history primary key (id) +); + +create table migtest_e_history2 ( + id integer auto_increment not null, + test_string varchar(255), + obsolete_string1 varchar(255), + obsolete_string2 varchar(255), + constraint pk_migtest_e_history2 primary key (id) +); + +create table migtest_e_history3 ( + id integer auto_increment not null, + test_string varchar(255), + constraint pk_migtest_e_history3 primary key (id) +); + +create table migtest_e_history4 ( + id integer auto_increment not null, + test_number integer, + constraint pk_migtest_e_history4 primary key (id) +); + +create table migtest_e_history5 ( + id integer auto_increment not null, + test_number integer, + constraint pk_migtest_e_history5 primary key (id) +); + +create table migtest_e_history6 ( + id integer auto_increment not null, + test_number1 integer, + test_number2 integer not null, + constraint pk_migtest_e_history6 primary key (id) +); + +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) +); + +create table migtest_e_softdelete ( + id integer auto_increment not null, + test_string varchar(255), + 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); +create index ix_migtest_fk_cascade_one_id on 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 restrict; + +create index ix_migtest_fk_set_null_one_id on migtest_fk_set_null (one_id); +alter table migtest_fk_set_null add constraint fk_migtest_fk_set_null_one_id foreign key (one_id) references migtest_fk_one (id) on delete set null on update restrict; + +create index ix_migtest_e_basic_eref_id on migtest_e_basic (eref_id); +alter table migtest_e_basic add constraint fk_migtest_e_basic_eref_id foreign key (eref_id) references migtest_e_ref (id) on delete restrict on update restrict; + +alter table migtest_e_history2 add column sys_period_start datetime(6) default now(6); +alter table migtest_e_history2 add column sys_period_end datetime(6); +create table migtest_e_history2_history( + id integer, + test_string varchar(255), + obsolete_string1 varchar(255), + obsolete_string2 varchar(255), + sys_period_start datetime(6), + sys_period_end datetime(6) +); +create view migtest_e_history2_with_history as select * from migtest_e_history2 union all select * from migtest_e_history2_history; + +alter table migtest_e_history3 add column sys_period_start datetime(6) default now(6); +alter table migtest_e_history3 add column sys_period_end datetime(6); +create table migtest_e_history3_history( + id integer, + test_string varchar(255), + sys_period_start datetime(6), + sys_period_end datetime(6) +); +create view migtest_e_history3_with_history as select * from migtest_e_history3 union all select * from migtest_e_history3_history; + +alter table migtest_e_history4 add column sys_period_start datetime(6) default now(6); +alter table migtest_e_history4 add column sys_period_end datetime(6); +create table migtest_e_history4_history( + id integer, + test_number integer, + sys_period_start datetime(6), + sys_period_end datetime(6) +); +create view migtest_e_history4_with_history as select * from migtest_e_history4 union all select * from migtest_e_history4_history; + +alter table migtest_e_history5 add column sys_period_start datetime(6) default now(6); +alter table migtest_e_history5 add column sys_period_end datetime(6); +create table migtest_e_history5_history( + id integer, + test_number integer, + sys_period_start datetime(6), + sys_period_end datetime(6) +); +create view migtest_e_history5_with_history as select * from migtest_e_history5 union all select * from migtest_e_history5_history; + +alter table migtest_e_history6 add column sys_period_start datetime(6) default now(6); +alter table migtest_e_history6 add column sys_period_end datetime(6); +create table migtest_e_history6_history( + id integer, + test_number1 integer, + test_number2 integer, + sys_period_start datetime(6), + sys_period_end datetime(6) +); +create view migtest_e_history6_with_history as select * from migtest_e_history6 union all select * from migtest_e_history6_history; + +delimiter $$ +create trigger migtest_e_history2_history_upd before update on migtest_e_history2 for each row begin + insert into migtest_e_history2_history (sys_period_start,sys_period_end,id, test_string, obsolete_string2) values (OLD.sys_period_start, now(6),OLD.id, OLD.test_string, OLD.obsolete_string2); + set NEW.sys_period_start = now(6); +end$$ +delimiter $$ +create trigger migtest_e_history2_history_del before delete on migtest_e_history2 for each row begin + insert into migtest_e_history2_history (sys_period_start,sys_period_end,id, test_string, obsolete_string2) values (OLD.sys_period_start, now(6),OLD.id, OLD.test_string, OLD.obsolete_string2); +end$$ +delimiter $$ +create trigger migtest_e_history3_history_upd before update on migtest_e_history3 for each row begin + insert into migtest_e_history3_history (sys_period_start,sys_period_end,id, test_string) values (OLD.sys_period_start, now(6),OLD.id, OLD.test_string); + set NEW.sys_period_start = now(6); +end$$ +delimiter $$ +create trigger migtest_e_history3_history_del before delete on migtest_e_history3 for each row begin + insert into migtest_e_history3_history (sys_period_start,sys_period_end,id, test_string) values (OLD.sys_period_start, now(6),OLD.id, OLD.test_string); +end$$ +delimiter $$ +create trigger migtest_e_history4_history_upd before update on migtest_e_history4 for each row begin + insert into migtest_e_history4_history (sys_period_start,sys_period_end,id, test_number) values (OLD.sys_period_start, now(6),OLD.id, OLD.test_number); + set NEW.sys_period_start = now(6); +end$$ +delimiter $$ +create trigger migtest_e_history4_history_del before delete on migtest_e_history4 for each row begin + insert into migtest_e_history4_history (sys_period_start,sys_period_end,id, test_number) values (OLD.sys_period_start, now(6),OLD.id, OLD.test_number); +end$$ +delimiter $$ +create trigger migtest_e_history5_history_upd before update on migtest_e_history5 for each row begin + insert into migtest_e_history5_history (sys_period_start,sys_period_end,id, test_number) values (OLD.sys_period_start, now(6),OLD.id, OLD.test_number); + set NEW.sys_period_start = now(6); +end$$ +delimiter $$ +create trigger migtest_e_history5_history_del before delete on migtest_e_history5 for each row begin + insert into migtest_e_history5_history (sys_period_start,sys_period_end,id, test_number) values (OLD.sys_period_start, now(6),OLD.id, OLD.test_number); +end$$ +delimiter $$ +create trigger migtest_e_history6_history_upd before update on migtest_e_history6 for each row begin + insert into migtest_e_history6_history (sys_period_start,sys_period_end,id, test_number1, test_number2) values (OLD.sys_period_start, now(6),OLD.id, OLD.test_number1, OLD.test_number2); + set NEW.sys_period_start = now(6); +end$$ +delimiter $$ +create trigger migtest_e_history6_history_del before delete on migtest_e_history6 for each row begin + insert into migtest_e_history6_history (sys_period_start,sys_period_end,id, test_number1, test_number2) values (OLD.sys_period_start, now(6),OLD.id, OLD.test_number1, OLD.test_number2); +end$$ diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/mysql/1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/mysql/1.1.sql new file mode 100644 index 000000000..e3e5bf26a --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/mysql/1.1.sql @@ -0,0 +1,191 @@ +-- Migrationscripts for ebean unittest +-- drop dependencies +drop view if exists migtest_e_history2_with_history; +drop view if exists migtest_e_history3_with_history; +drop view if exists migtest_e_history4_with_history; +drop view if exists migtest_e_history5_with_history; + +-- apply changes +create table migtest_e_user ( + id integer auto_increment not null, + 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 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; +alter table migtest_fk_none_via_join add constraint fk_migtest_fk_none_via_join_one_id foreign key (one_id) references migtest_fk_one (id) on delete restrict on update restrict; +alter table migtest_fk_set_null drop foreign key fk_migtest_fk_set_null_one_id; +alter table migtest_fk_set_null add constraint fk_migtest_fk_set_null_one_id foreign key (one_id) references migtest_fk_one (id) on delete restrict on update restrict; + +update migtest_e_basic set status = 'A' where status is null; +alter table migtest_e_basic alter status set default 'A'; +alter table migtest_e_basic modify status varchar(1) not null; +alter table migtest_e_basic alter status2 drop default; +alter table migtest_e_basic modify status2 varchar(127); + +-- rename all collisions; +alter table migtest_e_basic add constraint uq_migtest_e_basic_description unique (description); + +insert into migtest_e_user (id) select distinct user_id from migtest_e_basic; +alter table migtest_e_basic add constraint fk_migtest_e_basic_user_id foreign key (user_id) references migtest_e_user (id) on delete restrict on update restrict; +alter table migtest_e_basic modify user_id integer; +alter table migtest_e_basic add column new_string_field varchar(255) default 'foo''bar' not null; +alter table migtest_e_basic add column new_boolean_field tinyint(1) default 1 not null; +update migtest_e_basic set new_boolean_field = old_boolean; + +alter table migtest_e_basic add column new_boolean_field2 tinyint(1) default 1 not null; +alter table migtest_e_basic add column progress integer default 0 not null; +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); +alter table migtest_e_history modify test_string bigint; +alter table migtest_e_history comment = 'We have history now'; + +-- NOTE: table has @History - special migration may be necessary +update migtest_e_history2 set test_string = 'unknown' where test_string is null; +alter table migtest_e_history2 alter test_string set default 'unknown'; +alter table migtest_e_history2 modify test_string varchar(255) not null; +alter table migtest_e_history2 add column test_string2 varchar(255); +alter table migtest_e_history2 add column test_string3 varchar(255) default 'unknown' not null; +alter table migtest_e_history2 add column new_column varchar(20); +alter table migtest_e_history2_history add column test_string2 varchar(255); +alter table migtest_e_history2_history add column test_string3 varchar(255) default 'unknown'; +alter table migtest_e_history2_history add column new_column varchar(20); + +alter table migtest_e_history4 modify test_number bigint; +alter table migtest_e_history4_history modify test_number bigint; +alter table migtest_e_history5 add column test_boolean tinyint(1) default 0 not null; +alter table migtest_e_history5_history add column test_boolean tinyint(1) default 0; + + +-- NOTE: table has @History - special migration may be necessary +update migtest_e_history6 set test_number1 = 42 where test_number1 is null; +alter table migtest_e_history6 alter test_number1 set default 42; +alter table migtest_e_history6 modify test_number1 integer not null; +alter table migtest_e_history6 modify test_number2 integer; +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; +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_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_m on migtest_mtm_c_migtest_mtm_m (migtest_mtm_m_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_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_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_c on migtest_mtm_m_migtest_mtm_c (migtest_mtm_c_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_ckey_parent_assoc_id on migtest_ckey_parent (assoc_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; + +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( + id integer, + test_string bigint, + sys_period_start datetime(6), + sys_period_end datetime(6) +); +create view migtest_e_history_with_history as select * from migtest_e_history union all select * from migtest_e_history_history; + +create view migtest_e_history2_with_history as select * from migtest_e_history2 union all select * from migtest_e_history2_history; + +create view migtest_e_history3_with_history as select * from migtest_e_history3 union all select * from migtest_e_history3_history; + +create view migtest_e_history4_with_history as select * from migtest_e_history4 union all select * from migtest_e_history4_history; + +create view migtest_e_history5_with_history as select * from migtest_e_history5 union all select * from migtest_e_history5_history; + +delimiter $$ +create trigger migtest_e_history_history_upd before update on migtest_e_history for each row begin + insert into migtest_e_history_history (sys_period_start,sys_period_end,id, test_string) values (OLD.sys_period_start, now(6),OLD.id, OLD.test_string); + set NEW.sys_period_start = now(6); +end$$ +delimiter $$ +create trigger migtest_e_history_history_del before delete on migtest_e_history for each row begin + insert into migtest_e_history_history (sys_period_start,sys_period_end,id, test_string) values (OLD.sys_period_start, now(6),OLD.id, OLD.test_string); +end$$ +lock tables migtest_e_history2 write, migtest_e_history3 write, migtest_e_history4 write, migtest_e_history5 write; +-- changes: [add test_string2, add test_string3, add new_column] +drop trigger migtest_e_history2_history_upd; +drop trigger migtest_e_history2_history_del; +delimiter $$ +create trigger migtest_e_history2_history_upd before update on migtest_e_history2 for each row begin + insert into migtest_e_history2_history (sys_period_start,sys_period_end,id, test_string, test_string3, new_column, obsolete_string1, obsolete_string2) values (OLD.sys_period_start, now(6),OLD.id, OLD.test_string, OLD.test_string3, OLD.new_column, OLD.obsolete_string1, OLD.obsolete_string2); + set NEW.sys_period_start = now(6); +end$$ +delimiter $$ +create trigger migtest_e_history2_history_del before delete on migtest_e_history2 for each row begin + insert into migtest_e_history2_history (sys_period_start,sys_period_end,id, test_string, test_string3, new_column, obsolete_string1, obsolete_string2) values (OLD.sys_period_start, now(6),OLD.id, OLD.test_string, OLD.test_string3, OLD.new_column, OLD.obsolete_string1, OLD.obsolete_string2); +end$$ +-- changes: [exclude test_string] +drop trigger migtest_e_history3_history_upd; +drop trigger migtest_e_history3_history_del; +delimiter $$ +create trigger migtest_e_history3_history_upd before update on migtest_e_history3 for each row begin + insert into migtest_e_history3_history (sys_period_start,sys_period_end,id) values (OLD.sys_period_start, now(6),OLD.id); + set NEW.sys_period_start = now(6); +end$$ +delimiter $$ +create trigger migtest_e_history3_history_del before delete on migtest_e_history3 for each row begin + insert into migtest_e_history3_history (sys_period_start,sys_period_end,id) values (OLD.sys_period_start, now(6),OLD.id); +end$$ +-- changes: [alter test_number] +drop trigger migtest_e_history4_history_upd; +drop trigger migtest_e_history4_history_del; +delimiter $$ +create trigger migtest_e_history4_history_upd before update on migtest_e_history4 for each row begin + insert into migtest_e_history4_history (sys_period_start,sys_period_end,id, test_number) values (OLD.sys_period_start, now(6),OLD.id, OLD.test_number); + set NEW.sys_period_start = now(6); +end$$ +delimiter $$ +create trigger migtest_e_history4_history_del before delete on migtest_e_history4 for each row begin + insert into migtest_e_history4_history (sys_period_start,sys_period_end,id, test_number) values (OLD.sys_period_start, now(6),OLD.id, OLD.test_number); +end$$ +-- changes: [add test_boolean] +drop trigger migtest_e_history5_history_upd; +drop trigger migtest_e_history5_history_del; +delimiter $$ +create trigger migtest_e_history5_history_upd before update on migtest_e_history5 for each row begin + insert into migtest_e_history5_history (sys_period_start,sys_period_end,id, test_number, test_boolean) values (OLD.sys_period_start, now(6),OLD.id, OLD.test_number, OLD.test_boolean); + set NEW.sys_period_start = now(6); +end$$ +delimiter $$ +create trigger migtest_e_history5_history_del before delete on migtest_e_history5 for each row begin + insert into migtest_e_history5_history (sys_period_start,sys_period_end,id, test_number, test_boolean) values (OLD.sys_period_start, now(6),OLD.id, OLD.test_number, OLD.test_boolean); +end$$ +unlock tables; diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/mysql/1.2__dropsFor_1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/mysql/1.2__dropsFor_1.1.sql new file mode 100644 index 000000000..b3317f701 --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/mysql/1.2__dropsFor_1.1.sql @@ -0,0 +1,34 @@ +-- Migrationscripts for ebean unittest +-- drop dependencies +drop view if exists migtest_e_history2_with_history; + +-- apply changes +alter table migtest_e_basic drop column old_boolean; + +alter table migtest_e_basic drop column old_boolean2; + +alter table migtest_e_basic drop column eref_id; + +alter table migtest_e_history2 drop column obsolete_string1; +alter table migtest_e_history2_history drop column obsolete_string1; + +alter table migtest_e_history2 drop column obsolete_string2; +alter table migtest_e_history2_history drop column obsolete_string2; + +drop table if exists migtest_e_ref; +create view migtest_e_history2_with_history as select * from migtest_e_history2 union all select * from migtest_e_history2_history; + +lock tables migtest_e_history2 write; +-- changes: [drop obsolete_string1, drop obsolete_string2] +drop trigger migtest_e_history2_history_upd; +drop trigger migtest_e_history2_history_del; +delimiter $$ +create trigger migtest_e_history2_history_upd before update on migtest_e_history2 for each row begin + insert into migtest_e_history2_history (sys_period_start,sys_period_end,id, test_string, test_string3, new_column) values (OLD.sys_period_start, now(6),OLD.id, OLD.test_string, OLD.test_string3, OLD.new_column); + set NEW.sys_period_start = now(6); +end$$ +delimiter $$ +create trigger migtest_e_history2_history_del before delete on migtest_e_history2 for each row begin + insert into migtest_e_history2_history (sys_period_start,sys_period_end,id, test_string, test_string3, new_column) values (OLD.sys_period_start, now(6),OLD.id, OLD.test_string, OLD.test_string3, OLD.new_column); +end$$ +unlock tables; diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/mysql/1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/mysql/1.3.sql new file mode 100644 index 000000000..6953c06f5 --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/mysql/1.3.sql @@ -0,0 +1,115 @@ +-- Migrationscripts for ebean unittest +-- drop dependencies +drop view if exists migtest_e_history2_with_history; +drop view if exists migtest_e_history3_with_history; +drop view if exists migtest_e_history4_with_history; + +-- 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 restrict; +alter table migtest_fk_none drop foreign key fk_migtest_fk_none_one_id; +alter table migtest_fk_none_via_join drop foreign key fk_migtest_fk_none_via_join_one_id; +alter table migtest_fk_set_null drop foreign key fk_migtest_fk_set_null_one_id; +alter table migtest_fk_set_null add constraint fk_migtest_fk_set_null_one_id foreign key (one_id) references migtest_fk_one (id) on delete set null on update restrict; +alter table migtest_e_basic alter status drop default; +alter table migtest_e_basic modify status varchar(1); + +update migtest_e_basic set status2 = 'N' where status2 is null; +alter table migtest_e_basic alter status2 set default 'N'; +alter table migtest_e_basic modify status2 varchar(1) not null; +alter table migtest_e_basic drop index uq_migtest_e_basic_description; + +update migtest_e_basic set user_id = 23 where user_id is null; +alter table migtest_e_basic drop foreign key fk_migtest_e_basic_user_id; +alter table migtest_e_basic alter user_id set default 23; +alter table migtest_e_basic modify user_id integer not null; +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; +alter table migtest_e_basic add constraint uq_migtest_e_basic_indextest2 unique (indextest2); +alter table migtest_e_basic add constraint uq_migtest_e_basic_indextest6 unique (indextest6); +alter table migtest_e_history comment = ''; +alter table migtest_e_history2 alter test_string drop default; +alter table migtest_e_history2 modify test_string varchar(255); +alter table migtest_e_history2 add column obsolete_string1 varchar(255); +alter table migtest_e_history2 add column obsolete_string2 varchar(255); +alter table migtest_e_history2_history add column obsolete_string1 varchar(255); +alter table migtest_e_history2_history add column obsolete_string2 varchar(255); + +alter table migtest_e_history4 modify test_number integer; +alter table migtest_e_history4_history modify test_number integer; +alter table migtest_e_history6 alter test_number1 drop default; +alter table migtest_e_history6 modify test_number1 integer; + +-- NOTE: table has @History - special migration may be necessary +update migtest_e_history6 set test_number2 = 7 where test_number2 is null; +alter table migtest_e_history6 alter test_number2 set default 7; +alter table migtest_e_history6 modify test_number2 integer not null; +alter table migtest_oto_child add constraint uq_m12_otoc72 unique (name); +alter table migtest_oto_master add constraint uq_migtest_oto_master_name unique (name); +create index ix_migtest_e_basic_indextest1 on migtest_e_basic (indextest1); +create index ix_migtest_e_basic_indextest5 on migtest_e_basic (indextest5); +create index ix_m12_otoc72 on migtest_oto_child (name); +create index ix_migtest_oto_master_name on migtest_oto_master (name); +drop index ix_migtest_e_basic_indextest3 on migtest_e_basic; +drop index ix_migtest_e_basic_indextest6 on migtest_e_basic; +create index ix_migtest_e_basic_eref_id on migtest_e_basic (eref_id); +alter table migtest_e_basic add constraint fk_migtest_e_basic_eref_id foreign key (eref_id) references migtest_e_ref (id) on delete restrict on update restrict; + +create view migtest_e_history2_with_history as select * from migtest_e_history2 union all select * from migtest_e_history2_history; + +create view migtest_e_history3_with_history as select * from migtest_e_history3 union all select * from migtest_e_history3_history; + +create view migtest_e_history4_with_history as select * from migtest_e_history4 union all select * from migtest_e_history4_history; + +lock tables migtest_e_history2 write, migtest_e_history3 write, migtest_e_history4 write; +-- changes: [add obsolete_string1, add obsolete_string2] +drop trigger migtest_e_history2_history_upd; +drop trigger migtest_e_history2_history_del; +delimiter $$ +create trigger migtest_e_history2_history_upd before update on migtest_e_history2 for each row begin + insert into migtest_e_history2_history (sys_period_start,sys_period_end,id, test_string, obsolete_string2, test_string2, test_string3, new_column) values (OLD.sys_period_start, now(6),OLD.id, OLD.test_string, OLD.obsolete_string2, OLD.test_string2, OLD.test_string3, OLD.new_column); + set NEW.sys_period_start = now(6); +end$$ +delimiter $$ +create trigger migtest_e_history2_history_del before delete on migtest_e_history2 for each row begin + insert into migtest_e_history2_history (sys_period_start,sys_period_end,id, test_string, obsolete_string2, test_string2, test_string3, new_column) values (OLD.sys_period_start, now(6),OLD.id, OLD.test_string, OLD.obsolete_string2, OLD.test_string2, OLD.test_string3, OLD.new_column); +end$$ +-- changes: [include test_string] +drop trigger migtest_e_history3_history_upd; +drop trigger migtest_e_history3_history_del; +delimiter $$ +create trigger migtest_e_history3_history_upd before update on migtest_e_history3 for each row begin + insert into migtest_e_history3_history (sys_period_start,sys_period_end,id, test_string) values (OLD.sys_period_start, now(6),OLD.id, OLD.test_string); + set NEW.sys_period_start = now(6); +end$$ +delimiter $$ +create trigger migtest_e_history3_history_del before delete on migtest_e_history3 for each row begin + insert into migtest_e_history3_history (sys_period_start,sys_period_end,id, test_string) values (OLD.sys_period_start, now(6),OLD.id, OLD.test_string); +end$$ +-- changes: [alter test_number] +drop trigger migtest_e_history4_history_upd; +drop trigger migtest_e_history4_history_del; +delimiter $$ +create trigger migtest_e_history4_history_upd before update on migtest_e_history4 for each row begin + insert into migtest_e_history4_history (sys_period_start,sys_period_end,id, test_number) values (OLD.sys_period_start, now(6),OLD.id, OLD.test_number); + set NEW.sys_period_start = now(6); +end$$ +delimiter $$ +create trigger migtest_e_history4_history_del before delete on migtest_e_history4 for each row begin + insert into migtest_e_history4_history (sys_period_start,sys_period_end,id, test_number) values (OLD.sys_period_start, now(6),OLD.id, OLD.test_number); +end$$ +unlock tables; diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/mysql/1.4__dropsFor_1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/mysql/1.4__dropsFor_1.3.sql new file mode 100644 index 000000000..ff8fa50d0 --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/mysql/1.4__dropsFor_1.3.sql @@ -0,0 +1,78 @@ +-- Migrationscripts for ebean unittest +-- drop dependencies +drop trigger migtest_e_history_history_upd; +drop trigger migtest_e_history_history_del; +drop view migtest_e_history_with_history; +alter table migtest_e_history drop column sys_period_start; +alter table migtest_e_history drop column sys_period_end; +drop table migtest_e_history_history; + +drop view if exists migtest_e_history2_with_history; +drop view if exists migtest_e_history5_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; + +alter table migtest_e_basic drop column new_boolean_field2; + +alter table migtest_e_basic drop column progress; + +alter table migtest_e_basic drop column new_integer; + +alter table migtest_e_history2 drop column test_string2; +alter table migtest_e_history2_history drop column test_string2; + +alter table migtest_e_history2 drop column test_string3; +alter table migtest_e_history2_history drop column test_string3; + +alter table migtest_e_history2 drop column new_column; +alter table migtest_e_history2_history drop column new_column; + +alter table migtest_e_history5 drop column test_boolean; +alter table migtest_e_history5_history drop column test_boolean; + +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; +create view migtest_e_history2_with_history as select * from migtest_e_history2 union all select * from migtest_e_history2_history; + +create view migtest_e_history5_with_history as select * from migtest_e_history5 union all select * from migtest_e_history5_history; + +lock tables migtest_e_history2 write, migtest_e_history5 write; +-- changes: [drop test_string2, drop test_string3, drop new_column] +drop trigger migtest_e_history2_history_upd; +drop trigger migtest_e_history2_history_del; +delimiter $$ +create trigger migtest_e_history2_history_upd before update on migtest_e_history2 for each row begin + insert into migtest_e_history2_history (sys_period_start,sys_period_end,id, test_string, obsolete_string2) values (OLD.sys_period_start, now(6),OLD.id, OLD.test_string, OLD.obsolete_string2); + set NEW.sys_period_start = now(6); +end$$ +delimiter $$ +create trigger migtest_e_history2_history_del before delete on migtest_e_history2 for each row begin + insert into migtest_e_history2_history (sys_period_start,sys_period_end,id, test_string, obsolete_string2) values (OLD.sys_period_start, now(6),OLD.id, OLD.test_string, OLD.obsolete_string2); +end$$ +-- changes: [drop test_boolean] +drop trigger migtest_e_history5_history_upd; +drop trigger migtest_e_history5_history_del; +delimiter $$ +create trigger migtest_e_history5_history_upd before update on migtest_e_history5 for each row begin + insert into migtest_e_history5_history (sys_period_start,sys_period_end,id, test_number) values (OLD.sys_period_start, now(6),OLD.id, OLD.test_number); + set NEW.sys_period_start = now(6); +end$$ +delimiter $$ +create trigger migtest_e_history5_history_del before delete on migtest_e_history5 for each row begin + insert into migtest_e_history5_history (sys_period_start,sys_period_end,id, test_number) values (OLD.sys_period_start, now(6),OLD.id, OLD.test_number); +end$$ +unlock tables; diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/mysql/R__order_views.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/mysql/R__order_views.sql new file mode 100644 index 000000000..ccf30a2c6 --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/mysql/R__order_views.sql @@ -0,0 +1,7 @@ + + create or replace view order_agg_vw as + select d.order_id, sum(d.order_qty * d.unit_price) as order_total, + sum(d.ship_qty * d.unit_price) as ship_total + from o_order_detail d + group by d.order_id + \ No newline at end of file diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/mysql/idx_mysql.migrations b/ebean-test/src/test/resources/migrationtest/dbmigration/mysql/idx_mysql.migrations new file mode 100644 index 000000000..43fcfeacb --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/mysql/idx_mysql.migrations @@ -0,0 +1,7 @@ +-1087663151, 1.0__initial.sql +880212944, 1.1.sql +1029390755, 1.2__dropsFor_1.1.sql +-380371830, 1.3.sql +1085680731, 1.4__dropsFor_1.3.sql +561281075, R__order_views.sql + diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/nuodb/1.0__initial.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/nuodb/1.0__initial.sql new file mode 100644 index 000000000..a6ef6fb83 --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/nuodb/1.0__initial.sql @@ -0,0 +1,292 @@ +-- 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, + constraint pk_migtest_fk_cascade primary key (id) +); + +create table migtest_fk_cascade_one ( + id bigint generated by default as identity not null, + constraint pk_migtest_fk_cascade_one primary key (id) +); + +create table migtest_fk_none ( + id bigint generated by default as identity not null, + one_id bigint, + constraint pk_migtest_fk_none primary key (id) +); + +create table migtest_fk_none_via_join ( + id bigint generated by default as identity not null, + one_id bigint, + constraint pk_migtest_fk_none_via_join primary key (id) +); + +create table migtest_fk_one ( + id bigint generated by default as identity not null, + constraint pk_migtest_fk_one primary key (id) +); + +create table migtest_fk_set_null ( + id bigint generated by default as identity not null, + one_id bigint, + constraint pk_migtest_fk_set_null primary key (id) +); + +create table migtest_e_basic ( + id integer generated by default as identity not null, + status varchar(1), + status2 varchar(1) default 'N' not null, + name varchar(127), + description varchar(127), + some_date timestamp, + old_boolean boolean default false not null, + old_boolean2 boolean, + eref_id integer, + indextest1 varchar(127), + indextest2 varchar(127), + indextest3 varchar(127), + indextest4 varchar(127), + indextest5 varchar(127), + indextest6 varchar(127), + user_id integer not null, + constraint ck_migtest_e_basic_status check ( status in ('N','A','I')), + constraint ck_migtest_e_basic_status2 check ( status2 in ('N','A','I')), + constraint uq_migtest_e_basic_indextest2 unique (indextest2), + constraint uq_migtest_e_basic_indextest6 unique (indextest6), + constraint pk_migtest_e_basic primary key (id) +); + +create table migtest_e_enum ( + id integer generated by default as identity not null, + test_status varchar(1), + constraint ck_migtest_e_enum_test_status check ( test_status in ('N','A','I')), + constraint pk_migtest_e_enum primary key (id) +); + +create table migtest_e_history ( + id integer generated by default as identity not null, + test_string varchar(255), + constraint pk_migtest_e_history primary key (id) +); + +create table migtest_e_history2 ( + id integer generated by default as identity not null, + test_string varchar(255), + obsolete_string1 varchar(255), + obsolete_string2 varchar(255), + constraint pk_migtest_e_history2 primary key (id) +); + +create table migtest_e_history3 ( + id integer generated by default as identity not null, + test_string varchar(255), + constraint pk_migtest_e_history3 primary key (id) +); + +create table migtest_e_history4 ( + id integer generated by default as identity not null, + test_number integer, + constraint pk_migtest_e_history4 primary key (id) +); + +create table migtest_e_history5 ( + id integer generated by default as identity not null, + test_number integer, + constraint pk_migtest_e_history5 primary key (id) +); + +create table migtest_e_history6 ( + id integer generated by default as identity not null, + test_number1 integer, + test_number2 integer not null, + constraint pk_migtest_e_history6 primary key (id) +); + +create table migtest_e_ref ( + id integer generated by default as identity not null, + name varchar(127) not null, + constraint uq_migtest_e_ref_name unique (name), + constraint pk_migtest_e_ref primary key (id) +); + +create table migtest_e_softdelete ( + id integer generated by default as identity not null, + test_string varchar(255), + 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); +create index ix_migtest_fk_cascade_one_id on 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; + +create index ix_migtest_fk_set_null_one_id on migtest_fk_set_null (one_id); +alter table migtest_fk_set_null add constraint fk_migtest_fk_set_null_one_id foreign key (one_id) references migtest_fk_one (id); + +create index ix_migtest_e_basic_eref_id on migtest_e_basic (eref_id); +alter table migtest_e_basic add constraint fk_migtest_e_basic_eref_id foreign key (eref_id) references migtest_e_ref (id); + +alter table migtest_e_history2 add column sys_period_start datetime(6) default now(); +alter table migtest_e_history2 add column sys_period_end datetime(6); +create table migtest_e_history2_history( + id integer, + test_string varchar(255), + obsolete_string1 varchar(255), + obsolete_string2 varchar(255), + sys_period_start datetime(6), + sys_period_end datetime(6) +); +create view migtest_e_history2_with_history as select * from migtest_e_history2 union all select * from migtest_e_history2_history; + +alter table migtest_e_history3 add column sys_period_start datetime(6) default now(); +alter table migtest_e_history3 add column sys_period_end datetime(6); +create table migtest_e_history3_history( + id integer, + test_string varchar(255), + sys_period_start datetime(6), + sys_period_end datetime(6) +); +create view migtest_e_history3_with_history as select * from migtest_e_history3 union all select * from migtest_e_history3_history; + +alter table migtest_e_history4 add column sys_period_start datetime(6) default now(); +alter table migtest_e_history4 add column sys_period_end datetime(6); +create table migtest_e_history4_history( + id integer, + test_number integer, + sys_period_start datetime(6), + sys_period_end datetime(6) +); +create view migtest_e_history4_with_history as select * from migtest_e_history4 union all select * from migtest_e_history4_history; + +alter table migtest_e_history5 add column sys_period_start datetime(6) default now(); +alter table migtest_e_history5 add column sys_period_end datetime(6); +create table migtest_e_history5_history( + id integer, + test_number integer, + sys_period_start datetime(6), + sys_period_end datetime(6) +); +create view migtest_e_history5_with_history as select * from migtest_e_history5 union all select * from migtest_e_history5_history; + +alter table migtest_e_history6 add column sys_period_start datetime(6) default now(); +alter table migtest_e_history6 add column sys_period_end datetime(6); +create table migtest_e_history6_history( + id integer, + test_number1 integer, + test_number2 integer, + sys_period_start datetime(6), + sys_period_end datetime(6) +); +create view migtest_e_history6_with_history as select * from migtest_e_history6 union all select * from migtest_e_history6_history; + +delimiter $$ +create or replace trigger migtest_e_history2_history_upd for migtest_e_history2 before update for each row as + NEW.sys_period_start = greatest(current_timestamp, date_add(OLD.sys_period_start, interval 1 microsecond)); + insert into migtest_e_history2_history (sys_period_start,sys_period_end,id, test_string, obsolete_string2) values (OLD.sys_period_start, NEW.sys_period_start,OLD.id, OLD.test_string, OLD.obsolete_string2); +end_trigger; +$$ + +delimiter $$ +create or replace trigger migtest_e_history2_history_del for migtest_e_history2 before delete for each row as + insert into migtest_e_history2_history (sys_period_start,sys_period_end,id, test_string, obsolete_string2) values (OLD.sys_period_start, NEW.sys_period_start,OLD.id, OLD.test_string, OLD.obsolete_string2); +end_trigger; +$$ + +delimiter $$ +create or replace trigger migtest_e_history3_history_upd for migtest_e_history3 before update for each row as + NEW.sys_period_start = greatest(current_timestamp, date_add(OLD.sys_period_start, interval 1 microsecond)); + insert into migtest_e_history3_history (sys_period_start,sys_period_end,id, test_string) values (OLD.sys_period_start, NEW.sys_period_start,OLD.id, OLD.test_string); +end_trigger; +$$ + +delimiter $$ +create or replace trigger migtest_e_history3_history_del for migtest_e_history3 before delete for each row as + insert into migtest_e_history3_history (sys_period_start,sys_period_end,id, test_string) values (OLD.sys_period_start, NEW.sys_period_start,OLD.id, OLD.test_string); +end_trigger; +$$ + +delimiter $$ +create or replace trigger migtest_e_history4_history_upd for migtest_e_history4 before update for each row as + NEW.sys_period_start = greatest(current_timestamp, date_add(OLD.sys_period_start, interval 1 microsecond)); + insert into migtest_e_history4_history (sys_period_start,sys_period_end,id, test_number) values (OLD.sys_period_start, NEW.sys_period_start,OLD.id, OLD.test_number); +end_trigger; +$$ + +delimiter $$ +create or replace trigger migtest_e_history4_history_del for migtest_e_history4 before delete for each row as + insert into migtest_e_history4_history (sys_period_start,sys_period_end,id, test_number) values (OLD.sys_period_start, NEW.sys_period_start,OLD.id, OLD.test_number); +end_trigger; +$$ + +delimiter $$ +create or replace trigger migtest_e_history5_history_upd for migtest_e_history5 before update for each row as + NEW.sys_period_start = greatest(current_timestamp, date_add(OLD.sys_period_start, interval 1 microsecond)); + insert into migtest_e_history5_history (sys_period_start,sys_period_end,id, test_number) values (OLD.sys_period_start, NEW.sys_period_start,OLD.id, OLD.test_number); +end_trigger; +$$ + +delimiter $$ +create or replace trigger migtest_e_history5_history_del for migtest_e_history5 before delete for each row as + insert into migtest_e_history5_history (sys_period_start,sys_period_end,id, test_number) values (OLD.sys_period_start, NEW.sys_period_start,OLD.id, OLD.test_number); +end_trigger; +$$ + +delimiter $$ +create or replace trigger migtest_e_history6_history_upd for migtest_e_history6 before update for each row as + NEW.sys_period_start = greatest(current_timestamp, date_add(OLD.sys_period_start, interval 1 microsecond)); + insert into migtest_e_history6_history (sys_period_start,sys_period_end,id, test_number1, test_number2) values (OLD.sys_period_start, NEW.sys_period_start,OLD.id, OLD.test_number1, OLD.test_number2); +end_trigger; +$$ + +delimiter $$ +create or replace trigger migtest_e_history6_history_del for migtest_e_history6 before delete for each row as + insert into migtest_e_history6_history (sys_period_start,sys_period_end,id, test_number1, test_number2) values (OLD.sys_period_start, NEW.sys_period_start,OLD.id, OLD.test_number1, OLD.test_number2); +end_trigger; +$$ + diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/nuodb/1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/nuodb/1.1.sql new file mode 100644 index 000000000..a294d7106 --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/nuodb/1.1.sql @@ -0,0 +1,214 @@ +-- Migrationscripts for ebean unittest +-- drop dependencies +drop view if exists migtest_e_history2_with_history; +drop view if exists migtest_e_history3_with_history; +drop view if exists migtest_e_history4_with_history; +drop view if exists migtest_e_history5_with_history; + +-- apply changes +create table migtest_e_user ( + id integer generated by default as identity not null, + 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); +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); +alter table migtest_fk_none add constraint fk_migtest_fk_none_one_id foreign key (one_id) references migtest_fk_one (id); +alter table migtest_fk_none_via_join add constraint fk_migtest_fk_none_via_join_one_id foreign key (one_id) references migtest_fk_one (id); +alter table migtest_fk_set_null drop constraint fk_migtest_fk_set_null_one_id; +alter table migtest_fk_set_null add constraint fk_migtest_fk_set_null_one_id foreign key (one_id) references migtest_fk_one (id); + +update migtest_e_basic set status = 'A' where status is null; +alter table migtest_e_basic drop constraint ck_migtest_e_basic_status; +alter table migtest_e_basic alter column status set default 'A'; +alter table migtest_e_basic alter column status set not null; +alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I','?')); +alter table migtest_e_basic drop constraint ck_migtest_e_basic_status2; +alter table migtest_e_basic alter column status2 varchar(127); +alter table migtest_e_basic alter column status2 drop default; +alter table migtest_e_basic alter column status2 set null; + +-- rename all collisions; +alter table migtest_e_basic add constraint uq_migtest_e_basic_description unique (description); + +insert into migtest_e_user (id) select distinct user_id from migtest_e_basic; +alter table migtest_e_basic add constraint fk_migtest_e_basic_user_id foreign key (user_id) references migtest_e_user (id); +alter table migtest_e_basic alter column user_id set null; +alter table migtest_e_basic add column new_string_field varchar(255) default 'foo''bar' not null; +alter table migtest_e_basic add column new_boolean_field boolean default true not null; +update migtest_e_basic set new_boolean_field = old_boolean; + +alter table migtest_e_basic add column new_boolean_field2 boolean default true not null; +alter table migtest_e_basic add column progress integer default 0 not null; +alter table migtest_e_basic add constraint ck_migtest_e_basic_progress check ( progress in (0,1,2)); +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); +alter table migtest_e_enum drop constraint ck_migtest_e_enum_test_status; +alter table migtest_e_history alter column test_string bigint; + +-- NOTE: table has @History - special migration may be necessary +update migtest_e_history2 set test_string = 'unknown' where test_string is null; +alter table migtest_e_history2 alter column test_string set default 'unknown'; +alter table migtest_e_history2 alter column test_string set not null; +alter table migtest_e_history2 add column test_string2 varchar(255); +alter table migtest_e_history2 add column test_string3 varchar(255) default 'unknown' not null; +alter table migtest_e_history2 add column new_column varchar(20); +alter table migtest_e_history2_history add column test_string2 varchar(255); +alter table migtest_e_history2_history add column test_string3 varchar(255) default 'unknown'; +alter table migtest_e_history2_history add column new_column varchar(20); + +alter table migtest_e_history4 alter column test_number bigint; +alter table migtest_e_history4_history alter column test_number bigint; +alter table migtest_e_history5 add column test_boolean boolean default false not null; +alter table migtest_e_history5_history add column test_boolean boolean default false; + + +-- NOTE: table has @History - special migration may be necessary +update migtest_e_history6 set test_number1 = 42 where test_number1 is null; +alter table migtest_e_history6 alter column test_number1 set default 42; +alter table migtest_e_history6 alter column test_number1 set not null; +alter table migtest_e_history6 alter column test_number2 set null; +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; +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_c foreign key (migtest_mtm_c_id) references migtest_mtm_c (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_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_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_m foreign key (migtest_mtm_m_id) references migtest_mtm_m (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_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_ckey_parent_assoc_id on migtest_ckey_parent (assoc_id); +alter table migtest_ckey_parent add constraint fk_migtest_ckey_parent_assoc_id foreign key (assoc_id) references migtest_ckey_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 column sys_period_start datetime(6) default now(); +alter table migtest_e_history add column sys_period_end datetime(6); +create table migtest_e_history_history( + id integer, + test_string bigint, + sys_period_start datetime(6), + sys_period_end datetime(6) +); +create view migtest_e_history_with_history as select * from migtest_e_history union all select * from migtest_e_history_history; + +create view migtest_e_history2_with_history as select * from migtest_e_history2 union all select * from migtest_e_history2_history; + +create view migtest_e_history3_with_history as select * from migtest_e_history3 union all select * from migtest_e_history3_history; + +create view migtest_e_history4_with_history as select * from migtest_e_history4 union all select * from migtest_e_history4_history; + +create view migtest_e_history5_with_history as select * from migtest_e_history5 union all select * from migtest_e_history5_history; + +delimiter $$ +create or replace trigger migtest_e_history_history_upd for migtest_e_history before update for each row as + NEW.sys_period_start = greatest(current_timestamp, date_add(OLD.sys_period_start, interval 1 microsecond)); + insert into migtest_e_history_history (sys_period_start,sys_period_end,id, test_string) values (OLD.sys_period_start, NEW.sys_period_start,OLD.id, OLD.test_string); +end_trigger; +$$ + +delimiter $$ +create or replace trigger migtest_e_history_history_del for migtest_e_history before delete for each row as + insert into migtest_e_history_history (sys_period_start,sys_period_end,id, test_string) values (OLD.sys_period_start, NEW.sys_period_start,OLD.id, OLD.test_string); +end_trigger; +$$ + +-- changes: [add test_string2, add test_string3, add new_column] +drop trigger migtest_e_history2_history_upd; +drop trigger migtest_e_history2_history_del; +delimiter $$ +create or replace trigger migtest_e_history2_history_upd for migtest_e_history2 before update for each row as + NEW.sys_period_start = greatest(current_timestamp, date_add(OLD.sys_period_start, interval 1 microsecond)); + insert into migtest_e_history2_history (sys_period_start,sys_period_end,id, test_string, test_string3, new_column, obsolete_string1, obsolete_string2) values (OLD.sys_period_start, NEW.sys_period_start,OLD.id, OLD.test_string, OLD.test_string3, OLD.new_column, OLD.obsolete_string1, OLD.obsolete_string2); +end_trigger; +$$ + +delimiter $$ +create or replace trigger migtest_e_history2_history_del for migtest_e_history2 before delete for each row as + insert into migtest_e_history2_history (sys_period_start,sys_period_end,id, test_string, test_string3, new_column, obsolete_string1, obsolete_string2) values (OLD.sys_period_start, NEW.sys_period_start,OLD.id, OLD.test_string, OLD.test_string3, OLD.new_column, OLD.obsolete_string1, OLD.obsolete_string2); +end_trigger; +$$ + +-- changes: [exclude test_string] +drop trigger migtest_e_history3_history_upd; +drop trigger migtest_e_history3_history_del; +delimiter $$ +create or replace trigger migtest_e_history3_history_upd for migtest_e_history3 before update for each row as + NEW.sys_period_start = greatest(current_timestamp, date_add(OLD.sys_period_start, interval 1 microsecond)); + insert into migtest_e_history3_history (sys_period_start,sys_period_end,id) values (OLD.sys_period_start, NEW.sys_period_start,OLD.id); +end_trigger; +$$ + +delimiter $$ +create or replace trigger migtest_e_history3_history_del for migtest_e_history3 before delete for each row as + insert into migtest_e_history3_history (sys_period_start,sys_period_end,id) values (OLD.sys_period_start, NEW.sys_period_start,OLD.id); +end_trigger; +$$ + +-- changes: [alter test_number] +drop trigger migtest_e_history4_history_upd; +drop trigger migtest_e_history4_history_del; +delimiter $$ +create or replace trigger migtest_e_history4_history_upd for migtest_e_history4 before update for each row as + NEW.sys_period_start = greatest(current_timestamp, date_add(OLD.sys_period_start, interval 1 microsecond)); + insert into migtest_e_history4_history (sys_period_start,sys_period_end,id, test_number) values (OLD.sys_period_start, NEW.sys_period_start,OLD.id, OLD.test_number); +end_trigger; +$$ + +delimiter $$ +create or replace trigger migtest_e_history4_history_del for migtest_e_history4 before delete for each row as + insert into migtest_e_history4_history (sys_period_start,sys_period_end,id, test_number) values (OLD.sys_period_start, NEW.sys_period_start,OLD.id, OLD.test_number); +end_trigger; +$$ + +-- changes: [add test_boolean] +drop trigger migtest_e_history5_history_upd; +drop trigger migtest_e_history5_history_del; +delimiter $$ +create or replace trigger migtest_e_history5_history_upd for migtest_e_history5 before update for each row as + NEW.sys_period_start = greatest(current_timestamp, date_add(OLD.sys_period_start, interval 1 microsecond)); + insert into migtest_e_history5_history (sys_period_start,sys_period_end,id, test_number, test_boolean) values (OLD.sys_period_start, NEW.sys_period_start,OLD.id, OLD.test_number, OLD.test_boolean); +end_trigger; +$$ + +delimiter $$ +create or replace trigger migtest_e_history5_history_del for migtest_e_history5 before delete for each row as + insert into migtest_e_history5_history (sys_period_start,sys_period_end,id, test_number, test_boolean) values (OLD.sys_period_start, NEW.sys_period_start,OLD.id, OLD.test_number, OLD.test_boolean); +end_trigger; +$$ + diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/nuodb/1.2__dropsFor_1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/nuodb/1.2__dropsFor_1.1.sql new file mode 100644 index 000000000..c6e454e20 --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/nuodb/1.2__dropsFor_1.1.sql @@ -0,0 +1,37 @@ +-- Migrationscripts for ebean unittest +-- drop dependencies +drop view if exists migtest_e_history2_with_history; + +-- apply changes +alter table migtest_e_basic drop column old_boolean; + +alter table migtest_e_basic drop column old_boolean2; + +alter table migtest_e_basic drop column eref_id; + +alter table migtest_e_history2 drop column obsolete_string1; +alter table migtest_e_history2_history drop column obsolete_string1; + +alter table migtest_e_history2 drop column obsolete_string2; +alter table migtest_e_history2_history drop column obsolete_string2; + +drop table if exists migtest_e_ref; +drop sequence if exists migtest_e_ref_seq; +create view migtest_e_history2_with_history as select * from migtest_e_history2 union all select * from migtest_e_history2_history; + +-- changes: [drop obsolete_string1, drop obsolete_string2] +drop trigger migtest_e_history2_history_upd; +drop trigger migtest_e_history2_history_del; +delimiter $$ +create or replace trigger migtest_e_history2_history_upd for migtest_e_history2 before update for each row as + NEW.sys_period_start = greatest(current_timestamp, date_add(OLD.sys_period_start, interval 1 microsecond)); + insert into migtest_e_history2_history (sys_period_start,sys_period_end,id, test_string, test_string3, new_column) values (OLD.sys_period_start, NEW.sys_period_start,OLD.id, OLD.test_string, OLD.test_string3, OLD.new_column); +end_trigger; +$$ + +delimiter $$ +create or replace trigger migtest_e_history2_history_del for migtest_e_history2 before delete for each row as + insert into migtest_e_history2_history (sys_period_start,sys_period_end,id, test_string, test_string3, new_column) values (OLD.sys_period_start, NEW.sys_period_start,OLD.id, OLD.test_string, OLD.test_string3, OLD.new_column); +end_trigger; +$$ + diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/nuodb/1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/nuodb/1.3.sql new file mode 100644 index 000000000..0dac2cb68 --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/nuodb/1.3.sql @@ -0,0 +1,127 @@ +-- Migrationscripts for ebean unittest +-- drop dependencies +drop view if exists migtest_e_history2_with_history; +drop view if exists migtest_e_history3_with_history; +drop view if exists migtest_e_history4_with_history; + +-- apply changes +create table migtest_e_ref ( + id integer generated by default as identity 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 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; +alter table migtest_fk_none_via_join drop constraint fk_migtest_fk_none_via_join_one_id; +alter table migtest_fk_set_null drop constraint fk_migtest_fk_set_null_one_id; +alter table migtest_fk_set_null add constraint fk_migtest_fk_set_null_one_id foreign key (one_id) references migtest_fk_one (id); +alter table migtest_e_basic drop constraint ck_migtest_e_basic_status; +alter table migtest_e_basic alter column status drop default; +alter table migtest_e_basic alter column status set null; +alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I')); + +update migtest_e_basic set status2 = 'N' where status2 is null; +alter table migtest_e_basic drop constraint ck_migtest_e_basic_status2; +alter table migtest_e_basic alter column status2 varchar(1); +alter table migtest_e_basic alter column status2 set default 'N'; +alter table migtest_e_basic alter column status2 set not null; +alter table migtest_e_basic add constraint ck_migtest_e_basic_status2 check ( status2 in ('N','A','I')); +alter table migtest_e_basic drop constraint uq_migtest_e_basic_description; + +update migtest_e_basic set user_id = 23 where user_id is null; +alter table migtest_e_basic drop constraint fk_migtest_e_basic_user_id; +alter table migtest_e_basic alter column user_id set default 23; +alter table migtest_e_basic alter column user_id set not null; +alter table migtest_e_basic add column old_boolean boolean default false not null; +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; +alter table migtest_e_basic add constraint uq_migtest_e_basic_indextest2 unique (indextest2); +alter table migtest_e_basic add constraint uq_migtest_e_basic_indextest6 unique (indextest6); +alter table migtest_e_enum drop constraint ck_migtest_e_enum_test_status; +alter table migtest_e_enum add constraint ck_migtest_e_enum_test_status check ( test_status in ('N','A','I')); +alter table migtest_e_history2 alter column test_string drop default; +alter table migtest_e_history2 alter column test_string set null; +alter table migtest_e_history2 add column obsolete_string1 varchar(255); +alter table migtest_e_history2 add column obsolete_string2 varchar(255); +alter table migtest_e_history2_history add column obsolete_string1 varchar(255); +alter table migtest_e_history2_history add column obsolete_string2 varchar(255); + +alter table migtest_e_history4 alter column test_number integer; +alter table migtest_e_history4_history alter column test_number integer; +alter table migtest_e_history6 alter column test_number1 drop default; +alter table migtest_e_history6 alter column test_number1 set null; + +-- NOTE: table has @History - special migration may be necessary +update migtest_e_history6 set test_number2 = 7 where test_number2 is null; +alter table migtest_e_history6 alter column test_number2 set default 7; +alter table migtest_e_history6 alter column test_number2 set not null; +create index ix_migtest_e_basic_indextest1 on migtest_e_basic (indextest1); +create index ix_migtest_e_basic_indextest5 on migtest_e_basic (indextest5); +drop index if exists ix_migtest_e_basic_indextest3; +drop index if exists ix_migtest_e_basic_indextest6; +create index ix_migtest_e_basic_eref_id on migtest_e_basic (eref_id); +alter table migtest_e_basic add constraint fk_migtest_e_basic_eref_id foreign key (eref_id) references migtest_e_ref (id); + +create view migtest_e_history2_with_history as select * from migtest_e_history2 union all select * from migtest_e_history2_history; + +create view migtest_e_history3_with_history as select * from migtest_e_history3 union all select * from migtest_e_history3_history; + +create view migtest_e_history4_with_history as select * from migtest_e_history4 union all select * from migtest_e_history4_history; + +-- changes: [add obsolete_string1, add obsolete_string2] +drop trigger migtest_e_history2_history_upd; +drop trigger migtest_e_history2_history_del; +delimiter $$ +create or replace trigger migtest_e_history2_history_upd for migtest_e_history2 before update for each row as + NEW.sys_period_start = greatest(current_timestamp, date_add(OLD.sys_period_start, interval 1 microsecond)); + insert into migtest_e_history2_history (sys_period_start,sys_period_end,id, test_string, obsolete_string2, test_string2, test_string3, new_column) values (OLD.sys_period_start, NEW.sys_period_start,OLD.id, OLD.test_string, OLD.obsolete_string2, OLD.test_string2, OLD.test_string3, OLD.new_column); +end_trigger; +$$ + +delimiter $$ +create or replace trigger migtest_e_history2_history_del for migtest_e_history2 before delete for each row as + insert into migtest_e_history2_history (sys_period_start,sys_period_end,id, test_string, obsolete_string2, test_string2, test_string3, new_column) values (OLD.sys_period_start, NEW.sys_period_start,OLD.id, OLD.test_string, OLD.obsolete_string2, OLD.test_string2, OLD.test_string3, OLD.new_column); +end_trigger; +$$ + +-- changes: [include test_string] +drop trigger migtest_e_history3_history_upd; +drop trigger migtest_e_history3_history_del; +delimiter $$ +create or replace trigger migtest_e_history3_history_upd for migtest_e_history3 before update for each row as + NEW.sys_period_start = greatest(current_timestamp, date_add(OLD.sys_period_start, interval 1 microsecond)); + insert into migtest_e_history3_history (sys_period_start,sys_period_end,id, test_string) values (OLD.sys_period_start, NEW.sys_period_start,OLD.id, OLD.test_string); +end_trigger; +$$ + +delimiter $$ +create or replace trigger migtest_e_history3_history_del for migtest_e_history3 before delete for each row as + insert into migtest_e_history3_history (sys_period_start,sys_period_end,id, test_string) values (OLD.sys_period_start, NEW.sys_period_start,OLD.id, OLD.test_string); +end_trigger; +$$ + +-- changes: [alter test_number] +drop trigger migtest_e_history4_history_upd; +drop trigger migtest_e_history4_history_del; +delimiter $$ +create or replace trigger migtest_e_history4_history_upd for migtest_e_history4 before update for each row as + NEW.sys_period_start = greatest(current_timestamp, date_add(OLD.sys_period_start, interval 1 microsecond)); + insert into migtest_e_history4_history (sys_period_start,sys_period_end,id, test_number) values (OLD.sys_period_start, NEW.sys_period_start,OLD.id, OLD.test_number); +end_trigger; +$$ + +delimiter $$ +create or replace trigger migtest_e_history4_history_del for migtest_e_history4 before delete for each row as + insert into migtest_e_history4_history (sys_period_start,sys_period_end,id, test_number) values (OLD.sys_period_start, NEW.sys_period_start,OLD.id, OLD.test_number); +end_trigger; +$$ + diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/nuodb/1.4__dropsFor_1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/nuodb/1.4__dropsFor_1.3.sql new file mode 100644 index 000000000..ea4a15720 --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/nuodb/1.4__dropsFor_1.3.sql @@ -0,0 +1,85 @@ +-- Migrationscripts for ebean unittest +-- drop dependencies +drop trigger migtest_e_history_history_upd; +drop trigger migtest_e_history_history_del; +drop view migtest_e_history_with_history; +alter table migtest_e_history drop column sys_period_start; +alter table migtest_e_history drop column sys_period_end; +drop table migtest_e_history_history; + +drop view if exists migtest_e_history2_with_history; +drop view if exists migtest_e_history5_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; + +alter table migtest_e_basic drop column new_boolean_field2; + +alter table migtest_e_basic drop column progress; + +alter table migtest_e_basic drop column new_integer; + +alter table migtest_e_history2 drop column test_string2; +alter table migtest_e_history2_history drop column test_string2; + +alter table migtest_e_history2 drop column test_string3; +alter table migtest_e_history2_history drop column test_string3; + +alter table migtest_e_history2 drop column new_column; +alter table migtest_e_history2_history drop column new_column; + +alter table migtest_e_history5 drop column test_boolean; +alter table migtest_e_history5_history drop column test_boolean; + +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; +create view migtest_e_history2_with_history as select * from migtest_e_history2 union all select * from migtest_e_history2_history; + +create view migtest_e_history5_with_history as select * from migtest_e_history5 union all select * from migtest_e_history5_history; + +-- changes: [drop test_string2, drop test_string3, drop new_column] +drop trigger migtest_e_history2_history_upd; +drop trigger migtest_e_history2_history_del; +delimiter $$ +create or replace trigger migtest_e_history2_history_upd for migtest_e_history2 before update for each row as + NEW.sys_period_start = greatest(current_timestamp, date_add(OLD.sys_period_start, interval 1 microsecond)); + insert into migtest_e_history2_history (sys_period_start,sys_period_end,id, test_string, obsolete_string2) values (OLD.sys_period_start, NEW.sys_period_start,OLD.id, OLD.test_string, OLD.obsolete_string2); +end_trigger; +$$ + +delimiter $$ +create or replace trigger migtest_e_history2_history_del for migtest_e_history2 before delete for each row as + insert into migtest_e_history2_history (sys_period_start,sys_period_end,id, test_string, obsolete_string2) values (OLD.sys_period_start, NEW.sys_period_start,OLD.id, OLD.test_string, OLD.obsolete_string2); +end_trigger; +$$ + +-- changes: [drop test_boolean] +drop trigger migtest_e_history5_history_upd; +drop trigger migtest_e_history5_history_del; +delimiter $$ +create or replace trigger migtest_e_history5_history_upd for migtest_e_history5 before update for each row as + NEW.sys_period_start = greatest(current_timestamp, date_add(OLD.sys_period_start, interval 1 microsecond)); + insert into migtest_e_history5_history (sys_period_start,sys_period_end,id, test_number) values (OLD.sys_period_start, NEW.sys_period_start,OLD.id, OLD.test_number); +end_trigger; +$$ + +delimiter $$ +create or replace trigger migtest_e_history5_history_del for migtest_e_history5 before delete for each row as + insert into migtest_e_history5_history (sys_period_start,sys_period_end,id, test_number) values (OLD.sys_period_start, NEW.sys_period_start,OLD.id, OLD.test_number); +end_trigger; +$$ + diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/nuodb/R__order_views.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/nuodb/R__order_views.sql new file mode 100644 index 000000000..ccf30a2c6 --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/nuodb/R__order_views.sql @@ -0,0 +1,7 @@ + + create or replace view order_agg_vw as + select d.order_id, sum(d.order_qty * d.unit_price) as order_total, + sum(d.ship_qty * d.unit_price) as ship_total + from o_order_detail d + group by d.order_id + \ No newline at end of file diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/nuodb/idx_nuodb.migrations b/ebean-test/src/test/resources/migrationtest/dbmigration/nuodb/idx_nuodb.migrations new file mode 100644 index 000000000..e9f64b6a8 --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/nuodb/idx_nuodb.migrations @@ -0,0 +1,7 @@ +-600390912, 1.0__initial.sql +85177147, 1.1.sql +-1171866240, 1.2__dropsFor_1.1.sql +870952105, 1.3.sql +560246183, 1.4__dropsFor_1.3.sql +561281075, R__order_views.sql + diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/oracle/1.0__initial.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/oracle/1.0__initial.sql new file mode 100644 index 000000000..8c9b8aefb --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/oracle/1.0__initial.sql @@ -0,0 +1,196 @@ +-- 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(10) 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), + constraint pk_migtest_fk_cascade primary key (id) +); +create sequence migtest_fk_cascade_seq; + +create table migtest_fk_cascade_one ( + id number(19) not null, + constraint pk_migtest_fk_cascade_one primary key (id) +); +create sequence migtest_fk_cascade_one_seq; + +create table migtest_fk_none ( + id number(19) not null, + one_id number(19), + constraint pk_migtest_fk_none primary key (id) +); +create sequence migtest_fk_none_seq; + +create table migtest_fk_none_via_join ( + id number(19) not null, + one_id number(19), + constraint pk_migtest_fk_none_via_join primary key (id) +); +create sequence migtest_fk_none_via_join_seq; + +create table migtest_fk_one ( + id number(19) not null, + constraint pk_migtest_fk_one primary key (id) +); +create sequence migtest_fk_one_seq; + +create table migtest_fk_set_null ( + id number(19) not null, + one_id number(19), + constraint pk_migtest_fk_set_null primary key (id) +); +create sequence migtest_fk_set_null_seq; + +create table migtest_e_basic ( + id number(10) not null, + status varchar2(1), + status2 varchar2(1) default 'N' not null, + name varchar2(127), + description varchar2(127), + some_date timestamp, + old_boolean number(1) default 0 not null, + old_boolean2 number(1), + eref_id number(10), + indextest1 varchar2(127), + indextest2 varchar2(127), + indextest3 varchar2(127), + indextest4 varchar2(127), + indextest5 varchar2(127), + indextest6 varchar2(127), + user_id number(10) not null, + constraint ck_migtest_e_basic_status check ( status in ('N','A','I')), + constraint ck_migtest_e_basic_status2 check ( status2 in ('N','A','I')), + constraint uq_migtest_e_basic_indextest2 unique (indextest2), + constraint uq_migtest_e_basic_indextest6 unique (indextest6), + constraint pk_migtest_e_basic primary key (id) +); +create sequence migtest_e_basic_seq; + +create table migtest_e_enum ( + id number(10) not null, + test_status varchar2(1), + constraint ck_migtest_e_enum_test_status check ( test_status in ('N','A','I')), + constraint pk_migtest_e_enum primary key (id) +); +create sequence migtest_e_enum_seq; + +create table migtest_e_history ( + id number(10) not null, + test_string varchar2(255), + constraint pk_migtest_e_history primary key (id) +); +create sequence migtest_e_history_seq; + +create table migtest_e_history2 ( + id number(10) not null, + test_string varchar2(255), + obsolete_string1 varchar2(255), + obsolete_string2 varchar2(255), + constraint pk_migtest_e_history2 primary key (id) +); +create sequence migtest_e_history2_seq; + +create table migtest_e_history3 ( + id number(10) not null, + test_string varchar2(255), + constraint pk_migtest_e_history3 primary key (id) +); +create sequence migtest_e_history3_seq; + +create table migtest_e_history4 ( + id number(10) not null, + test_number number(10), + constraint pk_migtest_e_history4 primary key (id) +); +create sequence migtest_e_history4_seq; + +create table migtest_e_history5 ( + id number(10) not null, + test_number number(10), + constraint pk_migtest_e_history5 primary key (id) +); +create sequence migtest_e_history5_seq; + +create table migtest_e_history6 ( + id number(10) not null, + test_number1 number(10), + test_number2 number(10) not null, + constraint pk_migtest_e_history6 primary key (id) +); +create sequence migtest_e_history6_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; + +create table migtest_e_softdelete ( + id number(10) not null, + test_string varchar2(255), + constraint pk_migtest_e_softdelete primary key (id) +); +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); +create index ix_migtest_fk_cascade_one_id on 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; + +create index ix_migtest_fk_set_null_one_id on migtest_fk_set_null (one_id); +alter table migtest_fk_set_null add constraint fk_migtest_fk_set_null_one_id foreign key (one_id) references migtest_fk_one (id) on delete set null; + +create index ix_migtest_e_basic_eref_id on migtest_e_basic (eref_id); +alter table migtest_e_basic add constraint fk_migtest_e_basic_eref_id foreign key (eref_id) references migtest_e_ref (id); + diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/oracle/1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/oracle/1.1.sql new file mode 100644 index 000000000..d3a951da4 --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/oracle/1.1.sql @@ -0,0 +1,111 @@ +-- Migrationscripts for ebean unittest +-- apply changes +create table migtest_e_user ( + id number(10) not null, + constraint pk_migtest_e_user primary key (id) +); +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 one_key number(10); +alter table migtest_ckey_detail add 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 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); +alter table migtest_fk_none_via_join add constraint fk_mgtst_fk_nn_v_jn_n_d foreign key (one_id) references migtest_fk_one (id); +alter table migtest_fk_set_null drop constraint fk_migtest_fk_set_null_one_id; +alter table migtest_fk_set_null add constraint fk_migtest_fk_set_null_one_id foreign key (one_id) references migtest_fk_one (id); + +update migtest_e_basic set status = 'A' where status is null; +alter table migtest_e_basic drop constraint ck_migtest_e_basic_status; +alter table migtest_e_basic modify status default 'A'; +alter table migtest_e_basic modify status not null; +alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I','?')); +alter table migtest_e_basic drop constraint ck_migtest_e_basic_status2; +alter table migtest_e_basic modify status2 varchar2(127); +alter table migtest_e_basic modify status2 drop default; +alter table migtest_e_basic modify status2 null; + +-- rename all collisions; +-- NOT YET IMPLEMENTED: alter table migtest_e_basic add constraint uq_migtest_e_basic_description unique (description); + +insert into migtest_e_user (id) select distinct user_id from migtest_e_basic; +alter table migtest_e_basic add constraint fk_migtest_e_basic_user_id foreign key (user_id) references migtest_e_user (id); +alter table migtest_e_basic modify user_id null; +alter table migtest_e_basic add new_string_field varchar2(255) default 'foo''bar' not null; +alter table migtest_e_basic add new_boolean_field number(1) default 1 not null; +update migtest_e_basic set new_boolean_field = old_boolean; + +alter table migtest_e_basic add new_boolean_field2 number(1) default 1 not null; +alter table migtest_e_basic add progress number(10) default 0 not null; +alter table migtest_e_basic add constraint ck_migtest_e_basic_progress check ( progress in (0,1,2)); +alter table migtest_e_basic add new_integer number(10) 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 YET IMPLEMENTED: alter table migtest_e_basic add constraint uq_mgtst__bsc_stts_ndxtst1 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); +alter table migtest_e_enum drop constraint ck_migtest_e_enum_test_status; +comment on column migtest_e_history.test_string is 'Column altered to long now'; +alter table migtest_e_history modify test_string number(19); +comment on table migtest_e_history is 'We have history now'; + +-- NOTE: table has @History - special migration may be necessary +update migtest_e_history2 set test_string = 'unknown' where test_string is null; +alter table migtest_e_history2 modify test_string default 'unknown'; +alter table migtest_e_history2 modify test_string not null; +alter table migtest_e_history2 add test_string2 varchar2(255); +alter table migtest_e_history2 add test_string3 varchar2(255) default 'unknown' not null; +alter table migtest_e_history2 add new_column varchar2(20); + +alter table migtest_e_history4 modify test_number number(19); +alter table migtest_e_history5 add test_boolean number(1) default 0 not null; + + +-- NOTE: table has @History - special migration may be necessary +update migtest_e_history6 set test_number1 = 42 where test_number1 is null; +alter table migtest_e_history6 modify test_number1 default 42; +alter table migtest_e_history6 modify test_number1 not null; +alter table migtest_e_history6 modify test_number2 null; +alter table migtest_e_softdelete add deleted number(1) default 0 not null; + +alter table migtest_oto_child add 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; +create index ix_mgtst_mtm_c_mgtst_mt_3ug4ok on migtest_mtm_c_migtest_mtm_m (migtest_mtm_c_id); +alter table migtest_mtm_c_migtest_mtm_m add constraint fk_mgtst_mtm_c_mgtst_mt_93awga foreign key (migtest_mtm_c_id) references migtest_mtm_c (id); + +create index ix_mgtst_mtm_c_mgtst_mt_3ug4ou on migtest_mtm_c_migtest_mtm_m (migtest_mtm_m_id); +alter table migtest_mtm_c_migtest_mtm_m add constraint fk_mgtst_mtm_c_mgtst_mt_93awgk foreign key (migtest_mtm_m_id) references migtest_mtm_m (id); + +create index ix_mgtst_mtm_m_mgtst_mt_b7nbcu on migtest_mtm_m_migtest_mtm_c (migtest_mtm_m_id); +alter table migtest_mtm_m_migtest_mtm_c add constraint fk_mgtst_mtm_m_mgtst_mt_ggi34k foreign key (migtest_mtm_m_id) references migtest_mtm_m (id); + +create index ix_mgtst_mtm_m_mgtst_mt_b7nbck on migtest_mtm_m_migtest_mtm_c (migtest_mtm_c_id); +alter table migtest_mtm_m_migtest_mtm_c add constraint fk_mgtst_mtm_m_mgtst_mt_ggi34a foreign key (migtest_mtm_c_id) references migtest_mtm_c (id); + +create index ix_mgtst_cky_prnt_ssc_d on migtest_ckey_parent (assoc_id); +alter table migtest_ckey_parent add constraint fk_mgtst_cky_prnt_ssc_d foreign key (assoc_id) references migtest_ckey_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/ebean-test/src/test/resources/migrationtest/dbmigration/oracle/1.2__dropsFor_1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/oracle/1.2__dropsFor_1.1.sql new file mode 100644 index 000000000..4f2337db3 --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/oracle/1.2__dropsFor_1.1.sql @@ -0,0 +1,14 @@ +-- Migrationscripts for ebean unittest +-- apply changes +alter table migtest_e_basic drop column old_boolean; + +alter table migtest_e_basic drop column old_boolean2; + +alter table migtest_e_basic drop column eref_id; + +alter table migtest_e_history2 drop column obsolete_string1; + +alter table migtest_e_history2 drop column obsolete_string2; + +drop table migtest_e_ref cascade constraints purge; +drop sequence migtest_e_ref_seq; diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/oracle/1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/oracle/1.3.sql new file mode 100644 index 000000000..0b528fe86 --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/oracle/1.3.sql @@ -0,0 +1,68 @@ +-- Migrationscripts for ebean unittest +-- 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; +alter table migtest_fk_none_via_join drop constraint fk_mgtst_fk_nn_v_jn_n_d; +alter table migtest_fk_set_null drop constraint fk_migtest_fk_set_null_one_id; +alter table migtest_fk_set_null add constraint fk_migtest_fk_set_null_one_id foreign key (one_id) references migtest_fk_one (id) on delete set null; +alter table migtest_e_basic drop constraint ck_migtest_e_basic_status; +alter table migtest_e_basic modify status drop default; +alter table migtest_e_basic modify status null; +alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I')); + +update migtest_e_basic set status2 = 'N' where status2 is null; +alter table migtest_e_basic drop constraint ck_migtest_e_basic_status2; +alter table migtest_e_basic modify status2 varchar2(1); +alter table migtest_e_basic modify status2 default 'N'; +alter table migtest_e_basic modify status2 not null; +alter table migtest_e_basic add constraint ck_migtest_e_basic_status2 check ( status2 in ('N','A','I')); +alter table migtest_e_basic drop constraint uq_migtest_e_basic_description; + +update migtest_e_basic set user_id = 23 where user_id is null; +alter table migtest_e_basic drop constraint fk_migtest_e_basic_user_id; +alter table migtest_e_basic modify user_id default 23; +alter table migtest_e_basic modify user_id not null; +alter table migtest_e_basic add old_boolean number(1) default 0 not null; +alter table migtest_e_basic add old_boolean2 number(1); +alter table migtest_e_basic add eref_id number(10); + +alter table migtest_e_basic drop constraint uq_mgtst__bsc_stts_ndxtst1; +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; +-- NOT YET IMPLEMENTED: alter table migtest_e_basic add constraint uq_migtest_e_basic_indextest2 unique (indextest2); +-- NOT YET IMPLEMENTED: alter table migtest_e_basic add constraint uq_migtest_e_basic_indextest6 unique (indextest6); +alter table migtest_e_enum drop constraint ck_migtest_e_enum_test_status; +alter table migtest_e_enum add constraint ck_migtest_e_enum_test_status check ( test_status in ('N','A','I')); +comment on column migtest_e_history.test_string is ''; +comment on table migtest_e_history is ''; +alter table migtest_e_history2 modify test_string drop default; +alter table migtest_e_history2 modify test_string null; +alter table migtest_e_history2 add obsolete_string1 varchar2(255); +alter table migtest_e_history2 add obsolete_string2 varchar2(255); + +alter table migtest_e_history4 modify test_number number(10); +alter table migtest_e_history6 modify test_number1 drop default; +alter table migtest_e_history6 modify test_number1 null; + +-- NOTE: table has @History - special migration may be necessary +update migtest_e_history6 set test_number2 = 7 where test_number2 is null; +alter table migtest_e_history6 modify test_number2 default 7; +alter table migtest_e_history6 modify test_number2 not null; +create index ix_migtest_e_basic_indextest1 on migtest_e_basic (indextest1); +create index ix_migtest_e_basic_indextest5 on migtest_e_basic (indextest5); +drop index ix_migtest_e_basic_indextest3; +drop index ix_migtest_e_basic_indextest6; +create index ix_migtest_e_basic_eref_id on migtest_e_basic (eref_id); +alter table migtest_e_basic add constraint fk_migtest_e_basic_eref_id foreign key (eref_id) references migtest_e_ref (id); + diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/oracle/1.4__dropsFor_1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/oracle/1.4__dropsFor_1.3.sql new file mode 100644 index 000000000..52c81411a --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/oracle/1.4__dropsFor_1.3.sql @@ -0,0 +1,34 @@ +-- 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; + +alter table migtest_e_basic drop column new_boolean_field2; + +alter table migtest_e_basic drop column progress; + +alter table migtest_e_basic drop column new_integer; + +alter table migtest_e_history2 drop column test_string2; + +alter table migtest_e_history2 drop column test_string3; + +alter table migtest_e_history2 drop column new_column; + +alter table migtest_e_history5 drop column test_boolean; + +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/ebean-test/src/test/resources/migrationtest/dbmigration/oracle/R__oracle_only_views.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/oracle/R__oracle_only_views.sql new file mode 100644 index 000000000..1140e5361 --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/oracle/R__oracle_only_views.sql @@ -0,0 +1,4 @@ + + -- oracle only script + select * from dual; + \ No newline at end of file diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/oracle/R__order_views.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/oracle/R__order_views.sql new file mode 100644 index 000000000..ccf30a2c6 --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/oracle/R__order_views.sql @@ -0,0 +1,7 @@ + + create or replace view order_agg_vw as + select d.order_id, sum(d.order_qty * d.unit_price) as order_total, + sum(d.ship_qty * d.unit_price) as ship_total + from o_order_detail d + group by d.order_id + \ No newline at end of file diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/oracle/idx_oracle.migrations b/ebean-test/src/test/resources/migrationtest/dbmigration/oracle/idx_oracle.migrations new file mode 100644 index 000000000..5612d75f3 --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/oracle/idx_oracle.migrations @@ -0,0 +1,8 @@ +1839897438, 1.0__initial.sql +1699280801, 1.1.sql +238598298, 1.2__dropsFor_1.1.sql +1543053715, 1.3.sql +1213528478, 1.4__dropsFor_1.3.sql +1357801733, R__oracle_only_views.sql +561281075, R__order_views.sql + diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/postgres/1.0__initial.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/postgres/1.0__initial.sql new file mode 100644 index 000000000..3e610644e --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/postgres/1.0__initial.sql @@ -0,0 +1,307 @@ +-- 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, + constraint pk_migtest_fk_cascade primary key (id) +); + +create table migtest_fk_cascade_one ( + id bigserial not null, + constraint pk_migtest_fk_cascade_one primary key (id) +); + +create table migtest_fk_none ( + id bigserial not null, + one_id bigint, + constraint pk_migtest_fk_none primary key (id) +); + +create table migtest_fk_none_via_join ( + id bigserial not null, + one_id bigint, + constraint pk_migtest_fk_none_via_join primary key (id) +); + +create table migtest_fk_one ( + id bigserial not null, + constraint pk_migtest_fk_one primary key (id) +); + +create table migtest_fk_set_null ( + id bigserial not null, + one_id bigint, + constraint pk_migtest_fk_set_null primary key (id) +); + +create table migtest_e_basic ( + id serial not null, + status varchar(1), + status2 varchar(1) default 'N' not null, + name varchar(127), + description varchar(127), + some_date timestamptz, + old_boolean boolean default false not null, + old_boolean2 boolean, + eref_id integer, + indextest1 varchar(127), + indextest2 varchar(127), + indextest3 varchar(127), + indextest4 varchar(127), + indextest5 varchar(127), + indextest6 varchar(127), + user_id integer not null, + constraint ck_migtest_e_basic_status check ( status in ('N','A','I')), + constraint ck_migtest_e_basic_status2 check ( status2 in ('N','A','I')), + constraint uq_migtest_e_basic_indextest2 unique (indextest2), + constraint uq_migtest_e_basic_indextest6 unique (indextest6), + constraint pk_migtest_e_basic primary key (id) +); + +create table migtest_e_enum ( + id serial not null, + test_status varchar(1), + constraint ck_migtest_e_enum_test_status check ( test_status in ('N','A','I')), + constraint pk_migtest_e_enum primary key (id) +); + +create table migtest_e_history ( + id serial not null, + test_string varchar(255), + constraint pk_migtest_e_history primary key (id) +); + +create table migtest_e_history2 ( + id serial not null, + test_string varchar(255), + obsolete_string1 varchar(255), + obsolete_string2 varchar(255), + constraint pk_migtest_e_history2 primary key (id) +); + +create table migtest_e_history3 ( + id serial not null, + test_string varchar(255), + constraint pk_migtest_e_history3 primary key (id) +); + +create table migtest_e_history4 ( + id serial not null, + test_number integer, + constraint pk_migtest_e_history4 primary key (id) +); + +create table migtest_e_history5 ( + id serial not null, + test_number integer, + constraint pk_migtest_e_history5 primary key (id) +); + +create table migtest_e_history6 ( + id serial not null, + test_number1 integer, + test_number2 integer not null, + constraint pk_migtest_e_history6 primary key (id) +); + +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) +); + +create table migtest_e_softdelete ( + id serial not null, + test_string varchar(255), + 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 if not exists ix_migtest_e_basic_indextest1 on migtest_e_basic (indextest1); +create index if not exists ix_migtest_e_basic_indextest5 on migtest_e_basic (indextest5); +create index idxd_migtest_0 on migtest_oto_child using hash (upper(name)) where upper(name) = 'JIM'; +create index concurrently if not exists ix_migtest_oto_child_lowername_id on migtest_oto_child (lower(name),id); +create index if not exists ix_migtest_oto_child_lowername on migtest_oto_child (lower(name)); +create index ix_migtest_fk_cascade_one_id on 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 restrict; + +create index ix_migtest_fk_set_null_one_id on migtest_fk_set_null (one_id); +alter table migtest_fk_set_null add constraint fk_migtest_fk_set_null_one_id foreign key (one_id) references migtest_fk_one (id) on delete set null on update restrict; + +create index ix_migtest_e_basic_eref_id on migtest_e_basic (eref_id); +alter table migtest_e_basic add constraint fk_migtest_e_basic_eref_id foreign key (eref_id) references migtest_e_ref (id) on delete restrict on update restrict; + +alter table migtest_e_history2 add column sys_period tstzrange not null default tstzrange(current_timestamp, null); +create table migtest_e_history2_history(like migtest_e_history2); +create view migtest_e_history2_with_history as select * from migtest_e_history2 union all select * from migtest_e_history2_history; + +alter table migtest_e_history3 add column sys_period tstzrange not null default tstzrange(current_timestamp, null); +create table migtest_e_history3_history(like migtest_e_history3); +create view migtest_e_history3_with_history as select * from migtest_e_history3 union all select * from migtest_e_history3_history; + +alter table migtest_e_history4 add column sys_period tstzrange not null default tstzrange(current_timestamp, null); +create table migtest_e_history4_history(like migtest_e_history4); +create view migtest_e_history4_with_history as select * from migtest_e_history4 union all select * from migtest_e_history4_history; + +alter table migtest_e_history5 add column sys_period tstzrange not null default tstzrange(current_timestamp, null); +create table migtest_e_history5_history(like migtest_e_history5); +create view migtest_e_history5_with_history as select * from migtest_e_history5 union all select * from migtest_e_history5_history; + +alter table migtest_e_history6 add column sys_period tstzrange not null default tstzrange(current_timestamp, null); +create table migtest_e_history6_history(like migtest_e_history6); +create view migtest_e_history6_with_history as select * from migtest_e_history6 union all select * from migtest_e_history6_history; + +create or replace function migtest_e_history2_history_version() returns trigger as $$ +declare + lowerTs timestamptz; + upperTs timestamptz; +begin + lowerTs = lower(OLD.sys_period); + upperTs = greatest(lowerTs + '1 microsecond',current_timestamp); + if (TG_OP = 'UPDATE') then + insert into migtest_e_history2_history (sys_period,id, test_string, obsolete_string2) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_string, OLD.obsolete_string2); + NEW.sys_period = tstzrange(upperTs,null); + return new; + elsif (TG_OP = 'DELETE') then + insert into migtest_e_history2_history (sys_period,id, test_string, obsolete_string2) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_string, OLD.obsolete_string2); + return old; + end if; +end; +$$ LANGUAGE plpgsql; + +create trigger migtest_e_history2_history_upd + before update or delete on migtest_e_history2 + for each row execute procedure migtest_e_history2_history_version(); + +create or replace function migtest_e_history3_history_version() returns trigger as $$ +declare + lowerTs timestamptz; + upperTs timestamptz; +begin + lowerTs = lower(OLD.sys_period); + upperTs = greatest(lowerTs + '1 microsecond',current_timestamp); + if (TG_OP = 'UPDATE') then + insert into migtest_e_history3_history (sys_period,id, test_string) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_string); + NEW.sys_period = tstzrange(upperTs,null); + return new; + elsif (TG_OP = 'DELETE') then + insert into migtest_e_history3_history (sys_period,id, test_string) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_string); + return old; + end if; +end; +$$ LANGUAGE plpgsql; + +create trigger migtest_e_history3_history_upd + before update or delete on migtest_e_history3 + for each row execute procedure migtest_e_history3_history_version(); + +create or replace function migtest_e_history4_history_version() returns trigger as $$ +declare + lowerTs timestamptz; + upperTs timestamptz; +begin + lowerTs = lower(OLD.sys_period); + upperTs = greatest(lowerTs + '1 microsecond',current_timestamp); + if (TG_OP = 'UPDATE') then + insert into migtest_e_history4_history (sys_period,id, test_number) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_number); + NEW.sys_period = tstzrange(upperTs,null); + return new; + elsif (TG_OP = 'DELETE') then + insert into migtest_e_history4_history (sys_period,id, test_number) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_number); + return old; + end if; +end; +$$ LANGUAGE plpgsql; + +create trigger migtest_e_history4_history_upd + before update or delete on migtest_e_history4 + for each row execute procedure migtest_e_history4_history_version(); + +create or replace function migtest_e_history5_history_version() returns trigger as $$ +declare + lowerTs timestamptz; + upperTs timestamptz; +begin + lowerTs = lower(OLD.sys_period); + upperTs = greatest(lowerTs + '1 microsecond',current_timestamp); + if (TG_OP = 'UPDATE') then + insert into migtest_e_history5_history (sys_period,id, test_number) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_number); + NEW.sys_period = tstzrange(upperTs,null); + return new; + elsif (TG_OP = 'DELETE') then + insert into migtest_e_history5_history (sys_period,id, test_number) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_number); + return old; + end if; +end; +$$ LANGUAGE plpgsql; + +create trigger migtest_e_history5_history_upd + before update or delete on migtest_e_history5 + for each row execute procedure migtest_e_history5_history_version(); + +create or replace function migtest_e_history6_history_version() returns trigger as $$ +declare + lowerTs timestamptz; + upperTs timestamptz; +begin + lowerTs = lower(OLD.sys_period); + upperTs = greatest(lowerTs + '1 microsecond',current_timestamp); + if (TG_OP = 'UPDATE') then + insert into migtest_e_history6_history (sys_period,id, test_number1, test_number2) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_number1, OLD.test_number2); + NEW.sys_period = tstzrange(upperTs,null); + return new; + elsif (TG_OP = 'DELETE') then + insert into migtest_e_history6_history (sys_period,id, test_number1, test_number2) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_number1, OLD.test_number2); + return old; + end if; +end; +$$ LANGUAGE plpgsql; + +create trigger migtest_e_history6_history_upd + before update or delete on migtest_e_history6 + for each row execute procedure migtest_e_history6_history_version(); + diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/postgres/1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/postgres/1.1.sql new file mode 100644 index 000000000..5a3df8b8f --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/postgres/1.1.sql @@ -0,0 +1,237 @@ +-- Migrationscripts for ebean unittest +-- drop dependencies +drop view if exists migtest_e_history2_with_history; +drop view if exists migtest_e_history3_with_history; +drop view if exists migtest_e_history4_with_history; +drop view if exists migtest_e_history5_with_history; + +-- apply changes +create table migtest_e_user ( + id serial not null, + 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; +alter table migtest_fk_none_via_join add constraint fk_migtest_fk_none_via_join_one_id foreign key (one_id) references migtest_fk_one (id) on delete restrict on update restrict; +alter table if exists migtest_fk_set_null drop constraint if exists fk_migtest_fk_set_null_one_id; +alter table migtest_fk_set_null add constraint fk_migtest_fk_set_null_one_id foreign key (one_id) references migtest_fk_one (id) on delete restrict on update restrict; + +update migtest_e_basic set status = 'A' where status is null; +alter table migtest_e_basic drop constraint if exists ck_migtest_e_basic_status; +alter table migtest_e_basic alter column status set default 'A'; +alter table migtest_e_basic alter column status set not null; +alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I','?')); +alter table migtest_e_basic drop constraint if exists ck_migtest_e_basic_status2; +alter table migtest_e_basic alter column status2 type varchar(127) using status2::varchar(127); +alter table migtest_e_basic alter column status2 drop default; +alter table migtest_e_basic alter column status2 drop not null; + +-- rename all collisions; +alter table migtest_e_basic add constraint uq_migtest_e_basic_description unique (description); + +insert into migtest_e_user (id) select distinct user_id from migtest_e_basic; +alter table migtest_e_basic add constraint fk_migtest_e_basic_user_id foreign key (user_id) references migtest_e_user (id) on delete restrict on update restrict; +alter table migtest_e_basic alter column user_id drop not null; +alter table migtest_e_basic add column new_string_field varchar(255) default 'foo''bar' not null; +alter table migtest_e_basic add column new_boolean_field boolean default true not null; +update migtest_e_basic set new_boolean_field = old_boolean; + +alter table migtest_e_basic add column new_boolean_field2 boolean default true not null; +alter table migtest_e_basic add column progress integer default 0 not null; +alter table migtest_e_basic add constraint ck_migtest_e_basic_progress check ( progress in (0,1,2)); +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); +alter table migtest_e_enum drop constraint if exists ck_migtest_e_enum_test_status; + +alter table migtest_e_history alter column test_string TYPE bigint USING (test_string::integer); +comment on column migtest_e_history.test_string is 'Column altered to long now'; +alter table migtest_e_history alter column test_string type bigint using test_string::bigint; +comment on table migtest_e_history is 'We have history now'; + +-- NOTE: table has @History - special migration may be necessary +update migtest_e_history2 set test_string = 'unknown' where test_string is null; +alter table migtest_e_history2 alter column test_string set default 'unknown'; +alter table migtest_e_history2 alter column test_string set not null; +alter table migtest_e_history2 add column test_string2 varchar(255); +alter table migtest_e_history2 add column test_string3 varchar(255) default 'unknown' not null; +alter table migtest_e_history2 add column new_column varchar(20); +alter table migtest_e_history2_history add column test_string2 varchar(255); +alter table migtest_e_history2_history add column test_string3 varchar(255) default 'unknown'; +alter table migtest_e_history2_history add column new_column varchar(20); + +alter table migtest_e_history4 alter column test_number type bigint using test_number::bigint; +alter table migtest_e_history4_history alter column test_number type bigint using test_number::bigint; +alter table migtest_e_history5 add column test_boolean boolean default false not null; +alter table migtest_e_history5_history add column test_boolean boolean default false; + + +-- NOTE: table has @History - special migration may be necessary +update migtest_e_history6 set test_number1 = 42 where test_number1 is null; +alter table migtest_e_history6 alter column test_number1 set default 42; +alter table migtest_e_history6 alter column test_number1 set not null; +alter table migtest_e_history6 alter column test_number2 drop not null; +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 if not exists ix_migtest_e_basic_indextest3 on migtest_e_basic (indextest3); +create index if not exists ix_migtest_e_basic_indextest6 on migtest_e_basic (indextest6); +create index if not exists ix_migtest_oto_child_name on migtest_oto_child (name); +drop index if exists ix_migtest_e_basic_indextest1; +drop index if exists ix_migtest_e_basic_indextest5; +drop index if exists idxd_migtest_0; +drop index concurrently if exists ix_migtest_oto_child_lowername_id; +drop index if exists ix_migtest_oto_child_lowername; +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_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_m on migtest_mtm_c_migtest_mtm_m (migtest_mtm_m_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_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_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_c on migtest_mtm_m_migtest_mtm_c (migtest_mtm_c_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_ckey_parent_assoc_id on migtest_ckey_parent (assoc_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; + +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; + +create view migtest_e_history2_with_history as select * from migtest_e_history2 union all select * from migtest_e_history2_history; + +create view migtest_e_history3_with_history as select * from migtest_e_history3 union all select * from migtest_e_history3_history; + +create view migtest_e_history4_with_history as select * from migtest_e_history4 union all select * from migtest_e_history4_history; + +create view migtest_e_history5_with_history as select * from migtest_e_history5 union all select * from migtest_e_history5_history; + +create or replace function migtest_e_history_history_version() returns trigger as $$ +declare + lowerTs timestamptz; + upperTs timestamptz; +begin + lowerTs = lower(OLD.sys_period); + upperTs = greatest(lowerTs + '1 microsecond',current_timestamp); + if (TG_OP = 'UPDATE') then + insert into migtest_e_history_history (sys_period,id, test_string) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_string); + NEW.sys_period = tstzrange(upperTs,null); + return new; + elsif (TG_OP = 'DELETE') then + insert into migtest_e_history_history (sys_period,id, test_string) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_string); + return old; + end if; +end; +$$ LANGUAGE plpgsql; + +create trigger migtest_e_history_history_upd + before update or delete on migtest_e_history + for each row execute procedure migtest_e_history_history_version(); + +-- changes: [add test_string2, add test_string3, add new_column] +create or replace function migtest_e_history2_history_version() returns trigger as $$ +declare + lowerTs timestamptz; + upperTs timestamptz; +begin + lowerTs = lower(OLD.sys_period); + upperTs = greatest(lowerTs + '1 microsecond',current_timestamp); + if (TG_OP = 'UPDATE') then + insert into migtest_e_history2_history (sys_period,id, test_string, test_string3, new_column, obsolete_string1, obsolete_string2) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_string, OLD.test_string3, OLD.new_column, OLD.obsolete_string1, OLD.obsolete_string2); + NEW.sys_period = tstzrange(upperTs,null); + return new; + elsif (TG_OP = 'DELETE') then + insert into migtest_e_history2_history (sys_period,id, test_string, test_string3, new_column, obsolete_string1, obsolete_string2) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_string, OLD.test_string3, OLD.new_column, OLD.obsolete_string1, OLD.obsolete_string2); + return old; + end if; +end; +$$ LANGUAGE plpgsql; + +-- changes: [exclude test_string] +create or replace function migtest_e_history3_history_version() returns trigger as $$ +declare + lowerTs timestamptz; + upperTs timestamptz; +begin + lowerTs = lower(OLD.sys_period); + upperTs = greatest(lowerTs + '1 microsecond',current_timestamp); + if (TG_OP = 'UPDATE') then + insert into migtest_e_history3_history (sys_period,id) values (tstzrange(lowerTs,upperTs), OLD.id); + NEW.sys_period = tstzrange(upperTs,null); + return new; + elsif (TG_OP = 'DELETE') then + insert into migtest_e_history3_history (sys_period,id) values (tstzrange(lowerTs,upperTs), OLD.id); + return old; + end if; +end; +$$ LANGUAGE plpgsql; + +-- changes: [alter test_number] +create or replace function migtest_e_history4_history_version() returns trigger as $$ +declare + lowerTs timestamptz; + upperTs timestamptz; +begin + lowerTs = lower(OLD.sys_period); + upperTs = greatest(lowerTs + '1 microsecond',current_timestamp); + if (TG_OP = 'UPDATE') then + insert into migtest_e_history4_history (sys_period,id, test_number) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_number); + NEW.sys_period = tstzrange(upperTs,null); + return new; + elsif (TG_OP = 'DELETE') then + insert into migtest_e_history4_history (sys_period,id, test_number) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_number); + return old; + end if; +end; +$$ LANGUAGE plpgsql; + +-- changes: [add test_boolean] +create or replace function migtest_e_history5_history_version() returns trigger as $$ +declare + lowerTs timestamptz; + upperTs timestamptz; +begin + lowerTs = lower(OLD.sys_period); + upperTs = greatest(lowerTs + '1 microsecond',current_timestamp); + if (TG_OP = 'UPDATE') then + insert into migtest_e_history5_history (sys_period,id, test_number, test_boolean) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_number, OLD.test_boolean); + NEW.sys_period = tstzrange(upperTs,null); + return new; + elsif (TG_OP = 'DELETE') then + insert into migtest_e_history5_history (sys_period,id, test_number, test_boolean) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_number, OLD.test_boolean); + return old; + end if; +end; +$$ LANGUAGE plpgsql; + diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/postgres/1.2__dropsFor_1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/postgres/1.2__dropsFor_1.1.sql new file mode 100644 index 000000000..c9a6d03e6 --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/postgres/1.2__dropsFor_1.1.sql @@ -0,0 +1,40 @@ +-- Migrationscripts for ebean unittest +-- drop dependencies +drop view if exists migtest_e_history2_with_history; + +-- apply changes +alter table migtest_e_basic drop column old_boolean; + +alter table migtest_e_basic drop column old_boolean2; + +alter table migtest_e_basic drop column eref_id; + +alter table migtest_e_history2 drop column obsolete_string1; +alter table migtest_e_history2_history drop column obsolete_string1; + +alter table migtest_e_history2 drop column obsolete_string2; +alter table migtest_e_history2_history drop column obsolete_string2; + +drop table if exists migtest_e_ref cascade; +drop sequence if exists migtest_e_ref_seq; +create view migtest_e_history2_with_history as select * from migtest_e_history2 union all select * from migtest_e_history2_history; + +-- changes: [drop obsolete_string1, drop obsolete_string2] +create or replace function migtest_e_history2_history_version() returns trigger as $$ +declare + lowerTs timestamptz; + upperTs timestamptz; +begin + lowerTs = lower(OLD.sys_period); + upperTs = greatest(lowerTs + '1 microsecond',current_timestamp); + if (TG_OP = 'UPDATE') then + insert into migtest_e_history2_history (sys_period,id, test_string, test_string3, new_column) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_string, OLD.test_string3, OLD.new_column); + NEW.sys_period = tstzrange(upperTs,null); + return new; + elsif (TG_OP = 'DELETE') then + insert into migtest_e_history2_history (sys_period,id, test_string, test_string3, new_column) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_string, OLD.test_string3, OLD.new_column); + return old; + end if; +end; +$$ LANGUAGE plpgsql; + diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/postgres/1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/postgres/1.3.sql new file mode 100644 index 000000000..b6e8c3a34 --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/postgres/1.3.sql @@ -0,0 +1,141 @@ +-- Migrationscripts for ebean unittest +-- drop dependencies +drop view if exists migtest_e_history2_with_history; +drop view if exists migtest_e_history3_with_history; +drop view if exists migtest_e_history4_with_history; + +-- 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 restrict; +alter table if exists migtest_fk_none drop constraint if exists fk_migtest_fk_none_one_id; +alter table if exists migtest_fk_none_via_join drop constraint if exists fk_migtest_fk_none_via_join_one_id; +alter table if exists migtest_fk_set_null drop constraint if exists fk_migtest_fk_set_null_one_id; +alter table migtest_fk_set_null add constraint fk_migtest_fk_set_null_one_id foreign key (one_id) references migtest_fk_one (id) on delete set null on update restrict; +alter table migtest_e_basic drop constraint if exists ck_migtest_e_basic_status; +alter table migtest_e_basic alter column status drop default; +alter table migtest_e_basic alter column status drop not null; +alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I')); + +update migtest_e_basic set status2 = 'N' where status2 is null; +alter table migtest_e_basic drop constraint if exists ck_migtest_e_basic_status2; +alter table migtest_e_basic alter column status2 type varchar(1) using status2::varchar(1); +alter table migtest_e_basic alter column status2 set default 'N'; +alter table migtest_e_basic alter column status2 set not null; +alter table migtest_e_basic add constraint ck_migtest_e_basic_status2 check ( status2 in ('N','A','I')); +alter table migtest_e_basic drop constraint uq_migtest_e_basic_description; + +update migtest_e_basic set user_id = 23 where user_id is null; +alter table if exists migtest_e_basic drop constraint if exists fk_migtest_e_basic_user_id; +alter table migtest_e_basic alter column user_id set default 23; +alter table migtest_e_basic alter column user_id set not null; +alter table migtest_e_basic add column old_boolean boolean default false not null; +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; +alter table migtest_e_basic add constraint uq_migtest_e_basic_indextest2 unique (indextest2); +alter table migtest_e_basic add constraint uq_migtest_e_basic_indextest6 unique (indextest6); +alter table migtest_e_enum drop constraint if exists ck_migtest_e_enum_test_status; +alter table migtest_e_enum add constraint ck_migtest_e_enum_test_status check ( test_status in ('N','A','I')); +comment on column migtest_e_history.test_string is ''; +comment on table migtest_e_history is ''; +alter table migtest_e_history2 alter column test_string drop default; +alter table migtest_e_history2 alter column test_string drop not null; +alter table migtest_e_history2 add column obsolete_string1 varchar(255); +alter table migtest_e_history2 add column obsolete_string2 varchar(255); +alter table migtest_e_history2_history add column obsolete_string1 varchar(255); +alter table migtest_e_history2_history add column obsolete_string2 varchar(255); + +alter table migtest_e_history4 alter column test_number type integer using test_number::integer; +alter table migtest_e_history4_history alter column test_number type integer using test_number::integer; +alter table migtest_e_history6 alter column test_number1 drop default; +alter table migtest_e_history6 alter column test_number1 drop not null; + +-- NOTE: table has @History - special migration may be necessary +update migtest_e_history6 set test_number2 = 7 where test_number2 is null; +alter table migtest_e_history6 alter column test_number2 set default 7; +alter table migtest_e_history6 alter column test_number2 set not null; +create index if not exists ix_migtest_e_basic_indextest1 on migtest_e_basic (indextest1); +create index if not exists ix_migtest_e_basic_indextest5 on migtest_e_basic (indextest5); +create index if not exists ix_m12_otoc71 on migtest_oto_child (name); +create unique index if not exists uq_m12_otoc71 on migtest_oto_child (lower(name)); +create unique index if not exists ix_migtest_oto_master_lowername on migtest_oto_master (lower(name)); +drop index if exists ix_migtest_e_basic_indextest3; +drop index if exists ix_migtest_e_basic_indextest6; +create index ix_migtest_e_basic_eref_id on migtest_e_basic (eref_id); +alter table migtest_e_basic add constraint fk_migtest_e_basic_eref_id foreign key (eref_id) references migtest_e_ref (id) on delete restrict on update restrict; + +create view migtest_e_history2_with_history as select * from migtest_e_history2 union all select * from migtest_e_history2_history; + +create view migtest_e_history3_with_history as select * from migtest_e_history3 union all select * from migtest_e_history3_history; + +create view migtest_e_history4_with_history as select * from migtest_e_history4 union all select * from migtest_e_history4_history; + +-- changes: [add obsolete_string1, add obsolete_string2] +create or replace function migtest_e_history2_history_version() returns trigger as $$ +declare + lowerTs timestamptz; + upperTs timestamptz; +begin + lowerTs = lower(OLD.sys_period); + upperTs = greatest(lowerTs + '1 microsecond',current_timestamp); + if (TG_OP = 'UPDATE') then + insert into migtest_e_history2_history (sys_period,id, test_string, obsolete_string2, test_string2, test_string3, new_column) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_string, OLD.obsolete_string2, OLD.test_string2, OLD.test_string3, OLD.new_column); + NEW.sys_period = tstzrange(upperTs,null); + return new; + elsif (TG_OP = 'DELETE') then + insert into migtest_e_history2_history (sys_period,id, test_string, obsolete_string2, test_string2, test_string3, new_column) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_string, OLD.obsolete_string2, OLD.test_string2, OLD.test_string3, OLD.new_column); + return old; + end if; +end; +$$ LANGUAGE plpgsql; + +-- changes: [include test_string] +create or replace function migtest_e_history3_history_version() returns trigger as $$ +declare + lowerTs timestamptz; + upperTs timestamptz; +begin + lowerTs = lower(OLD.sys_period); + upperTs = greatest(lowerTs + '1 microsecond',current_timestamp); + if (TG_OP = 'UPDATE') then + insert into migtest_e_history3_history (sys_period,id, test_string) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_string); + NEW.sys_period = tstzrange(upperTs,null); + return new; + elsif (TG_OP = 'DELETE') then + insert into migtest_e_history3_history (sys_period,id, test_string) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_string); + return old; + end if; +end; +$$ LANGUAGE plpgsql; + +-- changes: [alter test_number] +create or replace function migtest_e_history4_history_version() returns trigger as $$ +declare + lowerTs timestamptz; + upperTs timestamptz; +begin + lowerTs = lower(OLD.sys_period); + upperTs = greatest(lowerTs + '1 microsecond',current_timestamp); + if (TG_OP = 'UPDATE') then + insert into migtest_e_history4_history (sys_period,id, test_number) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_number); + NEW.sys_period = tstzrange(upperTs,null); + return new; + elsif (TG_OP = 'DELETE') then + insert into migtest_e_history4_history (sys_period,id, test_number) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_number); + return old; + end if; +end; +$$ LANGUAGE plpgsql; + diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/postgres/1.4__dropsFor_1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/postgres/1.4__dropsFor_1.3.sql new file mode 100644 index 000000000..748ee959b --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/postgres/1.4__dropsFor_1.3.sql @@ -0,0 +1,91 @@ +-- Migrationscripts for ebean unittest +-- drop dependencies +drop trigger if exists migtest_e_history_history_upd on migtest_e_history cascade; +drop function if exists migtest_e_history_history_version(); + +drop view migtest_e_history_with_history; +alter table migtest_e_history drop column sys_period; +drop table migtest_e_history_history; + +drop view if exists migtest_e_history2_with_history; +drop view if exists migtest_e_history5_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; + +alter table migtest_e_basic drop column new_boolean_field2; + +alter table migtest_e_basic drop column progress; + +alter table migtest_e_basic drop column new_integer; + +alter table migtest_e_history2 drop column test_string2; +alter table migtest_e_history2_history drop column test_string2; + +alter table migtest_e_history2 drop column test_string3; +alter table migtest_e_history2_history drop column test_string3; + +alter table migtest_e_history2 drop column new_column; +alter table migtest_e_history2_history drop column new_column; + +alter table migtest_e_history5 drop column test_boolean; +alter table migtest_e_history5_history drop column test_boolean; + +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; +create view migtest_e_history2_with_history as select * from migtest_e_history2 union all select * from migtest_e_history2_history; + +create view migtest_e_history5_with_history as select * from migtest_e_history5 union all select * from migtest_e_history5_history; + +-- changes: [drop test_string2, drop test_string3, drop new_column] +create or replace function migtest_e_history2_history_version() returns trigger as $$ +declare + lowerTs timestamptz; + upperTs timestamptz; +begin + lowerTs = lower(OLD.sys_period); + upperTs = greatest(lowerTs + '1 microsecond',current_timestamp); + if (TG_OP = 'UPDATE') then + insert into migtest_e_history2_history (sys_period,id, test_string, obsolete_string2) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_string, OLD.obsolete_string2); + NEW.sys_period = tstzrange(upperTs,null); + return new; + elsif (TG_OP = 'DELETE') then + insert into migtest_e_history2_history (sys_period,id, test_string, obsolete_string2) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_string, OLD.obsolete_string2); + return old; + end if; +end; +$$ LANGUAGE plpgsql; + +-- changes: [drop test_boolean] +create or replace function migtest_e_history5_history_version() returns trigger as $$ +declare + lowerTs timestamptz; + upperTs timestamptz; +begin + lowerTs = lower(OLD.sys_period); + upperTs = greatest(lowerTs + '1 microsecond',current_timestamp); + if (TG_OP = 'UPDATE') then + insert into migtest_e_history5_history (sys_period,id, test_number) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_number); + NEW.sys_period = tstzrange(upperTs,null); + return new; + elsif (TG_OP = 'DELETE') then + insert into migtest_e_history5_history (sys_period,id, test_number) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_number); + return old; + end if; +end; +$$ LANGUAGE plpgsql; + diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/postgres/R__multi_comments.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/postgres/R__multi_comments.sql new file mode 100644 index 000000000..0ede0c9eb --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/postgres/R__multi_comments.sql @@ -0,0 +1,3 @@ + + -- h2 and postgres script + \ No newline at end of file diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/postgres/R__order_views.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/postgres/R__order_views.sql new file mode 100644 index 000000000..ccf30a2c6 --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/postgres/R__order_views.sql @@ -0,0 +1,7 @@ + + create or replace view order_agg_vw as + select d.order_id, sum(d.order_qty * d.unit_price) as order_total, + sum(d.ship_qty * d.unit_price) as ship_total + from o_order_detail d + group by d.order_id + \ No newline at end of file diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/postgres/R__pg_indexes.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/postgres/R__pg_indexes.sql new file mode 100644 index 000000000..fa0bab998 --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/postgres/R__pg_indexes.sql @@ -0,0 +1,4 @@ + + -- postgres specific indexes + create index ix_ebasic_jmjb_gin2 on ebasic_json_map_json_b using gin(content jsonb_path_ops); + \ No newline at end of file diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/postgres/idx_postgres.migrations b/ebean-test/src/test/resources/migrationtest/dbmigration/postgres/idx_postgres.migrations new file mode 100644 index 000000000..847f2ddca --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/postgres/idx_postgres.migrations @@ -0,0 +1,9 @@ +1428934272, 1.0__initial.sql +-1309302980, 1.1.sql +-1861367028, 1.2__dropsFor_1.1.sql +326342179, 1.3.sql +1959776888, 1.4__dropsFor_1.3.sql +783227075, R__multi_comments.sql +561281075, R__order_views.sql +283077354, R__pg_indexes.sql + diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlanywhere/1.0__initial.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlanywhere/1.0__initial.sql new file mode 100644 index 000000000..abe7271bc --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlanywhere/1.0__initial.sql @@ -0,0 +1,174 @@ +-- 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 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) auto_increment not null, + one_id numeric(19), + constraint pk_migtest_fk_cascade primary key (id) +); + +create table migtest_fk_cascade_one ( + id numeric(19) auto_increment not null, + constraint pk_migtest_fk_cascade_one primary key (id) +); + +create table migtest_fk_none ( + id numeric(19) auto_increment not null, + one_id numeric(19), + constraint pk_migtest_fk_none primary key (id) +); + +create table migtest_fk_none_via_join ( + id numeric(19) auto_increment not null, + one_id numeric(19), + constraint pk_migtest_fk_none_via_join primary key (id) +); + +create table migtest_fk_one ( + id numeric(19) auto_increment not null, + constraint pk_migtest_fk_one primary key (id) +); + +create table migtest_fk_set_null ( + id numeric(19) auto_increment not null, + one_id numeric(19), + constraint pk_migtest_fk_set_null primary key (id) +); + +create table migtest_e_basic ( + id integer auto_increment not null, + status varchar(1), + status2 varchar(1) default 'N' not null, + name varchar(127), + description varchar(127), + some_date timestamp, + old_boolean bit default false not null, + old_boolean2 bit, + eref_id integer, + indextest1 varchar(127), + indextest2 varchar(127), + indextest3 varchar(127), + indextest4 varchar(127), + indextest5 varchar(127), + indextest6 varchar(127), + user_id integer not null, + constraint ck_migtest_e_basic_status check ( status in ('N','A','I')), + constraint ck_migtest_e_basic_status2 check ( status2 in ('N','A','I')), + constraint uq_migtest_e_basic_indextest2 unique (indextest2), + constraint uq_migtest_e_basic_indextest6 unique (indextest6), + constraint pk_migtest_e_basic primary key (id) +); + +create table migtest_e_enum ( + id integer auto_increment not null, + test_status varchar(1), + constraint ck_migtest_e_enum_test_status check ( test_status in ('N','A','I')), + constraint pk_migtest_e_enum primary key (id) +); + +create table migtest_e_history ( + id integer auto_increment not null, + test_string varchar(255), + constraint pk_migtest_e_history primary key (id) +); + +create table migtest_e_history2 ( + id integer auto_increment not null, + test_string varchar(255), + obsolete_string1 varchar(255), + obsolete_string2 varchar(255), + constraint pk_migtest_e_history2 primary key (id) +); + +create table migtest_e_history3 ( + id integer auto_increment not null, + test_string varchar(255), + constraint pk_migtest_e_history3 primary key (id) +); + +create table migtest_e_history4 ( + id integer auto_increment not null, + test_number integer, + constraint pk_migtest_e_history4 primary key (id) +); + +create table migtest_e_history5 ( + id integer auto_increment not null, + test_number integer, + constraint pk_migtest_e_history5 primary key (id) +); + +create table migtest_e_history6 ( + id integer auto_increment not null, + test_number1 integer, + test_number2 integer not null, + constraint pk_migtest_e_history6 primary key (id) +); + +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) +); + +create table migtest_e_softdelete ( + id integer auto_increment not null, + test_string varchar(255), + 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 numeric(19) 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 numeric(19) 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); +create index ix_migtest_fk_cascade_one_id on 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 restrict; + +create index ix_migtest_fk_set_null_one_id on migtest_fk_set_null (one_id); +alter table migtest_fk_set_null add constraint fk_migtest_fk_set_null_one_id foreign key (one_id) references migtest_fk_one (id) on delete set null on update restrict; + +create index ix_migtest_e_basic_eref_id on migtest_e_basic (eref_id); +alter table migtest_e_basic add constraint fk_migtest_e_basic_eref_id foreign key (eref_id) references migtest_e_ref (id) on delete restrict on update restrict; + diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlanywhere/1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlanywhere/1.1.sql new file mode 100644 index 000000000..ba632c339 --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlanywhere/1.1.sql @@ -0,0 +1,110 @@ +-- Migrationscripts for ebean unittest +-- apply changes +create table migtest_e_user ( + id integer auto_increment not null, + 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 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 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; +alter table migtest_fk_none_via_join add constraint fk_migtest_fk_none_via_join_one_id foreign key (one_id) references migtest_fk_one (id) on delete restrict on update restrict; +alter table migtest_fk_set_null drop constraint if exists fk_migtest_fk_set_null_one_id; +alter table migtest_fk_set_null add constraint fk_migtest_fk_set_null_one_id foreign key (one_id) references migtest_fk_one (id) on delete restrict on update restrict; + +update migtest_e_basic set status = 'A' where status is null; +alter table migtest_e_basic drop constraint if exists ck_migtest_e_basic_status; +alter table migtest_e_basic alter column status set default 'A'; +alter table migtest_e_basic alter column status set not null; +alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I','?')); +alter table migtest_e_basic drop constraint if exists ck_migtest_e_basic_status2; +alter table migtest_e_basic alter column status2 varchar(127); +alter table migtest_e_basic alter column status2 drop default; +alter table migtest_e_basic alter column status2 set null; + +-- rename all collisions; +alter table migtest_e_basic add constraint uq_migtest_e_basic_description unique (description); + +insert into migtest_e_user (id) select distinct user_id from migtest_e_basic; +alter table migtest_e_basic add constraint fk_migtest_e_basic_user_id foreign key (user_id) references migtest_e_user (id) on delete restrict on update restrict; +alter table migtest_e_basic alter column user_id set null; +alter table migtest_e_basic add column new_string_field varchar(255) default 'foo''bar' not null; +alter table migtest_e_basic add column new_boolean_field bit default true not null; +update migtest_e_basic set new_boolean_field = old_boolean; + +alter table migtest_e_basic add column new_boolean_field2 bit default true not null; +alter table migtest_e_basic add column progress integer default 0 not null; +alter table migtest_e_basic add constraint ck_migtest_e_basic_progress check ( progress in (0,1,2)); +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); +alter table migtest_e_enum drop constraint if exists ck_migtest_e_enum_test_status; +comment on column migtest_e_history.test_string is 'Column altered to long now'; +alter table migtest_e_history alter column test_string numeric(19); +comment on table migtest_e_history is 'We have history now'; + +-- NOTE: table has @History - special migration may be necessary +update migtest_e_history2 set test_string = 'unknown' where test_string is null; +alter table migtest_e_history2 alter column test_string set default 'unknown'; +alter table migtest_e_history2 alter column test_string set not null; +alter table migtest_e_history2 add column test_string2 varchar(255); +alter table migtest_e_history2 add column test_string3 varchar(255) default 'unknown' not null; +alter table migtest_e_history2 add column new_column varchar(20); + +alter table migtest_e_history4 alter column test_number numeric(19); +alter table migtest_e_history5 add column test_boolean bit default false not null; + + +-- NOTE: table has @History - special migration may be necessary +update migtest_e_history6 set test_number1 = 42 where test_number1 is null; +alter table migtest_e_history6 alter column test_number1 set default 42; +alter table migtest_e_history6 alter column test_number1 set not null; +alter table migtest_e_history6 alter column test_number2 set null; +alter table migtest_e_softdelete add column deleted bit default false not null; + +alter table migtest_oto_child add column 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); +drop index if exists ix_migtest_e_basic_indextest1; +drop index if exists ix_migtest_e_basic_indextest5; +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_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_m on migtest_mtm_c_migtest_mtm_m (migtest_mtm_m_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_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_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_c on migtest_mtm_m_migtest_mtm_c (migtest_mtm_c_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_ckey_parent_assoc_id on migtest_ckey_parent (assoc_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; + +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/ebean-test/src/test/resources/migrationtest/dbmigration/sqlanywhere/1.2__dropsFor_1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlanywhere/1.2__dropsFor_1.1.sql new file mode 100644 index 000000000..3f8f468ba --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlanywhere/1.2__dropsFor_1.1.sql @@ -0,0 +1,13 @@ +-- Migrationscripts for ebean unittest +-- apply changes +alter table migtest_e_basic drop column old_boolean; + +alter table migtest_e_basic drop column old_boolean2; + +alter table migtest_e_basic drop column eref_id; + +alter table migtest_e_history2 drop column obsolete_string1; + +alter table migtest_e_history2 drop column obsolete_string2; + +drop table if exists migtest_e_ref; diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlanywhere/1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlanywhere/1.3.sql new file mode 100644 index 000000000..0133a0673 --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlanywhere/1.3.sql @@ -0,0 +1,67 @@ +-- Migrationscripts for ebean unittest +-- 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 restrict; +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; +alter table migtest_fk_set_null drop constraint if exists fk_migtest_fk_set_null_one_id; +alter table migtest_fk_set_null add constraint fk_migtest_fk_set_null_one_id foreign key (one_id) references migtest_fk_one (id) on delete set null on update restrict; +alter table migtest_e_basic drop constraint if exists ck_migtest_e_basic_status; +alter table migtest_e_basic alter column status drop default; +alter table migtest_e_basic alter column status set null; +alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I')); + +update migtest_e_basic set status2 = 'N' where status2 is null; +alter table migtest_e_basic drop constraint if exists ck_migtest_e_basic_status2; +alter table migtest_e_basic alter column status2 varchar(1); +alter table migtest_e_basic alter column status2 set default 'N'; +alter table migtest_e_basic alter column status2 set not null; +alter table migtest_e_basic add constraint ck_migtest_e_basic_status2 check ( status2 in ('N','A','I')); +alter table migtest_e_basic drop constraint uq_migtest_e_basic_description; + +update migtest_e_basic set user_id = 23 where user_id is null; +alter table migtest_e_basic drop constraint if exists fk_migtest_e_basic_user_id; +alter table migtest_e_basic alter column user_id set default 23; +alter table migtest_e_basic alter column user_id set not null; +alter table migtest_e_basic add column old_boolean bit default false not null; +alter table migtest_e_basic add column old_boolean2 bit; +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; +alter table migtest_e_basic add constraint uq_migtest_e_basic_indextest2 unique (indextest2); +alter table migtest_e_basic add constraint uq_migtest_e_basic_indextest6 unique (indextest6); +alter table migtest_e_enum drop constraint if exists ck_migtest_e_enum_test_status; +alter table migtest_e_enum add constraint ck_migtest_e_enum_test_status check ( test_status in ('N','A','I')); +comment on column migtest_e_history.test_string is ''; +comment on table migtest_e_history is ''; +alter table migtest_e_history2 alter column test_string drop default; +alter table migtest_e_history2 alter column test_string set null; +alter table migtest_e_history2 add column obsolete_string1 varchar(255); +alter table migtest_e_history2 add column obsolete_string2 varchar(255); + +alter table migtest_e_history4 alter column test_number integer; +alter table migtest_e_history6 alter column test_number1 drop default; +alter table migtest_e_history6 alter column test_number1 set null; + +-- NOTE: table has @History - special migration may be necessary +update migtest_e_history6 set test_number2 = 7 where test_number2 is null; +alter table migtest_e_history6 alter column test_number2 set default 7; +alter table migtest_e_history6 alter column test_number2 set not null; +create index ix_migtest_e_basic_indextest1 on migtest_e_basic (indextest1); +create index ix_migtest_e_basic_indextest5 on migtest_e_basic (indextest5); +drop index if exists ix_migtest_e_basic_indextest3; +drop index if exists ix_migtest_e_basic_indextest6; +create index ix_migtest_e_basic_eref_id on migtest_e_basic (eref_id); +alter table migtest_e_basic add constraint fk_migtest_e_basic_eref_id foreign key (eref_id) references migtest_e_ref (id) on delete restrict on update restrict; + diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlanywhere/1.4__dropsFor_1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlanywhere/1.4__dropsFor_1.3.sql new file mode 100644 index 000000000..24e4e93ba --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlanywhere/1.4__dropsFor_1.3.sql @@ -0,0 +1,33 @@ +-- 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; + +alter table migtest_e_basic drop column new_boolean_field2; + +alter table migtest_e_basic drop column progress; + +alter table migtest_e_basic drop column new_integer; + +alter table migtest_e_history2 drop column test_string2; + +alter table migtest_e_history2 drop column test_string3; + +alter table migtest_e_history2 drop column new_column; + +alter table migtest_e_history5 drop column test_boolean; + +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/ebean-test/src/test/resources/migrationtest/dbmigration/sqlanywhere/idx_sqlanywhere.migrations b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlanywhere/idx_sqlanywhere.migrations new file mode 100644 index 000000000..7573b93ff --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlanywhere/idx_sqlanywhere.migrations @@ -0,0 +1,6 @@ +471098770, 1.0__initial.sql +-1404654186, 1.1.sql +1359055889, 1.2__dropsFor_1.1.sql +-1656705954, 1.3.sql +-1070218324, 1.4__dropsFor_1.3.sql + diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlite/1.0__initial.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlite/1.0__initial.sql new file mode 100644 index 000000000..1a4944f30 --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlite/1.0__initial.sql @@ -0,0 +1,168 @@ +-- 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 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, + constraint pk_migtest_fk_cascade primary key (id), + foreign key (one_id) references migtest_fk_cascade_one (id) on delete cascade on update restrict +); + +create table migtest_fk_cascade_one ( + id integer not null, + constraint pk_migtest_fk_cascade_one primary key (id) +); + +create table migtest_fk_none ( + id integer not null, + one_id integer, + constraint pk_migtest_fk_none primary key (id) +); + +create table migtest_fk_none_via_join ( + id integer not null, + one_id integer, + constraint pk_migtest_fk_none_via_join primary key (id) +); + +create table migtest_fk_one ( + id integer not null, + constraint pk_migtest_fk_one primary key (id) +); + +create table migtest_fk_set_null ( + id integer not null, + one_id integer, + constraint pk_migtest_fk_set_null primary key (id), + foreign key (one_id) references migtest_fk_one (id) on delete set null on update restrict +); + +create table migtest_e_basic ( + id integer not null, + status varchar(1), + status2 varchar(1) default 'N' not null, + name varchar(127), + description varchar(127), + some_date timestamp, + old_boolean int default 0 not null, + old_boolean2 int, + eref_id integer, + indextest1 varchar(127), + indextest2 varchar(127), + indextest3 varchar(127), + indextest4 varchar(127), + indextest5 varchar(127), + indextest6 varchar(127), + user_id integer not null, + constraint ck_migtest_e_basic_status check ( status in ('N','A','I')), + constraint ck_migtest_e_basic_status2 check ( status2 in ('N','A','I')), + constraint uq_migtest_e_basic_indextest2 unique (indextest2), + constraint uq_migtest_e_basic_indextest6 unique (indextest6), + constraint pk_migtest_e_basic primary key (id), + foreign key (eref_id) references migtest_e_ref (id) on delete restrict on update restrict +); + +create table migtest_e_enum ( + id integer not null, + test_status varchar(1), + constraint ck_migtest_e_enum_test_status check ( test_status in ('N','A','I')), + constraint pk_migtest_e_enum primary key (id) +); + +create table migtest_e_history ( + id integer not null, + test_string varchar(255), + constraint pk_migtest_e_history primary key (id) +); + +create table migtest_e_history2 ( + id integer not null, + test_string varchar(255), + obsolete_string1 varchar(255), + obsolete_string2 varchar(255), + constraint pk_migtest_e_history2 primary key (id) +); + +create table migtest_e_history3 ( + id integer not null, + test_string varchar(255), + constraint pk_migtest_e_history3 primary key (id) +); + +create table migtest_e_history4 ( + id integer not null, + test_number integer, + constraint pk_migtest_e_history4 primary key (id) +); + +create table migtest_e_history5 ( + id integer not null, + test_number integer, + constraint pk_migtest_e_history5 primary key (id) +); + +create table migtest_e_history6 ( + id integer not null, + test_number1 integer, + test_number2 integer not null, + constraint pk_migtest_e_history6 primary key (id) +); + +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) +); + +create table migtest_e_softdelete ( + id integer not null, + test_string varchar(255), + 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/ebean-test/src/test/resources/migrationtest/dbmigration/sqlite/1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlite/1.1.sql new file mode 100644 index 000000000..a762b673e --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlite/1.1.sql @@ -0,0 +1,92 @@ +-- Migrationscripts for ebean unittest +-- apply changes +create table migtest_e_user ( + id integer not null, + 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; +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; + +update migtest_e_basic set status = 'A' where status is null; +alter table migtest_e_basic drop constraint if exists ck_migtest_e_basic_status; +alter table migtest_e_basic alter column status set default 'A'; +alter table migtest_e_basic alter column status set not null; +alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I','?')); +alter table migtest_e_basic drop constraint if exists ck_migtest_e_basic_status2; +alter table migtest_e_basic alter column status2 varchar(127); +alter table migtest_e_basic alter column status2 drop default; +alter table migtest_e_basic alter column status2 set null; + +-- rename all collisions; +alter table migtest_e_basic add constraint uq_migtest_e_basic_description unique (description); + +insert into migtest_e_user (id) select distinct user_id from migtest_e_basic; +alter table migtest_e_basic alter column user_id set null; +alter table migtest_e_basic add column new_string_field varchar(255) default 'foo''bar' not null; +alter table migtest_e_basic add column new_boolean_field int default 1 not null; +update migtest_e_basic set new_boolean_field = old_boolean; + +alter table migtest_e_basic add column new_boolean_field2 int default 1 not null; +alter table migtest_e_basic add column progress integer default 0 not null; +alter table migtest_e_basic add constraint ck_migtest_e_basic_progress check ( progress in (0,1,2)); +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); +alter table migtest_e_enum drop constraint if exists ck_migtest_e_enum_test_status; +alter table migtest_e_history alter column test_string integer; + +-- NOTE: table has @History - special migration may be necessary +update migtest_e_history2 set test_string = 'unknown' where test_string is null; +alter table migtest_e_history2 alter column test_string set default 'unknown'; +alter table migtest_e_history2 alter column test_string set not null; +alter table migtest_e_history2 add column test_string2 varchar(255); +alter table migtest_e_history2 add column test_string3 varchar(255) default 'unknown' not null; +alter table migtest_e_history2 add column new_column varchar(20); + +alter table migtest_e_history4 alter column test_number integer; +alter table migtest_e_history5 add column test_boolean int default 0 not null; + + +-- NOTE: table has @History - special migration may be necessary +update migtest_e_history6 set test_number1 = 42 where test_number1 is null; +alter table migtest_e_history6 alter column test_number1 set default 42; +alter table migtest_e_history6 alter column test_number1 set not null; +alter table migtest_e_history6 alter column test_number2 set null; +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/ebean-test/src/test/resources/migrationtest/dbmigration/sqlite/1.2__dropsFor_1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlite/1.2__dropsFor_1.1.sql new file mode 100644 index 000000000..3f8f468ba --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlite/1.2__dropsFor_1.1.sql @@ -0,0 +1,13 @@ +-- Migrationscripts for ebean unittest +-- apply changes +alter table migtest_e_basic drop column old_boolean; + +alter table migtest_e_basic drop column old_boolean2; + +alter table migtest_e_basic drop column eref_id; + +alter table migtest_e_history2 drop column obsolete_string1; + +alter table migtest_e_history2 drop column obsolete_string2; + +drop table if exists migtest_e_ref; diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlite/1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlite/1.3.sql new file mode 100644 index 000000000..3812d6e38 --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlite/1.3.sql @@ -0,0 +1,62 @@ +-- Migrationscripts for ebean unittest +-- 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; +alter table migtest_fk_set_null drop constraint if exists fk_migtest_fk_set_null_one_id; +alter table migtest_e_basic drop constraint if exists ck_migtest_e_basic_status; +alter table migtest_e_basic alter column status drop default; +alter table migtest_e_basic alter column status set null; +alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I')); + +update migtest_e_basic set status2 = 'N' where status2 is null; +alter table migtest_e_basic drop constraint if exists ck_migtest_e_basic_status2; +alter table migtest_e_basic alter column status2 varchar(1); +alter table migtest_e_basic alter column status2 set default 'N'; +alter table migtest_e_basic alter column status2 set not null; +alter table migtest_e_basic add constraint ck_migtest_e_basic_status2 check ( status2 in ('N','A','I')); +alter table migtest_e_basic drop constraint uq_migtest_e_basic_description; + +update migtest_e_basic set user_id = 23 where user_id is null; +alter table migtest_e_basic drop constraint if exists fk_migtest_e_basic_user_id; +alter table migtest_e_basic alter column user_id set default 23; +alter table migtest_e_basic alter column user_id set not null; +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; +alter table migtest_e_basic add constraint uq_migtest_e_basic_indextest2 unique (indextest2); +alter table migtest_e_basic add constraint uq_migtest_e_basic_indextest6 unique (indextest6); +alter table migtest_e_enum drop constraint if exists ck_migtest_e_enum_test_status; +alter table migtest_e_enum add constraint ck_migtest_e_enum_test_status check ( test_status in ('N','A','I')); +alter table migtest_e_history2 alter column test_string drop default; +alter table migtest_e_history2 alter column test_string set null; +alter table migtest_e_history2 add column obsolete_string1 varchar(255); +alter table migtest_e_history2 add column obsolete_string2 varchar(255); + +alter table migtest_e_history4 alter column test_number integer; +alter table migtest_e_history6 alter column test_number1 drop default; +alter table migtest_e_history6 alter column test_number1 set null; + +-- NOTE: table has @History - special migration may be necessary +update migtest_e_history6 set test_number2 = 7 where test_number2 is null; +alter table migtest_e_history6 alter column test_number2 set default 7; +alter table migtest_e_history6 alter column test_number2 set not null; +create index ix_migtest_e_basic_indextest1 on migtest_e_basic (indextest1); +create index ix_migtest_e_basic_indextest5 on migtest_e_basic (indextest5); +drop index if exists ix_migtest_e_basic_indextest3; +drop index if exists ix_migtest_e_basic_indextest6; +create index ix_migtest_e_basic_eref_id on migtest_e_basic (eref_id); + diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlite/1.4__dropsFor_1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlite/1.4__dropsFor_1.3.sql new file mode 100644 index 000000000..24e4e93ba --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlite/1.4__dropsFor_1.3.sql @@ -0,0 +1,33 @@ +-- 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; + +alter table migtest_e_basic drop column new_boolean_field2; + +alter table migtest_e_basic drop column progress; + +alter table migtest_e_basic drop column new_integer; + +alter table migtest_e_history2 drop column test_string2; + +alter table migtest_e_history2 drop column test_string3; + +alter table migtest_e_history2 drop column new_column; + +alter table migtest_e_history5 drop column test_boolean; + +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/ebean-test/src/test/resources/migrationtest/dbmigration/sqlite/R__order_views_sqlite.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlite/R__order_views_sqlite.sql new file mode 100644 index 000000000..9572b5c26 --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlite/R__order_views_sqlite.sql @@ -0,0 +1,8 @@ + + drop view if exists order_agg_vw; + create view order_agg_vw as + select d.order_id, sum(d.order_qty * d.unit_price) as order_total, + sum(d.ship_qty * d.unit_price) as ship_total + from o_order_detail d + group by d.order_id; + \ No newline at end of file diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlite/idx_sqlite.migrations b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlite/idx_sqlite.migrations new file mode 100644 index 000000000..8dc515327 --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlite/idx_sqlite.migrations @@ -0,0 +1,7 @@ +1429491518, 1.0__initial.sql +-347121868, 1.1.sql +1359055889, 1.2__dropsFor_1.1.sql +-1764531063, 1.3.sql +-1070218324, 1.4__dropsFor_1.3.sql +2034589659, R__order_views_sqlite.sql + diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver/1.0__initial.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver/1.0__initial.sql new file mode 100644 index 000000000..13b5da203 --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver/1.0__initial.sql @@ -0,0 +1,221 @@ +-- Migrationscripts for ebean unittest +-- apply changes +create table migtest_ckey_assoc ( + id integer not null, + assoc_one nvarchar(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 nvarchar(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 nvarchar(127) not null, + name nvarchar(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), + constraint pk_migtest_fk_cascade primary key (id) +); +create sequence migtest_fk_cascade_seq as bigint start with 1; + +create table migtest_fk_cascade_one ( + id numeric(19) not null, + constraint pk_migtest_fk_cascade_one primary key (id) +); +create sequence migtest_fk_cascade_one_seq as bigint start with 1; + +create table migtest_fk_none ( + id numeric(19) not null, + one_id numeric(19), + constraint pk_migtest_fk_none primary key (id) +); +create sequence migtest_fk_none_seq as bigint start with 1; + +create table migtest_fk_none_via_join ( + id numeric(19) not null, + one_id numeric(19), + constraint pk_migtest_fk_none_via_join primary key (id) +); +create sequence migtest_fk_none_via_join_seq as bigint start with 1; + +create table migtest_fk_one ( + id numeric(19) not null, + constraint pk_migtest_fk_one primary key (id) +); +create sequence migtest_fk_one_seq as bigint start with 1; + +create table migtest_fk_set_null ( + id numeric(19) not null, + one_id numeric(19), + constraint pk_migtest_fk_set_null primary key (id) +); +create sequence migtest_fk_set_null_seq as bigint start with 1; + +create table migtest_e_basic ( + id integer not null, + status nvarchar(1), + status2 nvarchar(1) default 'N' not null, + name nvarchar(127), + description nvarchar(127), + some_date datetime2, + old_boolean bit default 0 not null, + old_boolean2 bit, + eref_id integer, + indextest1 nvarchar(127), + indextest2 nvarchar(127), + indextest3 nvarchar(127), + indextest4 nvarchar(127), + indextest5 nvarchar(127), + indextest6 nvarchar(127), + user_id integer not null, + constraint ck_migtest_e_basic_status check ( status in ('N','A','I')), + constraint ck_migtest_e_basic_status2 check ( status2 in ('N','A','I')), + constraint pk_migtest_e_basic primary key (id) +); +create unique nonclustered index uq_migtest_e_basic_indextest2 on migtest_e_basic(indextest2) where indextest2 is not null; +create unique nonclustered index uq_migtest_e_basic_indextest6 on migtest_e_basic(indextest6) where indextest6 is not null; +create sequence migtest_e_basic_seq as bigint start with 1; + +create table migtest_e_enum ( + id integer not null, + test_status nvarchar(1), + constraint ck_migtest_e_enum_test_status check ( test_status in ('N','A','I')), + constraint pk_migtest_e_enum primary key (id) +); +create sequence migtest_e_enum_seq as bigint start with 1; + +create table migtest_e_history ( + id integer not null, + test_string nvarchar(255), + constraint pk_migtest_e_history primary key (id) +); +create sequence migtest_e_history_seq as bigint start with 1; + +create table migtest_e_history2 ( + id integer not null, + test_string nvarchar(255), + obsolete_string1 nvarchar(255), + obsolete_string2 nvarchar(255), + constraint pk_migtest_e_history2 primary key (id) +); +create sequence migtest_e_history2_seq as bigint start with 1; + +create table migtest_e_history3 ( + id integer not null, + test_string nvarchar(255), + constraint pk_migtest_e_history3 primary key (id) +); +create sequence migtest_e_history3_seq as bigint start with 1; + +create table migtest_e_history4 ( + id integer not null, + test_number integer, + constraint pk_migtest_e_history4 primary key (id) +); +create sequence migtest_e_history4_seq as bigint start with 1; + +create table migtest_e_history5 ( + id integer not null, + test_number integer, + constraint pk_migtest_e_history5 primary key (id) +); +create sequence migtest_e_history5_seq as bigint start with 1; + +create table migtest_e_history6 ( + id integer not null, + test_number1 integer, + test_number2 integer not null, + constraint pk_migtest_e_history6 primary key (id) +); +create sequence migtest_e_history6_seq as bigint start with 1; + +create table migtest_e_ref ( + id integer not null, + name nvarchar(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 ( + id integer not null, + test_string nvarchar(255), + constraint pk_migtest_e_softdelete primary key (id) +); +create sequence migtest_e_softdelete_seq as bigint start with 1; + +create table migtest_mtm_c ( + id integer not null, + name nvarchar(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 nvarchar(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 nvarchar(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 nvarchar(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); +create index ix_migtest_fk_cascade_one_id on 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; + +create index ix_migtest_fk_set_null_one_id on migtest_fk_set_null (one_id); +alter table migtest_fk_set_null add constraint fk_migtest_fk_set_null_one_id foreign key (one_id) references migtest_fk_one (id) on delete set null; + +create index ix_migtest_e_basic_eref_id on migtest_e_basic (eref_id); +alter table migtest_e_basic add constraint fk_migtest_e_basic_eref_id foreign key (eref_id) references migtest_e_ref (id); + +alter table migtest_e_history2 + 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', +period for system_time (sys_periodFrom, sys_periodTo); +alter table migtest_e_history2 set (system_versioning = on (history_table=dbo.migtest_e_history2_history)); +alter table migtest_e_history3 + 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', +period for system_time (sys_periodFrom, sys_periodTo); +alter table migtest_e_history3 set (system_versioning = on (history_table=dbo.migtest_e_history3_history)); +alter table migtest_e_history4 + 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', +period for system_time (sys_periodFrom, sys_periodTo); +alter table migtest_e_history4 set (system_versioning = on (history_table=dbo.migtest_e_history4_history)); +alter table migtest_e_history5 + 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', +period for system_time (sys_periodFrom, sys_periodTo); +alter table migtest_e_history5 set (system_versioning = on (history_table=dbo.migtest_e_history5_history)); +alter table migtest_e_history6 + 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', +period for system_time (sys_periodFrom, sys_periodTo); +alter table migtest_e_history6 set (system_versioning = on (history_table=dbo.migtest_e_history6_history)); diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver/1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver/1.1.sql new file mode 100644 index 000000000..f8ba67fe0 --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver/1.1.sql @@ -0,0 +1,118 @@ +-- Migrationscripts for ebean unittest +-- apply changes +create table migtest_e_user ( + id integer not null, + constraint pk_migtest_e_user primary key (id) +); +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 nvarchar(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); +alter table migtest_fk_none_via_join add constraint fk_migtest_fk_none_via_join_one_id foreign key (one_id) references migtest_fk_one (id); +IF OBJECT_ID('fk_migtest_fk_set_null_one_id', 'F') IS NOT NULL alter table migtest_fk_set_null drop constraint fk_migtest_fk_set_null_one_id; +alter table migtest_fk_set_null add constraint fk_migtest_fk_set_null_one_id foreign key (one_id) references migtest_fk_one (id); + +update migtest_e_basic set status = 'A' where status is null; +IF (OBJECT_ID('ck_migtest_e_basic_status', 'C') IS NOT NULL) alter table migtest_e_basic drop constraint ck_migtest_e_basic_status; +alter table migtest_e_basic add default 'A' for status; +alter table migtest_e_basic alter column status nvarchar(1) not null; +alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I','?')); +IF (OBJECT_ID('ck_migtest_e_basic_status2', 'C') IS NOT NULL) alter table migtest_e_basic drop constraint ck_migtest_e_basic_status2; +EXEC usp_ebean_drop_default_constraint migtest_e_basic, status2; +alter table migtest_e_basic alter column status2 nvarchar(127); + +-- rename all collisions; +create unique nonclustered index uq_migtest_e_basic_description on migtest_e_basic(description) where description is not null; + +insert into migtest_e_user (id) select distinct user_id from migtest_e_basic; +alter table migtest_e_basic add constraint fk_migtest_e_basic_user_id foreign key (user_id) references migtest_e_user (id); +alter table migtest_e_basic alter column user_id integer; +alter table migtest_e_basic add new_string_field nvarchar(255) default 'foo''bar' not null; +alter table migtest_e_basic add new_boolean_field bit default 1 not null; +update migtest_e_basic set new_boolean_field = old_boolean; + +alter table migtest_e_basic add new_boolean_field2 bit default 1 not null; +alter table migtest_e_basic add progress integer default 0 not null; +alter table migtest_e_basic add constraint ck_migtest_e_basic_progress check ( progress in (0,1,2)); +alter table migtest_e_basic add new_integer integer default 42 not null; + +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_indextest2', 'UQ') IS NOT NULL) alter table migtest_e_basic drop constraint uq_migtest_e_basic_indextest2; +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; +IF (OBJECT_ID('uq_migtest_e_basic_indextest6', 'UQ') IS NOT NULL) alter table migtest_e_basic drop constraint uq_migtest_e_basic_indextest6; +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; +IF (OBJECT_ID('ck_migtest_e_enum_test_status', 'C') IS NOT NULL) alter table migtest_e_enum drop constraint ck_migtest_e_enum_test_status; +alter table migtest_e_history alter column test_string numeric(19); + +-- NOTE: table has @History - special migration may be necessary +update migtest_e_history2 set test_string = 'unknown' where test_string is null; +alter table migtest_e_history2 add default 'unknown' for test_string; +alter table migtest_e_history2 alter column test_string nvarchar(255) not null; +alter table migtest_e_history2 add test_string2 nvarchar(255); +alter table migtest_e_history2 add test_string3 nvarchar(255) default 'unknown' not null; +alter table migtest_e_history2 add new_column nvarchar(20); + +alter table migtest_e_history4 alter column test_number numeric(19); +alter table migtest_e_history5 add test_boolean bit default 0 not null; + + +-- NOTE: table has @History - special migration may be necessary +update migtest_e_history6 set test_number1 = 42 where test_number1 is null; +alter table migtest_e_history6 add default 42 for test_number1; +alter table migtest_e_history6 alter column test_number1 integer not null; +alter table migtest_e_history6 alter column test_number2 integer; +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; +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_c foreign key (migtest_mtm_c_id) references migtest_mtm_c (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_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_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_m foreign key (migtest_mtm_m_id) references migtest_mtm_m (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_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_ckey_parent_assoc_id on migtest_ckey_parent (assoc_id); +alter table migtest_ckey_parent add constraint fk_migtest_ckey_parent_assoc_id foreign key (assoc_id) references migtest_ckey_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', +period for system_time (sys_periodFrom, sys_periodTo); +alter table migtest_e_history set (system_versioning = on (history_table=dbo.migtest_e_history_history)); +-- alter table migtest_e_history3 set (system_versioning = off (history_table=dbo.migtest_e_history3_history)); +-- history migration goes here +-- alter table migtest_e_history3 set (system_versioning = on (history_table=dbo.migtest_e_history3_history)); diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver/1.2__dropsFor_1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver/1.2__dropsFor_1.1.sql new file mode 100644 index 000000000..b34091486 --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver/1.2__dropsFor_1.1.sql @@ -0,0 +1,14 @@ +-- Migrationscripts for ebean unittest +-- apply changes +EXEC usp_ebean_drop_column migtest_e_basic, old_boolean; + +EXEC usp_ebean_drop_column migtest_e_basic, old_boolean2; + +EXEC usp_ebean_drop_column migtest_e_basic, eref_id; + +EXEC usp_ebean_drop_column migtest_e_history2, obsolete_string1; + +EXEC usp_ebean_drop_column migtest_e_history2, obsolete_string2; + +IF OBJECT_ID('migtest_e_ref', 'U') IS NOT NULL drop table migtest_e_ref; +IF OBJECT_ID('migtest_e_ref_seq', 'SO') IS NOT NULL drop sequence migtest_e_ref_seq; diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver/1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver/1.3.sql new file mode 100644 index 000000000..76564b73c --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver/1.3.sql @@ -0,0 +1,73 @@ +-- Migrationscripts for ebean unittest +-- apply changes +create table migtest_e_ref ( + id integer not null, + name nvarchar(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; +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; +IF OBJECT_ID('fk_migtest_fk_none_via_join_one_id', 'F') IS NOT NULL alter table migtest_fk_none_via_join drop constraint fk_migtest_fk_none_via_join_one_id; +IF OBJECT_ID('fk_migtest_fk_set_null_one_id', 'F') IS NOT NULL alter table migtest_fk_set_null drop constraint fk_migtest_fk_set_null_one_id; +alter table migtest_fk_set_null add constraint fk_migtest_fk_set_null_one_id foreign key (one_id) references migtest_fk_one (id) on delete set null; +IF (OBJECT_ID('ck_migtest_e_basic_status', 'C') IS NOT NULL) alter table migtest_e_basic drop constraint ck_migtest_e_basic_status; +EXEC usp_ebean_drop_default_constraint migtest_e_basic, status; +alter table migtest_e_basic alter column status nvarchar(1); +alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I')); + +update migtest_e_basic set status2 = 'N' where status2 is null; +IF (OBJECT_ID('ck_migtest_e_basic_status2', 'C') IS NOT NULL) alter table migtest_e_basic drop constraint ck_migtest_e_basic_status2; +alter table migtest_e_basic add default 'N' for status2; +alter table migtest_e_basic alter column status2 nvarchar(1) not null; +alter table migtest_e_basic add constraint ck_migtest_e_basic_status2 check ( status2 in ('N','A','I')); +IF EXISTS (SELECT name FROM sys.indexes WHERE object_id = OBJECT_ID('migtest_e_basic','U') AND name = 'uq_migtest_e_basic_description') drop index uq_migtest_e_basic_description ON migtest_e_basic; +IF (OBJECT_ID('uq_migtest_e_basic_description', 'UQ') IS NOT NULL) alter table migtest_e_basic drop constraint uq_migtest_e_basic_description; + +update migtest_e_basic set user_id = 23 where user_id is null; +IF OBJECT_ID('fk_migtest_e_basic_user_id', 'F') IS NOT NULL alter table migtest_e_basic drop constraint fk_migtest_e_basic_user_id; +alter table migtest_e_basic add default 23 for user_id; +alter table migtest_e_basic alter column user_id integer not null; +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 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_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_name') drop index uq_migtest_e_basic_name 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_indextest4') drop index uq_migtest_e_basic_indextest4 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; +IF EXISTS (SELECT name FROM sys.indexes WHERE object_id = OBJECT_ID('migtest_e_basic','U') AND name = 'uq_migtest_e_basic_indextest5') drop index uq_migtest_e_basic_indextest5 ON migtest_e_basic; +IF (OBJECT_ID('uq_migtest_e_basic_indextest5', 'UQ') IS NOT NULL) alter table migtest_e_basic drop constraint uq_migtest_e_basic_indextest5; +create unique nonclustered index uq_migtest_e_basic_indextest2 on migtest_e_basic(indextest2) where indextest2 is not null; +create unique nonclustered index uq_migtest_e_basic_indextest6 on migtest_e_basic(indextest6) where indextest6 is not null; +IF (OBJECT_ID('ck_migtest_e_enum_test_status', 'C') IS NOT NULL) alter table migtest_e_enum drop constraint ck_migtest_e_enum_test_status; +alter table migtest_e_enum add constraint ck_migtest_e_enum_test_status check ( test_status in ('N','A','I')); +EXEC usp_ebean_drop_default_constraint migtest_e_history2, test_string; +alter table migtest_e_history2 alter column test_string nvarchar(255); +alter table migtest_e_history2 add obsolete_string1 nvarchar(255); +alter table migtest_e_history2 add obsolete_string2 nvarchar(255); + +alter table migtest_e_history4 alter column test_number integer; +EXEC usp_ebean_drop_default_constraint migtest_e_history6, test_number1; +alter table migtest_e_history6 alter column test_number1 integer; + +-- NOTE: table has @History - special migration may be necessary +update migtest_e_history6 set test_number2 = 7 where test_number2 is null; +alter table migtest_e_history6 add default 7 for test_number2; +alter table migtest_e_history6 alter column test_number2 integer not null; +create index ix_migtest_e_basic_indextest1 on migtest_e_basic (indextest1); +create index ix_migtest_e_basic_indextest5 on migtest_e_basic (indextest5); +IF EXISTS (SELECT name FROM sys.indexes WHERE object_id = OBJECT_ID('migtest_e_basic','U') AND name = 'ix_migtest_e_basic_indextest3') drop index ix_migtest_e_basic_indextest3 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_indextest6') drop index ix_migtest_e_basic_indextest6 ON migtest_e_basic; +create index ix_migtest_e_basic_eref_id on migtest_e_basic (eref_id); +alter table migtest_e_basic add constraint fk_migtest_e_basic_eref_id foreign key (eref_id) references migtest_e_ref (id); + +-- alter table migtest_e_history3 set (system_versioning = off (history_table=dbo.migtest_e_history3_history)); +-- history migration goes here +-- alter table migtest_e_history3 set (system_versioning = on (history_table=dbo.migtest_e_history3_history)); diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver/1.4__dropsFor_1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver/1.4__dropsFor_1.3.sql new file mode 100644 index 000000000..4cc7ad30b --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver/1.4__dropsFor_1.3.sql @@ -0,0 +1,43 @@ +-- Migrationscripts for ebean unittest +-- apply changes +EXEC usp_ebean_drop_column migtest_ckey_detail, one_key; + +EXEC usp_ebean_drop_column migtest_ckey_detail, two_key; + +EXEC usp_ebean_drop_column migtest_ckey_parent, assoc_id; + +EXEC usp_ebean_drop_column migtest_e_basic, new_string_field; + +EXEC usp_ebean_drop_column migtest_e_basic, new_boolean_field; + +EXEC usp_ebean_drop_column migtest_e_basic, new_boolean_field2; + +EXEC usp_ebean_drop_column migtest_e_basic, progress; + +EXEC usp_ebean_drop_column migtest_e_basic, new_integer; + +EXEC usp_ebean_drop_column migtest_e_history2, test_string2; + +EXEC usp_ebean_drop_column migtest_e_history2, test_string3; + +EXEC usp_ebean_drop_column migtest_e_history2, new_column; + +EXEC usp_ebean_drop_column migtest_e_history5, test_boolean; + +EXEC usp_ebean_drop_column migtest_e_softdelete, deleted; + +EXEC usp_ebean_drop_column migtest_oto_child, 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; +EXEC usp_ebean_drop_default_constraint migtest_e_history, sys_periodFrom; +EXEC usp_ebean_drop_default_constraint migtest_e_history, sys_periodTo; +alter table migtest_e_history set (system_versioning = off); +alter table migtest_e_history drop period for system_time; +alter table migtest_e_history drop column sys_periodFrom; +alter table migtest_e_history drop column sys_periodTo; +IF OBJECT_ID('migtest_e_history_history', 'U') IS NOT NULL drop table migtest_e_history_history; + diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver/I__create_procs.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver/I__create_procs.sql new file mode 100644 index 000000000..6f916bcc9 --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver/I__create_procs.sql @@ -0,0 +1,110 @@ +-- Initial script to create stored procedures etc for sqlserver platform + +-- create table-value-parameters +if not exists (select name from sys.types where name = 'ebean_bigint_tvp') create type ebean_bigint_tvp as table (c1 bigint) +GO +if not exists (select name from sys.types where name = 'ebean_float_tvp') create type ebean_float_tvp as table (c1 float) +GO +if not exists (select name from sys.types where name = 'ebean_bit_tvp') create type ebean_bit_tvp as table (c1 bit) +GO +if not exists (select name from sys.types where name = 'ebean_date_tvp') create type ebean_date_tvp as table (c1 date) +GO +if not exists (select name from sys.types where name = 'ebean_time_tvp') create type ebean_time_tvp as table (c1 time) +GO +if not exists (select name from sys.types where name = 'ebean_uniqueidentifier_tvp') create type ebean_uniqueidentifier_tvp as table (c1 uniqueidentifier) +GO +if not exists (select name from sys.types where name = 'ebean_nvarchar_tvp') create type ebean_nvarchar_tvp as table (c1 nvarchar(max)) +GO + +-- +-- PROCEDURE: usp_ebean_drop_indices TABLE, COLUMN +-- deletes all indices referring to TABLE.COLUMN +-- +CREATE OR ALTER PROCEDURE usp_ebean_drop_indices @tableName nvarchar(255), @columnName nvarchar(255) +AS SET NOCOUNT ON +declare @sql nvarchar(1000) +declare @indexName nvarchar(255) +BEGIN + DECLARE index_cursor CURSOR FOR SELECT i.name from sys.indexes i + join sys.index_columns ic on ic.object_id = i.object_id and ic.index_id = i.index_id + join sys.columns c on c.object_id = ic.object_id and c.column_id = ic.column_id + where i.object_id = OBJECT_ID(@tableName) AND c.name = @columnName; + OPEN index_cursor + FETCH NEXT FROM index_cursor INTO @indexName + WHILE @@FETCH_STATUS = 0 + BEGIN + set @sql = 'drop index ' + @indexName + ' on ' + @tableName; + EXECUTE(@sql); + + FETCH NEXT FROM index_cursor INTO @indexName + END; + CLOSE index_cursor; + DEALLOCATE index_cursor; +END +GO + +-- +-- PROCEDURE: usp_ebean_drop_default_constraint TABLE, COLUMN +-- deletes the default constraint, which has a random name +-- +CREATE OR ALTER PROCEDURE usp_ebean_drop_default_constraint @tableName nvarchar(255), @columnName nvarchar(255) +AS SET NOCOUNT ON +declare @tmp nvarchar(1000) +BEGIN + 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(@tableName) and t2.name = @columnName; + + if @tmp is not null EXEC('alter table ' + @tableName +' drop constraint ' + @tmp); +END +GO + +-- +-- PROCEDURE: usp_ebean_drop_constraints TABLE, COLUMN +-- deletes constraints and foreign keys refering to TABLE.COLUMN +-- +CREATE OR ALTER PROCEDURE usp_ebean_drop_constraints @tableName nvarchar(255), @columnName nvarchar(255) +AS SET NOCOUNT ON +declare @sql nvarchar(1000) +declare @constraintName nvarchar(255) +BEGIN + DECLARE name_cursor CURSOR FOR + SELECT cc.name from sys.check_constraints cc + join sys.columns c on c.object_id = cc.parent_object_id and c.column_id = cc.parent_column_id + where parent_object_id = OBJECT_ID(@tableName) AND c.name = @columnName + UNION SELECT fk.name from sys.foreign_keys fk + join sys.foreign_key_columns fkc on fkc.constraint_object_id = fk.object_id + and fkc.parent_object_id = fk.parent_object_id + join sys.columns c on c.object_id = fkc.parent_object_id and c.column_id = fkc.parent_column_id + where fkc.parent_object_id = OBJECT_ID(@tableName) AND c.name = @columnName; + + OPEN name_cursor + FETCH NEXT FROM name_cursor INTO @constraintName + WHILE @@FETCH_STATUS = 0 + BEGIN + set @sql = 'alter table ' + @tableName + ' drop constraint ' + @constraintName; + EXECUTE(@sql); + + FETCH NEXT FROM name_cursor INTO @constraintName + END; + CLOSE name_cursor; + DEALLOCATE name_cursor; +END +GO + +-- +-- PROCEDURE: usp_ebean_drop_column TABLE, COLUMN +-- deletes the column annd ensures that all indices and constraints are dropped first +-- +CREATE OR ALTER PROCEDURE usp_ebean_drop_column @tableName nvarchar(255), @columnName nvarchar(255) +AS SET NOCOUNT ON +declare @sql nvarchar(1000) +BEGIN + EXEC usp_ebean_drop_indices @tableName, @columnName; + EXEC usp_ebean_drop_default_constraint @tableName, @columnName; + EXEC usp_ebean_drop_constraints @tableName, @columnName; + + set @sql = 'alter table ' + @tableName + ' drop column ' + @columnName; + EXECUTE(@sql); +END +GO diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver/R__order_views_mssql.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver/R__order_views_mssql.sql new file mode 100644 index 000000000..3b90ebb2d --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver/R__order_views_mssql.sql @@ -0,0 +1,10 @@ + + IF EXISTS (SELECT TABLE_NAME FROM INFORMATION_SCHEMA.VIEWS WHERE TABLE_NAME = 'order_agg_vw') + DROP VIEW order_agg_vw; + + create view order_agg_vw as + select d.order_id, sum(d.order_qty * d.unit_price) as order_total, + sum(d.ship_qty * d.unit_price) as ship_total + from o_order_detail d + group by d.order_id; + \ No newline at end of file diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver/idx_sqlserver.migrations b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver/idx_sqlserver.migrations new file mode 100644 index 000000000..f78f12855 --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver/idx_sqlserver.migrations @@ -0,0 +1,8 @@ +-2122378240, I__create_procs.sql +-1048913407, 1.0__initial.sql +615613536, 1.1.sql +-1805601919, 1.2__dropsFor_1.1.sql +-1791137342, 1.3.sql +460536923, 1.4__dropsFor_1.3.sql +1607822082, R__order_views_mssql.sql + diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/yugabyte/1.0__initial.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/yugabyte/1.0__initial.sql new file mode 100644 index 000000000..702b0317d --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/yugabyte/1.0__initial.sql @@ -0,0 +1,327 @@ +-- 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, + constraint pk_migtest_fk_cascade primary key (id) +); + +create table migtest_fk_cascade_one ( + id bigint generated by default as identity not null, + constraint pk_migtest_fk_cascade_one primary key (id) +); + +create table migtest_fk_none ( + id bigint generated by default as identity not null, + one_id bigint, + constraint pk_migtest_fk_none primary key (id) +); + +create table migtest_fk_none_via_join ( + id bigint generated by default as identity not null, + one_id bigint, + constraint pk_migtest_fk_none_via_join primary key (id) +); + +create table migtest_fk_one ( + id bigint generated by default as identity not null, + constraint pk_migtest_fk_one primary key (id) +); + +create table migtest_fk_set_null ( + id bigint generated by default as identity not null, + one_id bigint, + constraint pk_migtest_fk_set_null primary key (id) +); + +create table migtest_e_basic ( + id integer generated by default as identity not null, + status varchar(1), + status2 varchar(1) default 'N' not null, + name varchar(127), + description varchar(127), + some_date timestamptz, + old_boolean boolean default false not null, + old_boolean2 boolean, + eref_id integer, + indextest1 varchar(127), + indextest2 varchar(127), + indextest3 varchar(127), + indextest4 varchar(127), + indextest5 varchar(127), + indextest6 varchar(127), + user_id integer not null, + constraint ck_migtest_e_basic_status check ( status in ('N','A','I')), + constraint ck_migtest_e_basic_status2 check ( status2 in ('N','A','I')), + constraint uq_migtest_e_basic_indextest2 unique (indextest2), + constraint uq_migtest_e_basic_indextest6 unique (indextest6), + constraint pk_migtest_e_basic primary key (id) +); + +create table migtest_e_enum ( + id integer generated by default as identity not null, + test_status varchar(1), + constraint ck_migtest_e_enum_test_status check ( test_status in ('N','A','I')), + constraint pk_migtest_e_enum primary key (id) +); + +create table migtest_e_history ( + id integer generated by default as identity not null, + test_string varchar(255), + constraint pk_migtest_e_history primary key (id) +); + +create table migtest_e_history2 ( + id integer generated by default as identity not null, + test_string varchar(255), + obsolete_string1 varchar(255), + obsolete_string2 varchar(255), + constraint pk_migtest_e_history2 primary key (id) +); + +create table migtest_e_history3 ( + id integer generated by default as identity not null, + test_string varchar(255), + constraint pk_migtest_e_history3 primary key (id) +); + +create table migtest_e_history4 ( + id integer generated by default as identity not null, + test_number integer, + constraint pk_migtest_e_history4 primary key (id) +); + +create table migtest_e_history5 ( + id integer generated by default as identity not null, + test_number integer, + constraint pk_migtest_e_history5 primary key (id) +); + +create table migtest_e_history6 ( + id integer generated by default as identity not null, + test_number1 integer, + test_number2 integer not null, + constraint pk_migtest_e_history6 primary key (id) +); + +create table migtest_e_ref ( + id integer generated by default as identity not null, + name varchar(127) not null, + constraint uq_migtest_e_ref_name unique (name), + constraint pk_migtest_e_ref primary key (id) +); + +create table migtest_e_softdelete ( + id integer generated by default as identity not null, + test_string varchar(255), + 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 if not exists ix_migtest_e_basic_indextest1 on migtest_e_basic (indextest1); +create index if not exists ix_migtest_e_basic_indextest5 on migtest_e_basic (indextest5); +create index ix_migtest_fk_cascade_one_id on 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 restrict; + +create index ix_migtest_fk_set_null_one_id on migtest_fk_set_null (one_id); +alter table migtest_fk_set_null add constraint fk_migtest_fk_set_null_one_id foreign key (one_id) references migtest_fk_one (id) on delete set null on update restrict; + +create index ix_migtest_e_basic_eref_id on migtest_e_basic (eref_id); +alter table migtest_e_basic add constraint fk_migtest_e_basic_eref_id foreign key (eref_id) references migtest_e_ref (id) on delete restrict on update restrict; + +alter table migtest_e_history2 add column sys_period tstzrange not null default tstzrange(current_timestamp, null); +create table migtest_e_history2_history( + id integer, + test_string varchar(255), + obsolete_string1 varchar(255), + obsolete_string2 varchar(255), + sys_period tstzrange +); +create view migtest_e_history2_with_history as select * from migtest_e_history2 union all select * from migtest_e_history2_history; + +alter table migtest_e_history3 add column sys_period tstzrange not null default tstzrange(current_timestamp, null); +create table migtest_e_history3_history( + id integer, + test_string varchar(255), + sys_period tstzrange +); +create view migtest_e_history3_with_history as select * from migtest_e_history3 union all select * from migtest_e_history3_history; + +alter table migtest_e_history4 add column sys_period tstzrange not null default tstzrange(current_timestamp, null); +create table migtest_e_history4_history( + id integer, + test_number integer, + sys_period tstzrange +); +create view migtest_e_history4_with_history as select * from migtest_e_history4 union all select * from migtest_e_history4_history; + +alter table migtest_e_history5 add column sys_period tstzrange not null default tstzrange(current_timestamp, null); +create table migtest_e_history5_history( + id integer, + test_number integer, + sys_period tstzrange +); +create view migtest_e_history5_with_history as select * from migtest_e_history5 union all select * from migtest_e_history5_history; + +alter table migtest_e_history6 add column sys_period tstzrange not null default tstzrange(current_timestamp, null); +create table migtest_e_history6_history( + id integer, + test_number1 integer, + test_number2 integer, + sys_period tstzrange +); +create view migtest_e_history6_with_history as select * from migtest_e_history6 union all select * from migtest_e_history6_history; + +create or replace function migtest_e_history2_history_version() returns trigger as $$ +declare + lowerTs timestamptz; + upperTs timestamptz; +begin + lowerTs = lower(OLD.sys_period); + upperTs = greatest(lowerTs + '1 microsecond',current_timestamp); + if (TG_OP = 'UPDATE') then + insert into migtest_e_history2_history (sys_period,id, test_string, obsolete_string2) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_string, OLD.obsolete_string2); + NEW.sys_period = tstzrange(upperTs,null); + return new; + elsif (TG_OP = 'DELETE') then + insert into migtest_e_history2_history (sys_period,id, test_string, obsolete_string2) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_string, OLD.obsolete_string2); + return old; + end if; +end; +$$ LANGUAGE plpgsql; + +create trigger migtest_e_history2_history_upd + before update or delete on migtest_e_history2 + for each row execute procedure migtest_e_history2_history_version(); + +create or replace function migtest_e_history3_history_version() returns trigger as $$ +declare + lowerTs timestamptz; + upperTs timestamptz; +begin + lowerTs = lower(OLD.sys_period); + upperTs = greatest(lowerTs + '1 microsecond',current_timestamp); + if (TG_OP = 'UPDATE') then + insert into migtest_e_history3_history (sys_period,id, test_string) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_string); + NEW.sys_period = tstzrange(upperTs,null); + return new; + elsif (TG_OP = 'DELETE') then + insert into migtest_e_history3_history (sys_period,id, test_string) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_string); + return old; + end if; +end; +$$ LANGUAGE plpgsql; + +create trigger migtest_e_history3_history_upd + before update or delete on migtest_e_history3 + for each row execute procedure migtest_e_history3_history_version(); + +create or replace function migtest_e_history4_history_version() returns trigger as $$ +declare + lowerTs timestamptz; + upperTs timestamptz; +begin + lowerTs = lower(OLD.sys_period); + upperTs = greatest(lowerTs + '1 microsecond',current_timestamp); + if (TG_OP = 'UPDATE') then + insert into migtest_e_history4_history (sys_period,id, test_number) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_number); + NEW.sys_period = tstzrange(upperTs,null); + return new; + elsif (TG_OP = 'DELETE') then + insert into migtest_e_history4_history (sys_period,id, test_number) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_number); + return old; + end if; +end; +$$ LANGUAGE plpgsql; + +create trigger migtest_e_history4_history_upd + before update or delete on migtest_e_history4 + for each row execute procedure migtest_e_history4_history_version(); + +create or replace function migtest_e_history5_history_version() returns trigger as $$ +declare + lowerTs timestamptz; + upperTs timestamptz; +begin + lowerTs = lower(OLD.sys_period); + upperTs = greatest(lowerTs + '1 microsecond',current_timestamp); + if (TG_OP = 'UPDATE') then + insert into migtest_e_history5_history (sys_period,id, test_number) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_number); + NEW.sys_period = tstzrange(upperTs,null); + return new; + elsif (TG_OP = 'DELETE') then + insert into migtest_e_history5_history (sys_period,id, test_number) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_number); + return old; + end if; +end; +$$ LANGUAGE plpgsql; + +create trigger migtest_e_history5_history_upd + before update or delete on migtest_e_history5 + for each row execute procedure migtest_e_history5_history_version(); + +create or replace function migtest_e_history6_history_version() returns trigger as $$ +declare + lowerTs timestamptz; + upperTs timestamptz; +begin + lowerTs = lower(OLD.sys_period); + upperTs = greatest(lowerTs + '1 microsecond',current_timestamp); + if (TG_OP = 'UPDATE') then + insert into migtest_e_history6_history (sys_period,id, test_number1, test_number2) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_number1, OLD.test_number2); + NEW.sys_period = tstzrange(upperTs,null); + return new; + elsif (TG_OP = 'DELETE') then + insert into migtest_e_history6_history (sys_period,id, test_number1, test_number2) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_number1, OLD.test_number2); + return old; + end if; +end; +$$ LANGUAGE plpgsql; + +create trigger migtest_e_history6_history_upd + before update or delete on migtest_e_history6 + for each row execute procedure migtest_e_history6_history_version(); + diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/yugabyte/1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/yugabyte/1.1.sql new file mode 100644 index 000000000..e4698ca62 --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/yugabyte/1.1.sql @@ -0,0 +1,235 @@ +-- Migrationscripts for ebean unittest +-- drop dependencies +drop view if exists migtest_e_history2_with_history; +drop view if exists migtest_e_history3_with_history; +drop view if exists migtest_e_history4_with_history; +drop view if exists migtest_e_history5_with_history; + +-- apply changes +create table migtest_e_user ( + id integer generated by default as identity not null, + 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; +alter table migtest_fk_none_via_join add constraint fk_migtest_fk_none_via_join_one_id foreign key (one_id) references migtest_fk_one (id) on delete restrict on update restrict; +alter table if exists migtest_fk_set_null drop constraint if exists fk_migtest_fk_set_null_one_id; +alter table migtest_fk_set_null add constraint fk_migtest_fk_set_null_one_id foreign key (one_id) references migtest_fk_one (id) on delete restrict on update restrict; + +update migtest_e_basic set status = 'A' where status is null; +alter table migtest_e_basic drop constraint if exists ck_migtest_e_basic_status; +alter table migtest_e_basic alter column status set default 'A'; +alter table migtest_e_basic alter column status set not null; +alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I','?')); +alter table migtest_e_basic drop constraint if exists ck_migtest_e_basic_status2; +alter table migtest_e_basic alter column status2 type varchar(127) using status2::varchar(127); +alter table migtest_e_basic alter column status2 drop default; +alter table migtest_e_basic alter column status2 drop not null; + +-- rename all collisions; +alter table migtest_e_basic add constraint uq_migtest_e_basic_description unique (description); + +insert into migtest_e_user (id) select distinct user_id from migtest_e_basic; +alter table migtest_e_basic add constraint fk_migtest_e_basic_user_id foreign key (user_id) references migtest_e_user (id) on delete restrict on update restrict; +alter table migtest_e_basic alter column user_id drop not null; +alter table migtest_e_basic add column new_string_field varchar(255) default 'foo''bar' not null; +alter table migtest_e_basic add column new_boolean_field boolean default true not null; +update migtest_e_basic set new_boolean_field = old_boolean; + +alter table migtest_e_basic add column new_boolean_field2 boolean default true not null; +alter table migtest_e_basic add column progress integer default 0 not null; +alter table migtest_e_basic add constraint ck_migtest_e_basic_progress check ( progress in (0,1,2)); +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); +alter table migtest_e_enum drop constraint if exists ck_migtest_e_enum_test_status; +comment on column migtest_e_history.test_string is 'Column altered to long now'; +alter table migtest_e_history alter column test_string type bigint using test_string::bigint; +comment on table migtest_e_history is 'We have history now'; + +-- NOTE: table has @History - special migration may be necessary +update migtest_e_history2 set test_string = 'unknown' where test_string is null; +alter table migtest_e_history2 alter column test_string set default 'unknown'; +alter table migtest_e_history2 alter column test_string set not null; +alter table migtest_e_history2 add column test_string2 varchar(255); +alter table migtest_e_history2 add column test_string3 varchar(255) default 'unknown' not null; +alter table migtest_e_history2 add column new_column varchar(20); +alter table migtest_e_history2_history add column test_string2 varchar(255); +alter table migtest_e_history2_history add column test_string3 varchar(255) default 'unknown'; +alter table migtest_e_history2_history add column new_column varchar(20); + +alter table migtest_e_history4 alter column test_number type bigint using test_number::bigint; +alter table migtest_e_history4_history alter column test_number type bigint using test_number::bigint; +alter table migtest_e_history5 add column test_boolean boolean default false not null; +alter table migtest_e_history5_history add column test_boolean boolean default false; + + +-- NOTE: table has @History - special migration may be necessary +update migtest_e_history6 set test_number1 = 42 where test_number1 is null; +alter table migtest_e_history6 alter column test_number1 set default 42; +alter table migtest_e_history6 alter column test_number1 set not null; +alter table migtest_e_history6 alter column test_number2 drop not null; +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 if not exists ix_migtest_e_basic_indextest3 on migtest_e_basic (indextest3); +create index if not exists 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_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_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_m on migtest_mtm_c_migtest_mtm_m (migtest_mtm_m_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_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_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_c on migtest_mtm_m_migtest_mtm_c (migtest_mtm_c_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_ckey_parent_assoc_id on migtest_ckey_parent (assoc_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; + +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( + id integer, + test_string bigint, + sys_period tstzrange +); +create view migtest_e_history_with_history as select * from migtest_e_history union all select * from migtest_e_history_history; + +create view migtest_e_history2_with_history as select * from migtest_e_history2 union all select * from migtest_e_history2_history; + +create view migtest_e_history3_with_history as select * from migtest_e_history3 union all select * from migtest_e_history3_history; + +create view migtest_e_history4_with_history as select * from migtest_e_history4 union all select * from migtest_e_history4_history; + +create view migtest_e_history5_with_history as select * from migtest_e_history5 union all select * from migtest_e_history5_history; + +create or replace function migtest_e_history_history_version() returns trigger as $$ +declare + lowerTs timestamptz; + upperTs timestamptz; +begin + lowerTs = lower(OLD.sys_period); + upperTs = greatest(lowerTs + '1 microsecond',current_timestamp); + if (TG_OP = 'UPDATE') then + insert into migtest_e_history_history (sys_period,id, test_string) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_string); + NEW.sys_period = tstzrange(upperTs,null); + return new; + elsif (TG_OP = 'DELETE') then + insert into migtest_e_history_history (sys_period,id, test_string) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_string); + return old; + end if; +end; +$$ LANGUAGE plpgsql; + +create trigger migtest_e_history_history_upd + before update or delete on migtest_e_history + for each row execute procedure migtest_e_history_history_version(); + +-- changes: [add test_string2, add test_string3, add new_column] +create or replace function migtest_e_history2_history_version() returns trigger as $$ +declare + lowerTs timestamptz; + upperTs timestamptz; +begin + lowerTs = lower(OLD.sys_period); + upperTs = greatest(lowerTs + '1 microsecond',current_timestamp); + if (TG_OP = 'UPDATE') then + insert into migtest_e_history2_history (sys_period,id, test_string, test_string3, new_column, obsolete_string1, obsolete_string2) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_string, OLD.test_string3, OLD.new_column, OLD.obsolete_string1, OLD.obsolete_string2); + NEW.sys_period = tstzrange(upperTs,null); + return new; + elsif (TG_OP = 'DELETE') then + insert into migtest_e_history2_history (sys_period,id, test_string, test_string3, new_column, obsolete_string1, obsolete_string2) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_string, OLD.test_string3, OLD.new_column, OLD.obsolete_string1, OLD.obsolete_string2); + return old; + end if; +end; +$$ LANGUAGE plpgsql; + +-- changes: [exclude test_string] +create or replace function migtest_e_history3_history_version() returns trigger as $$ +declare + lowerTs timestamptz; + upperTs timestamptz; +begin + lowerTs = lower(OLD.sys_period); + upperTs = greatest(lowerTs + '1 microsecond',current_timestamp); + if (TG_OP = 'UPDATE') then + insert into migtest_e_history3_history (sys_period,id) values (tstzrange(lowerTs,upperTs), OLD.id); + NEW.sys_period = tstzrange(upperTs,null); + return new; + elsif (TG_OP = 'DELETE') then + insert into migtest_e_history3_history (sys_period,id) values (tstzrange(lowerTs,upperTs), OLD.id); + return old; + end if; +end; +$$ LANGUAGE plpgsql; + +-- changes: [alter test_number] +create or replace function migtest_e_history4_history_version() returns trigger as $$ +declare + lowerTs timestamptz; + upperTs timestamptz; +begin + lowerTs = lower(OLD.sys_period); + upperTs = greatest(lowerTs + '1 microsecond',current_timestamp); + if (TG_OP = 'UPDATE') then + insert into migtest_e_history4_history (sys_period,id, test_number) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_number); + NEW.sys_period = tstzrange(upperTs,null); + return new; + elsif (TG_OP = 'DELETE') then + insert into migtest_e_history4_history (sys_period,id, test_number) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_number); + return old; + end if; +end; +$$ LANGUAGE plpgsql; + +-- changes: [add test_boolean] +create or replace function migtest_e_history5_history_version() returns trigger as $$ +declare + lowerTs timestamptz; + upperTs timestamptz; +begin + lowerTs = lower(OLD.sys_period); + upperTs = greatest(lowerTs + '1 microsecond',current_timestamp); + if (TG_OP = 'UPDATE') then + insert into migtest_e_history5_history (sys_period,id, test_number, test_boolean) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_number, OLD.test_boolean); + NEW.sys_period = tstzrange(upperTs,null); + return new; + elsif (TG_OP = 'DELETE') then + insert into migtest_e_history5_history (sys_period,id, test_number, test_boolean) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_number, OLD.test_boolean); + return old; + end if; +end; +$$ LANGUAGE plpgsql; + diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/yugabyte/1.2__dropsFor_1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/yugabyte/1.2__dropsFor_1.1.sql new file mode 100644 index 000000000..c9a6d03e6 --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/yugabyte/1.2__dropsFor_1.1.sql @@ -0,0 +1,40 @@ +-- Migrationscripts for ebean unittest +-- drop dependencies +drop view if exists migtest_e_history2_with_history; + +-- apply changes +alter table migtest_e_basic drop column old_boolean; + +alter table migtest_e_basic drop column old_boolean2; + +alter table migtest_e_basic drop column eref_id; + +alter table migtest_e_history2 drop column obsolete_string1; +alter table migtest_e_history2_history drop column obsolete_string1; + +alter table migtest_e_history2 drop column obsolete_string2; +alter table migtest_e_history2_history drop column obsolete_string2; + +drop table if exists migtest_e_ref cascade; +drop sequence if exists migtest_e_ref_seq; +create view migtest_e_history2_with_history as select * from migtest_e_history2 union all select * from migtest_e_history2_history; + +-- changes: [drop obsolete_string1, drop obsolete_string2] +create or replace function migtest_e_history2_history_version() returns trigger as $$ +declare + lowerTs timestamptz; + upperTs timestamptz; +begin + lowerTs = lower(OLD.sys_period); + upperTs = greatest(lowerTs + '1 microsecond',current_timestamp); + if (TG_OP = 'UPDATE') then + insert into migtest_e_history2_history (sys_period,id, test_string, test_string3, new_column) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_string, OLD.test_string3, OLD.new_column); + NEW.sys_period = tstzrange(upperTs,null); + return new; + elsif (TG_OP = 'DELETE') then + insert into migtest_e_history2_history (sys_period,id, test_string, test_string3, new_column) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_string, OLD.test_string3, OLD.new_column); + return old; + end if; +end; +$$ LANGUAGE plpgsql; + diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/yugabyte/1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/yugabyte/1.3.sql new file mode 100644 index 000000000..d0e444fc4 --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/yugabyte/1.3.sql @@ -0,0 +1,138 @@ +-- Migrationscripts for ebean unittest +-- drop dependencies +drop view if exists migtest_e_history2_with_history; +drop view if exists migtest_e_history3_with_history; +drop view if exists migtest_e_history4_with_history; + +-- apply changes +create table migtest_e_ref ( + id integer generated by default as identity 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 restrict; +alter table if exists migtest_fk_none drop constraint if exists fk_migtest_fk_none_one_id; +alter table if exists migtest_fk_none_via_join drop constraint if exists fk_migtest_fk_none_via_join_one_id; +alter table if exists migtest_fk_set_null drop constraint if exists fk_migtest_fk_set_null_one_id; +alter table migtest_fk_set_null add constraint fk_migtest_fk_set_null_one_id foreign key (one_id) references migtest_fk_one (id) on delete set null on update restrict; +alter table migtest_e_basic drop constraint if exists ck_migtest_e_basic_status; +alter table migtest_e_basic alter column status drop default; +alter table migtest_e_basic alter column status drop not null; +alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I')); + +update migtest_e_basic set status2 = 'N' where status2 is null; +alter table migtest_e_basic drop constraint if exists ck_migtest_e_basic_status2; +alter table migtest_e_basic alter column status2 type varchar(1) using status2::varchar(1); +alter table migtest_e_basic alter column status2 set default 'N'; +alter table migtest_e_basic alter column status2 set not null; +alter table migtest_e_basic add constraint ck_migtest_e_basic_status2 check ( status2 in ('N','A','I')); +alter table migtest_e_basic drop constraint uq_migtest_e_basic_description; + +update migtest_e_basic set user_id = 23 where user_id is null; +alter table if exists migtest_e_basic drop constraint if exists fk_migtest_e_basic_user_id; +alter table migtest_e_basic alter column user_id set default 23; +alter table migtest_e_basic alter column user_id set not null; +alter table migtest_e_basic add column old_boolean boolean default false not null; +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; +alter table migtest_e_basic add constraint uq_migtest_e_basic_indextest2 unique (indextest2); +alter table migtest_e_basic add constraint uq_migtest_e_basic_indextest6 unique (indextest6); +alter table migtest_e_enum drop constraint if exists ck_migtest_e_enum_test_status; +alter table migtest_e_enum add constraint ck_migtest_e_enum_test_status check ( test_status in ('N','A','I')); +comment on column migtest_e_history.test_string is ''; +comment on table migtest_e_history is ''; +alter table migtest_e_history2 alter column test_string drop default; +alter table migtest_e_history2 alter column test_string drop not null; +alter table migtest_e_history2 add column obsolete_string1 varchar(255); +alter table migtest_e_history2 add column obsolete_string2 varchar(255); +alter table migtest_e_history2_history add column obsolete_string1 varchar(255); +alter table migtest_e_history2_history add column obsolete_string2 varchar(255); + +alter table migtest_e_history4 alter column test_number type integer using test_number::integer; +alter table migtest_e_history4_history alter column test_number type integer using test_number::integer; +alter table migtest_e_history6 alter column test_number1 drop default; +alter table migtest_e_history6 alter column test_number1 drop not null; + +-- NOTE: table has @History - special migration may be necessary +update migtest_e_history6 set test_number2 = 7 where test_number2 is null; +alter table migtest_e_history6 alter column test_number2 set default 7; +alter table migtest_e_history6 alter column test_number2 set not null; +create index if not exists ix_migtest_e_basic_indextest1 on migtest_e_basic (indextest1); +create index if not exists ix_migtest_e_basic_indextest5 on migtest_e_basic (indextest5); +drop index if exists ix_migtest_e_basic_indextest3; +drop index if exists ix_migtest_e_basic_indextest6; +create index ix_migtest_e_basic_eref_id on migtest_e_basic (eref_id); +alter table migtest_e_basic add constraint fk_migtest_e_basic_eref_id foreign key (eref_id) references migtest_e_ref (id) on delete restrict on update restrict; + +create view migtest_e_history2_with_history as select * from migtest_e_history2 union all select * from migtest_e_history2_history; + +create view migtest_e_history3_with_history as select * from migtest_e_history3 union all select * from migtest_e_history3_history; + +create view migtest_e_history4_with_history as select * from migtest_e_history4 union all select * from migtest_e_history4_history; + +-- changes: [add obsolete_string1, add obsolete_string2] +create or replace function migtest_e_history2_history_version() returns trigger as $$ +declare + lowerTs timestamptz; + upperTs timestamptz; +begin + lowerTs = lower(OLD.sys_period); + upperTs = greatest(lowerTs + '1 microsecond',current_timestamp); + if (TG_OP = 'UPDATE') then + insert into migtest_e_history2_history (sys_period,id, test_string, obsolete_string2, test_string2, test_string3, new_column) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_string, OLD.obsolete_string2, OLD.test_string2, OLD.test_string3, OLD.new_column); + NEW.sys_period = tstzrange(upperTs,null); + return new; + elsif (TG_OP = 'DELETE') then + insert into migtest_e_history2_history (sys_period,id, test_string, obsolete_string2, test_string2, test_string3, new_column) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_string, OLD.obsolete_string2, OLD.test_string2, OLD.test_string3, OLD.new_column); + return old; + end if; +end; +$$ LANGUAGE plpgsql; + +-- changes: [include test_string] +create or replace function migtest_e_history3_history_version() returns trigger as $$ +declare + lowerTs timestamptz; + upperTs timestamptz; +begin + lowerTs = lower(OLD.sys_period); + upperTs = greatest(lowerTs + '1 microsecond',current_timestamp); + if (TG_OP = 'UPDATE') then + insert into migtest_e_history3_history (sys_period,id, test_string) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_string); + NEW.sys_period = tstzrange(upperTs,null); + return new; + elsif (TG_OP = 'DELETE') then + insert into migtest_e_history3_history (sys_period,id, test_string) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_string); + return old; + end if; +end; +$$ LANGUAGE plpgsql; + +-- changes: [alter test_number] +create or replace function migtest_e_history4_history_version() returns trigger as $$ +declare + lowerTs timestamptz; + upperTs timestamptz; +begin + lowerTs = lower(OLD.sys_period); + upperTs = greatest(lowerTs + '1 microsecond',current_timestamp); + if (TG_OP = 'UPDATE') then + insert into migtest_e_history4_history (sys_period,id, test_number) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_number); + NEW.sys_period = tstzrange(upperTs,null); + return new; + elsif (TG_OP = 'DELETE') then + insert into migtest_e_history4_history (sys_period,id, test_number) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_number); + return old; + end if; +end; +$$ LANGUAGE plpgsql; + diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/yugabyte/1.4__dropsFor_1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/yugabyte/1.4__dropsFor_1.3.sql new file mode 100644 index 000000000..748ee959b --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/yugabyte/1.4__dropsFor_1.3.sql @@ -0,0 +1,91 @@ +-- Migrationscripts for ebean unittest +-- drop dependencies +drop trigger if exists migtest_e_history_history_upd on migtest_e_history cascade; +drop function if exists migtest_e_history_history_version(); + +drop view migtest_e_history_with_history; +alter table migtest_e_history drop column sys_period; +drop table migtest_e_history_history; + +drop view if exists migtest_e_history2_with_history; +drop view if exists migtest_e_history5_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; + +alter table migtest_e_basic drop column new_boolean_field2; + +alter table migtest_e_basic drop column progress; + +alter table migtest_e_basic drop column new_integer; + +alter table migtest_e_history2 drop column test_string2; +alter table migtest_e_history2_history drop column test_string2; + +alter table migtest_e_history2 drop column test_string3; +alter table migtest_e_history2_history drop column test_string3; + +alter table migtest_e_history2 drop column new_column; +alter table migtest_e_history2_history drop column new_column; + +alter table migtest_e_history5 drop column test_boolean; +alter table migtest_e_history5_history drop column test_boolean; + +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; +create view migtest_e_history2_with_history as select * from migtest_e_history2 union all select * from migtest_e_history2_history; + +create view migtest_e_history5_with_history as select * from migtest_e_history5 union all select * from migtest_e_history5_history; + +-- changes: [drop test_string2, drop test_string3, drop new_column] +create or replace function migtest_e_history2_history_version() returns trigger as $$ +declare + lowerTs timestamptz; + upperTs timestamptz; +begin + lowerTs = lower(OLD.sys_period); + upperTs = greatest(lowerTs + '1 microsecond',current_timestamp); + if (TG_OP = 'UPDATE') then + insert into migtest_e_history2_history (sys_period,id, test_string, obsolete_string2) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_string, OLD.obsolete_string2); + NEW.sys_period = tstzrange(upperTs,null); + return new; + elsif (TG_OP = 'DELETE') then + insert into migtest_e_history2_history (sys_period,id, test_string, obsolete_string2) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_string, OLD.obsolete_string2); + return old; + end if; +end; +$$ LANGUAGE plpgsql; + +-- changes: [drop test_boolean] +create or replace function migtest_e_history5_history_version() returns trigger as $$ +declare + lowerTs timestamptz; + upperTs timestamptz; +begin + lowerTs = lower(OLD.sys_period); + upperTs = greatest(lowerTs + '1 microsecond',current_timestamp); + if (TG_OP = 'UPDATE') then + insert into migtest_e_history5_history (sys_period,id, test_number) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_number); + NEW.sys_period = tstzrange(upperTs,null); + return new; + elsif (TG_OP = 'DELETE') then + insert into migtest_e_history5_history (sys_period,id, test_number) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_number); + return old; + end if; +end; +$$ LANGUAGE plpgsql; + diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/yugabyte/R__order_views.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/yugabyte/R__order_views.sql new file mode 100644 index 000000000..ccf30a2c6 --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/yugabyte/R__order_views.sql @@ -0,0 +1,7 @@ + + create or replace view order_agg_vw as + select d.order_id, sum(d.order_qty * d.unit_price) as order_total, + sum(d.ship_qty * d.unit_price) as ship_total + from o_order_detail d + group by d.order_id + \ No newline at end of file diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/yugabyte/idx_yugabyte.migrations b/ebean-test/src/test/resources/migrationtest/dbmigration/yugabyte/idx_yugabyte.migrations new file mode 100644 index 000000000..c1d90b411 --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/yugabyte/idx_yugabyte.migrations @@ -0,0 +1,7 @@ +-1449071956, 1.0__initial.sql +1483502951, 1.1.sql +-1861367028, 1.2__dropsFor_1.1.sql +2034977550, 1.3.sql +1959776888, 1.4__dropsFor_1.3.sql +561281075, R__order_views.sql + From cb89b903fd63e4026caf94757e882751330a3fcf Mon Sep 17 00:00:00 2001 From: Roland Praml Date: Mon, 7 Feb 2022 14:07:10 +0100 Subject: [PATCH 2/6] Regenerated scripts & tests --- .../dbmigration/DefaultDbMigration.java | 3 + .../dbmigration/builtin-extra-ddl.xml | 2 +- .../dbmigration/LastMigrationTest.java | 14 - .../migrationtest/db2/1.0__initial.sql | 174 ---------- .../dbmigration/migrationtest/db2/1.1.sql | 110 ------- .../migrationtest/db2/1.2__dropsFor_1.1.sql | 14 - .../dbmigration/migrationtest/db2/1.3.sql | 67 ---- .../migrationtest/db2/1.4__dropsFor_1.3.sql | 34 -- .../migrationtest/db2/idx_db2.migrations | 6 - .../migrationtest/h2/1.0__initial.sql | 232 ------------- .../dbmigration/migrationtest/h2/1.1.sql | 152 --------- .../migrationtest/h2/1.2__dropsFor_1.1.sql | 24 -- .../dbmigration/migrationtest/h2/1.3.sql | 90 ----- .../migrationtest/h2/1.4__dropsFor_1.3.sql | 58 ---- .../migrationtest/h2/idx_h2.migrations | 6 - .../migrationtest/hana/1.0__initial.sql | 237 -------------- .../dbmigration/migrationtest/hana/1.1.sql | 181 ----------- .../migrationtest/hana/1.2__dropsFor_1.1.sql | 19 -- .../dbmigration/migrationtest/hana/1.3.sql | 141 -------- .../migrationtest/hana/1.4__dropsFor_1.3.sql | 51 --- .../migrationtest/hana/idx_hana.migrations | 6 - .../dbmigration/migrationtest/hsqldb/1.3.sql | 67 ---- .../hsqldb/idx_hsqldb.migrations | 6 - .../model/1.0__initial.model.xml | 122 ------- .../migrationtest/model/1.1.model.xml | 104 ------ .../model/1.2__dropsFor_1.1.model.xml | 11 - .../migrationtest/model/1.3.model.xml | 73 ----- .../model/1.4__dropsFor_1.3.model.xml | 23 -- .../migrationtest/mysql/1.0__initial.sql | 269 --------------- .../dbmigration/migrationtest/mysql/1.1.sql | 191 ----------- .../migrationtest/mysql/1.2__dropsFor_1.1.sql | 34 -- .../migrationtest/mysql/1.4__dropsFor_1.3.sql | 78 ----- .../migrationtest/mysql/idx_mysql.migrations | 6 - .../migrationtest/mysql55/1.0__initial.sql | 269 --------------- .../dbmigration/migrationtest/mysql55/1.1.sql | 191 ----------- .../mysql55/1.2__dropsFor_1.1.sql | 34 -- .../dbmigration/migrationtest/mysql55/1.3.sql | 115 ------- .../mysql55/1.4__dropsFor_1.3.sql | 78 ----- .../mysql55/idx_mysql.migrations | 6 - .../migrationtest/oracle/1.0__initial.sql | 174 ---------- .../dbmigration/migrationtest/oracle/1.1.sql | 110 ------- .../oracle/1.2__dropsFor_1.1.sql | 14 - .../dbmigration/migrationtest/oracle/1.3.sql | 67 ---- .../oracle/1.4__dropsFor_1.3.sql | 34 -- .../oracle/idx_oracle.migrations | 6 - .../migrationtest/postgres/1.0__initial.sql | 307 ------------------ .../migrationtest/postgres/1.1.sql | 237 -------------- .../postgres/1.2__dropsFor_1.1.sql | 40 --- .../migrationtest/postgres/1.3.sql | 141 -------- .../postgres/1.4__dropsFor_1.3.sql | 91 ------ .../postgres/idx_postgres.migrations | 6 - .../migrationtest/sqlite/1.0__initial.sql | 168 ---------- .../dbmigration/migrationtest/sqlite/1.1.sql | 92 ------ .../sqlite/1.2__dropsFor_1.1.sql | 13 - .../dbmigration/migrationtest/sqlite/1.3.sql | 62 ---- .../sqlite/1.4__dropsFor_1.3.sql | 33 -- .../sqlite/idx_sqlite.migrations | 6 - .../sqlserver17/1.0__initial.sql | 221 ------------- .../migrationtest/sqlserver17/1.1.sql | 118 ------- .../sqlserver17/1.2__dropsFor_1.1.sql | 14 - .../migrationtest/sqlserver17/1.3.sql | 73 ----- .../sqlserver17/1.4__dropsFor_1.3.sql | 43 --- .../sqlserver17/I__create_procs.sql | 110 ------- .../sqlserver17/idx_sqlserver.migrations | 7 - .../DbMigrationDropHistoryTest.java | 11 +- .../dbmigration/DbMigrationGenerateTest.java | 48 +-- .../dbmigration/DbMigrationTest.java | 58 ++-- .../MysqlGenerateMigrationTest.java | 85 ----- .../misc/migration/mysql_v1_0/EBasic.java | 89 ----- .../misc/migration/mysql_v1_1/EBasic.java | 64 ---- .../test/java/misc/migration/v1_1/EBasic.java | 3 +- .../java/misc/migration/v1_1/EHistory2.java | 9 + .../java/misc/migration/v1_1/MtmMaster.java | 4 + .../migrationtest-history/1.0__initial.sql | 17 - .../1.2__dropsFor_1.1.sql | 10 - .../model/1.0__initial.model.xml | 8 - .../migrationtest-history/model/1.1.model.xml | 6 - .../model/1.2__dropsFor_1.1.model.xml | 6 - .../src/test/resources/ebean.properties | 8 +- .../dbmigration}/1.0__initial.sql | 0 .../dbmigration}/1.2__dropsFor_1.1.sql | 0 .../dbmigration}/R__multi_comments.sql | 0 .../dbmigration}/R__order_views.sql | 0 .../dbmigration}/model/1.0__initial.model.xml | 0 .../dbmigration}/model/1.1.model.xml | 0 .../model/1.2__dropsFor_1.1.model.xml | 0 .../mariadb-noprocs}/1.0__initial.sql | 58 ++-- .../dbmigration/mariadb-noprocs}/1.1.sql | 58 ++-- .../mariadb-noprocs}/1.2__dropsFor_1.1.sql | 0 .../dbmigration/mariadb-noprocs}/1.3.sql | 56 +--- .../mariadb-noprocs}/1.4__dropsFor_1.3.sql | 1 + .../mariadb-noprocs/R__order_views.sql | 7 + .../mariadb-noprocs/idx_mariadb.migrations | 7 + .../dbmigration/mariadb/1.2__dropsFor_1.1.sql | 10 +- .../dbmigration/mariadb/1.4__dropsFor_1.3.sql | 28 +- .../dbmigration/mariadb/I__create_procs.sql | 48 +++ .../mariadb/idx_mariadb.migrations | 5 +- .../dbmigration/mysql/1.2__dropsFor_1.1.sql | 14 +- .../dbmigration/mysql/1.4__dropsFor_1.3.sql | 40 +-- .../dbmigration/mysql/I__create_procs.sql | 48 +++ .../dbmigration/mysql/idx_mysql.migrations | 5 +- 101 files changed, 315 insertions(+), 5981 deletions(-) delete mode 100644 ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/db2/1.0__initial.sql delete mode 100644 ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/db2/1.1.sql delete mode 100644 ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/db2/1.2__dropsFor_1.1.sql delete mode 100644 ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/db2/1.3.sql delete mode 100644 ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/db2/1.4__dropsFor_1.3.sql delete mode 100644 ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/db2/idx_db2.migrations delete mode 100644 ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/h2/1.0__initial.sql delete mode 100644 ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/h2/1.1.sql delete mode 100644 ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/h2/1.2__dropsFor_1.1.sql delete mode 100644 ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/h2/1.3.sql delete mode 100644 ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/h2/1.4__dropsFor_1.3.sql delete mode 100644 ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/h2/idx_h2.migrations delete mode 100644 ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/hana/1.0__initial.sql delete mode 100644 ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/hana/1.1.sql delete mode 100644 ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/hana/1.2__dropsFor_1.1.sql delete mode 100644 ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/hana/1.3.sql delete mode 100644 ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/hana/1.4__dropsFor_1.3.sql delete mode 100644 ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/hana/idx_hana.migrations delete mode 100644 ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/hsqldb/1.3.sql delete mode 100644 ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/hsqldb/idx_hsqldb.migrations delete mode 100644 ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/model/1.0__initial.model.xml delete mode 100644 ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/model/1.1.model.xml delete mode 100644 ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/model/1.2__dropsFor_1.1.model.xml delete mode 100644 ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/model/1.3.model.xml delete mode 100644 ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/model/1.4__dropsFor_1.3.model.xml delete mode 100644 ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/mysql/1.0__initial.sql delete mode 100644 ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/mysql/1.1.sql delete mode 100644 ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/mysql/1.2__dropsFor_1.1.sql delete mode 100644 ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/mysql/1.4__dropsFor_1.3.sql delete mode 100644 ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/mysql/idx_mysql.migrations delete mode 100644 ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/mysql55/1.0__initial.sql delete mode 100644 ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/mysql55/1.1.sql delete mode 100644 ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/mysql55/1.2__dropsFor_1.1.sql delete mode 100644 ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/mysql55/1.3.sql delete mode 100644 ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/mysql55/1.4__dropsFor_1.3.sql delete mode 100644 ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/mysql55/idx_mysql.migrations delete mode 100644 ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/oracle/1.0__initial.sql delete mode 100644 ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/oracle/1.1.sql delete mode 100644 ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/oracle/1.2__dropsFor_1.1.sql delete mode 100644 ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/oracle/1.3.sql delete mode 100644 ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/oracle/1.4__dropsFor_1.3.sql delete mode 100644 ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/oracle/idx_oracle.migrations delete mode 100644 ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/postgres/1.0__initial.sql delete mode 100644 ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/postgres/1.1.sql delete mode 100644 ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/postgres/1.2__dropsFor_1.1.sql delete mode 100644 ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/postgres/1.3.sql delete mode 100644 ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/postgres/1.4__dropsFor_1.3.sql delete mode 100644 ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/postgres/idx_postgres.migrations delete mode 100644 ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/sqlite/1.0__initial.sql delete mode 100644 ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/sqlite/1.1.sql delete mode 100644 ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/sqlite/1.2__dropsFor_1.1.sql delete mode 100644 ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/sqlite/1.3.sql delete mode 100644 ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/sqlite/1.4__dropsFor_1.3.sql delete mode 100644 ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/sqlite/idx_sqlite.migrations delete mode 100644 ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/sqlserver17/1.0__initial.sql delete mode 100644 ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/sqlserver17/1.1.sql delete mode 100644 ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/sqlserver17/1.2__dropsFor_1.1.sql delete mode 100644 ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/sqlserver17/1.3.sql delete mode 100644 ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/sqlserver17/1.4__dropsFor_1.3.sql delete mode 100644 ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/sqlserver17/I__create_procs.sql delete mode 100644 ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/sqlserver17/idx_sqlserver.migrations delete mode 100644 ebean-test/src/test/java/io/ebeaninternal/dbmigration/MysqlGenerateMigrationTest.java delete mode 100644 ebean-test/src/test/java/misc/migration/mysql_v1_0/EBasic.java delete mode 100644 ebean-test/src/test/java/misc/migration/mysql_v1_1/EBasic.java delete mode 100644 ebean-test/src/test/resources/dbmigration/migrationtest-history/1.0__initial.sql delete mode 100644 ebean-test/src/test/resources/dbmigration/migrationtest-history/1.2__dropsFor_1.1.sql delete mode 100644 ebean-test/src/test/resources/dbmigration/migrationtest-history/model/1.0__initial.model.xml delete mode 100644 ebean-test/src/test/resources/dbmigration/migrationtest-history/model/1.1.model.xml delete mode 100644 ebean-test/src/test/resources/dbmigration/migrationtest-history/model/1.2__dropsFor_1.1.model.xml rename {ebean-ddl-generator/src/test/resources/dbmigration/migrationtest-history => ebean-test/src/test/resources/migrationtest-history/dbmigration}/1.0__initial.sql (100%) rename {ebean-ddl-generator/src/test/resources/dbmigration/migrationtest-history => ebean-test/src/test/resources/migrationtest-history/dbmigration}/1.2__dropsFor_1.1.sql (100%) rename ebean-test/src/test/resources/{dbmigration/migrationtest-history => migrationtest-history/dbmigration}/R__multi_comments.sql (100%) rename ebean-test/src/test/resources/{dbmigration/migrationtest-history => migrationtest-history/dbmigration}/R__order_views.sql (100%) rename {ebean-ddl-generator/src/test/resources/dbmigration/migrationtest-history => ebean-test/src/test/resources/migrationtest-history/dbmigration}/model/1.0__initial.model.xml (100%) rename {ebean-ddl-generator/src/test/resources/dbmigration/migrationtest-history => ebean-test/src/test/resources/migrationtest-history/dbmigration}/model/1.1.model.xml (100%) rename {ebean-ddl-generator/src/test/resources/dbmigration/migrationtest-history => ebean-test/src/test/resources/migrationtest-history/dbmigration}/model/1.2__dropsFor_1.1.model.xml (100%) rename {ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/hsqldb => ebean-test/src/test/resources/migrationtest/dbmigration/mariadb-noprocs}/1.0__initial.sql (65%) rename {ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/hsqldb => ebean-test/src/test/resources/migrationtest/dbmigration/mariadb-noprocs}/1.1.sql (69%) rename {ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/hsqldb => ebean-test/src/test/resources/migrationtest/dbmigration/mariadb-noprocs}/1.2__dropsFor_1.1.sql (100%) rename {ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/mysql => ebean-test/src/test/resources/migrationtest/dbmigration/mariadb-noprocs}/1.3.sql (50%) rename {ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/hsqldb => ebean-test/src/test/resources/migrationtest/dbmigration/mariadb-noprocs}/1.4__dropsFor_1.3.sql (94%) create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/mariadb-noprocs/R__order_views.sql create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/mariadb-noprocs/idx_mariadb.migrations create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/mariadb/I__create_procs.sql create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/mysql/I__create_procs.sql diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/DefaultDbMigration.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/DefaultDbMigration.java index cdfa5a528..1d7f9e562 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/DefaultDbMigration.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/DefaultDbMigration.java @@ -43,6 +43,7 @@ import io.ebean.config.dbplatform.sqlanywhere.SqlAnywherePlatform; import io.ebean.config.dbplatform.sqlite.SQLitePlatform; import io.ebean.config.dbplatform.sqlserver.SqlServer16Platform; import io.ebean.config.dbplatform.sqlserver.SqlServer17Platform; +import io.ebean.config.dbplatform.yugabyte.YugabytePlaform; import io.ebean.dbmigration.DbMigration; import io.ebean.util.IOUtils; import io.ebean.util.StringHelper; @@ -815,6 +816,8 @@ public class DefaultDbMigration implements DbMigration { return new Postgres9Platform(); case POSTGRES: return new PostgresPlatform(); + case YUGABYTE: + return new YugabytePlaform(); case MARIADB: return new MariaDbPlatform(); case MYSQL55: diff --git a/ebean-ddl-generator/src/main/resources/io/ebeaninternal/dbmigration/builtin-extra-ddl.xml b/ebean-ddl-generator/src/main/resources/io/ebeaninternal/dbmigration/builtin-extra-ddl.xml index 402c51f94..1212f1f4c 100644 --- a/ebean-ddl-generator/src/main/resources/io/ebeaninternal/dbmigration/builtin-extra-ddl.xml +++ b/ebean-ddl-generator/src/main/resources/io/ebeaninternal/dbmigration/builtin-extra-ddl.xml @@ -112,7 +112,7 @@ BEGIN END GO --- Inital script to create stored procedures etc for mysql platform +-- Inital script to create stored procedures etc for mysql platform DROP PROCEDURE IF EXISTS usp_ebean_drop_foreign_keys; delimiter $$ diff --git a/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/LastMigrationTest.java b/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/LastMigrationTest.java index 3571b21cc..68ac3d120 100644 --- a/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/LastMigrationTest.java +++ b/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/LastMigrationTest.java @@ -8,20 +8,6 @@ import static org.assertj.core.api.Assertions.assertThat; public class LastMigrationTest { - @Test - public void lastVersion() { - File d = new File("src/test/resources/dbmigration/migrationtest/h2"); - assertThat(LastMigration.lastVersion(d, null)).isEqualTo("1.4"); - assertThat(LastMigration.nextVersion(d, null, false)).isEqualTo("1.5"); - assertThat(LastMigration.nextVersion(d, null, true)).isEqualTo("1.4"); - } - - @Test - public void lastVersion_no_v_Prefix() { - File d = new File("src/test/resources/dbmigration/migrationtest-history"); - assertThat(LastMigration.lastVersion(d, null)).isEqualTo("1.2"); - } - @Test public void lastVersion_test() { File d = new File("src/test/resources/test-dbmigration"); diff --git a/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/db2/1.0__initial.sql b/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/db2/1.0__initial.sql deleted file mode 100644 index 049e2affc..000000000 --- a/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/db2/1.0__initial.sql +++ /dev/null @@ -1,174 +0,0 @@ --- 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, - constraint pk_migtest_fk_cascade primary key (id) -); - -create table migtest_fk_cascade_one ( - id bigint generated by default as identity not null, - constraint pk_migtest_fk_cascade_one primary key (id) -); - -create table migtest_fk_none ( - id bigint generated by default as identity not null, - one_id bigint, - constraint pk_migtest_fk_none primary key (id) -); - -create table migtest_fk_none_via_join ( - id bigint generated by default as identity not null, - one_id bigint, - constraint pk_migtest_fk_none_via_join primary key (id) -); - -create table migtest_fk_one ( - id bigint generated by default as identity not null, - constraint pk_migtest_fk_one primary key (id) -); - -create table migtest_fk_set_null ( - id bigint generated by default as identity not null, - one_id bigint, - constraint pk_migtest_fk_set_null primary key (id) -); - -create table migtest_e_basic ( - id integer generated by default as identity not null, - status varchar(1), - status2 varchar(1) default 'N' not null, - name varchar(127), - description varchar(127), - some_date timestamp, - old_boolean boolean default false not null, - old_boolean2 boolean, - eref_id integer, - indextest1 varchar(127), - indextest2 varchar(127), - indextest3 varchar(127), - indextest4 varchar(127), - indextest5 varchar(127), - indextest6 varchar(127), - user_id integer not null, - constraint ck_mgtst__bsc_stts check ( status in ('N','A','I')), - constraint ck_mgtst__b_z543fg check ( status2 in ('N','A','I')), - constraint pk_migtest_e_basic primary key (id) -); -create unique index uq_migtest_e_basic_indextest2 on migtest_e_basic(indextest2) exclude null keys; -create unique index uq_migtest_e_basic_indextest6 on migtest_e_basic(indextest6) exclude null keys; - -create table migtest_e_enum ( - id integer generated by default as identity not null, - test_status varchar(1), - constraint ck_mgtst__n_773sok check ( test_status in ('N','A','I')), - constraint pk_migtest_e_enum primary key (id) -); - -create table migtest_e_history ( - id integer generated by default as identity not null, - test_string varchar(255), - constraint pk_migtest_e_history primary key (id) -); - -create table migtest_e_history2 ( - id integer generated by default as identity not null, - test_string varchar(255), - obsolete_string1 varchar(255), - obsolete_string2 varchar(255), - constraint pk_migtest_e_history2 primary key (id) -); - -create table migtest_e_history3 ( - id integer generated by default as identity not null, - test_string varchar(255), - constraint pk_migtest_e_history3 primary key (id) -); - -create table migtest_e_history4 ( - id integer generated by default as identity not null, - test_number integer, - constraint pk_migtest_e_history4 primary key (id) -); - -create table migtest_e_history5 ( - id integer generated by default as identity not null, - test_number integer, - constraint pk_migtest_e_history5 primary key (id) -); - -create table migtest_e_history6 ( - id integer generated by default as identity not null, - test_number1 integer, - test_number2 integer not null, - constraint pk_migtest_e_history6 primary key (id) -); - -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_mgtst__rf_nm unique (name); - -create table migtest_e_softdelete ( - id integer generated by default as identity not null, - test_string varchar(255), - 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_mgtst__b_eu8csq on migtest_e_basic (indextest1); -create index ix_mgtst__b_eu8csu on migtest_e_basic (indextest5); -create index ix_mgtst_fk_mok1xj on migtest_fk_cascade (one_id); -alter table migtest_fk_cascade add constraint fk_mgtst_fk_65kf6l foreign key (one_id) references migtest_fk_cascade_one (id) on delete cascade; - -create index ix_mgtst_fk_c4p3mv on migtest_fk_set_null (one_id); -alter table migtest_fk_set_null add constraint fk_mgtst_fk_wicx8x foreign key (one_id) references migtest_fk_one (id) on delete set null; - -create index ix_mgtst__bsc_rf_d on migtest_e_basic (eref_id); -alter table migtest_e_basic add constraint fk_mgtst__bsc_rf_d foreign key (eref_id) references migtest_e_ref (id) on delete restrict; - diff --git a/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/db2/1.1.sql b/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/db2/1.1.sql deleted file mode 100644 index 37c9d9db5..000000000 --- a/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/db2/1.1.sql +++ /dev/null @@ -1,110 +0,0 @@ --- Migrationscripts for ebean unittest --- apply changes -create table migtest_e_user ( - id integer generated by default as identity not null, - 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_mgtst_ck_e1qkb5 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_mgtst_fk_65kf6l; -alter table migtest_fk_cascade add constraint fk_mgtst_fk_65kf6l foreign key (one_id) references migtest_fk_cascade_one (id) on delete restrict; -alter table migtest_fk_none add constraint fk_mgtst_fk_nn_n_d foreign key (one_id) references migtest_fk_one (id) on delete restrict; -alter table migtest_fk_none_via_join add constraint fk_mgtst_fk_9tknzj foreign key (one_id) references migtest_fk_one (id) on delete restrict; -alter table migtest_fk_set_null drop constraint fk_mgtst_fk_wicx8x; -alter table migtest_fk_set_null add constraint fk_mgtst_fk_wicx8x foreign key (one_id) references migtest_fk_one (id) on delete restrict; - -update migtest_e_basic set status = 'A' where status is null; -alter table migtest_e_basic drop constraint ck_mgtst__bsc_stts; -alter table migtest_e_basic alter column status set default 'A'; -alter table migtest_e_basic alter column status set not null; -alter table migtest_e_basic add constraint ck_mgtst__bsc_stts check ( status in ('N','A','I','?')); -alter table migtest_e_basic drop constraint ck_mgtst__b_z543fg; -alter table migtest_e_basic alter column status2 set data type varchar(127); -alter table migtest_e_basic alter column status2 drop default; -alter table migtest_e_basic alter column status2 drop not null; - --- rename all collisions; -create unique index uq_migtest_e_basic_description on migtest_e_basic(description) exclude null keys; - -insert into migtest_e_user (id) select distinct user_id from migtest_e_basic; -alter table migtest_e_basic add constraint fk_mgtst__bsc_sr_d foreign key (user_id) references migtest_e_user (id) on delete restrict; -alter table migtest_e_basic alter column user_id drop not null; -alter table migtest_e_basic add column new_string_field varchar(255) default 'foo''bar' not null; -alter table migtest_e_basic add column new_boolean_field boolean default true not null; -update migtest_e_basic set new_boolean_field = old_boolean; - -alter table migtest_e_basic add column new_boolean_field2 boolean default true not null; -alter table migtest_e_basic add column progress integer default 0 not null; -alter table migtest_e_basic add constraint ck_mgtst__b_l39g41 check ( progress in (0,1,2)); -alter table migtest_e_basic add column new_integer integer default 42 not null; - -alter table migtest_e_basic drop constraint uq_mgtst__b_4aybzy; -alter table migtest_e_basic drop constraint uq_mgtst__b_4ayc02; -create unique index uq_migtest_e_basic_status_indextest1 on migtest_e_basic(status,indextest1) exclude null keys; -create unique index uq_migtest_e_basic_name on migtest_e_basic(name) exclude null keys; -create unique index uq_migtest_e_basic_indextest4 on migtest_e_basic(indextest4) exclude null keys; -create unique index uq_migtest_e_basic_indextest5 on migtest_e_basic(indextest5) exclude null keys; -alter table migtest_e_enum drop constraint ck_mgtst__n_773sok; -comment on column migtest_e_history.test_string is 'Column altered to long now'; -alter table migtest_e_history alter column test_string set data type bigint; -comment on table migtest_e_history is 'We have history now'; - --- NOTE: table has @History - special migration may be necessary -update migtest_e_history2 set test_string = 'unknown' where test_string is null; -alter table migtest_e_history2 alter column test_string set default 'unknown'; -alter table migtest_e_history2 alter column test_string set not null; -alter table migtest_e_history2 add column test_string2 varchar(255); -alter table migtest_e_history2 add column test_string3 varchar(255) default 'unknown' not null; -alter table migtest_e_history2 add column new_column varchar(20); - -alter table migtest_e_history4 alter column test_number set data type bigint; -alter table migtest_e_history5 add column test_boolean boolean default false not null; - - --- NOTE: table has @History - special migration may be necessary -update migtest_e_history6 set test_number1 = 42 where test_number1 is null; -alter table migtest_e_history6 alter column test_number1 set default 42; -alter table migtest_e_history6 alter column test_number1 set not null; -alter table migtest_e_history6 alter column test_number2 drop not null; -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_mgtst__b_eu8css on migtest_e_basic (indextest3); -create index ix_mgtst__b_eu8csv on migtest_e_basic (indextest6); -drop index ix_mgtst__b_eu8csq; -drop index ix_mgtst__b_eu8csu; -create index ix_mgtst_mt_3ug4ok on migtest_mtm_c_migtest_mtm_m (migtest_mtm_c_id); -alter table migtest_mtm_c_migtest_mtm_m add constraint fk_mgtst_mt_93awga foreign key (migtest_mtm_c_id) references migtest_mtm_c (id) on delete restrict; - -create index ix_mgtst_mt_3ug4ou on migtest_mtm_c_migtest_mtm_m (migtest_mtm_m_id); -alter table migtest_mtm_c_migtest_mtm_m add constraint fk_mgtst_mt_93awgk foreign key (migtest_mtm_m_id) references migtest_mtm_m (id) on delete restrict; - -create index ix_mgtst_mt_b7nbcu on migtest_mtm_m_migtest_mtm_c (migtest_mtm_m_id); -alter table migtest_mtm_m_migtest_mtm_c add constraint fk_mgtst_mt_ggi34k foreign key (migtest_mtm_m_id) references migtest_mtm_m (id) on delete restrict; - -create index ix_mgtst_mt_b7nbck on migtest_mtm_m_migtest_mtm_c (migtest_mtm_c_id); -alter table migtest_mtm_m_migtest_mtm_c add constraint fk_mgtst_mt_ggi34a foreign key (migtest_mtm_c_id) references migtest_mtm_c (id) on delete restrict; - -create index ix_mgtst_ck_x45o21 on migtest_ckey_parent (assoc_id); -alter table migtest_ckey_parent add constraint fk_mgtst_ck_da00mr foreign key (assoc_id) references migtest_ckey_assoc (id) on delete restrict; - -alter table migtest_oto_child add constraint fk_mgtst_t__csyl38 foreign key (master_id) references migtest_oto_master (id) on delete restrict; - diff --git a/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/db2/1.2__dropsFor_1.1.sql b/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/db2/1.2__dropsFor_1.1.sql deleted file mode 100644 index f7ff8b135..000000000 --- a/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/db2/1.2__dropsFor_1.1.sql +++ /dev/null @@ -1,14 +0,0 @@ --- Migrationscripts for ebean unittest --- apply changes -alter table migtest_e_basic drop column old_boolean; - -alter table migtest_e_basic drop column old_boolean2; - -alter table migtest_e_basic drop column eref_id; - -alter table migtest_e_history2 drop column obsolete_string1; - -alter table migtest_e_history2 drop column obsolete_string2; - -drop table migtest_e_ref; -drop sequence migtest_e_ref_seq; diff --git a/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/db2/1.3.sql b/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/db2/1.3.sql deleted file mode 100644 index ab2148795..000000000 --- a/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/db2/1.3.sql +++ /dev/null @@ -1,67 +0,0 @@ --- Migrationscripts for ebean unittest --- 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_mgtst__rf_nm unique (name); - -alter table migtest_ckey_detail drop constraint fk_mgtst_ck_e1qkb5; -alter table migtest_fk_cascade drop constraint fk_mgtst_fk_65kf6l; -alter table migtest_fk_cascade add constraint fk_mgtst_fk_65kf6l foreign key (one_id) references migtest_fk_cascade_one (id) on delete cascade; -alter table migtest_fk_none drop constraint fk_mgtst_fk_nn_n_d; -alter table migtest_fk_none_via_join drop constraint fk_mgtst_fk_9tknzj; -alter table migtest_fk_set_null drop constraint fk_mgtst_fk_wicx8x; -alter table migtest_fk_set_null add constraint fk_mgtst_fk_wicx8x foreign key (one_id) references migtest_fk_one (id) on delete set null; -alter table migtest_e_basic drop constraint ck_mgtst__bsc_stts; -alter table migtest_e_basic alter column status drop default; -alter table migtest_e_basic alter column status drop not null; -alter table migtest_e_basic add constraint ck_mgtst__bsc_stts check ( status in ('N','A','I')); - -update migtest_e_basic set status2 = 'N' where status2 is null; -alter table migtest_e_basic drop constraint ck_mgtst__b_z543fg; -alter table migtest_e_basic alter column status2 set data type varchar(1); -alter table migtest_e_basic alter column status2 set default 'N'; -alter table migtest_e_basic alter column status2 set not null; -alter table migtest_e_basic add constraint ck_mgtst__b_z543fg check ( status2 in ('N','A','I')); -alter table migtest_e_basic drop constraint uq_mgtst__b_vs45xo; - -update migtest_e_basic set user_id = 23 where user_id is null; -alter table migtest_e_basic drop constraint fk_mgtst__bsc_sr_d; -alter table migtest_e_basic alter column user_id set default 23; -alter table migtest_e_basic alter column user_id set not null; -alter table migtest_e_basic add column old_boolean boolean default false not null; -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_mgtst__b_ucfcne; -alter table migtest_e_basic drop constraint uq_mgtst__bsc_nm; -alter table migtest_e_basic drop constraint uq_mgtst__b_4ayc00; -alter table migtest_e_basic drop constraint uq_mgtst__b_4ayc01; -create unique index uq_migtest_e_basic_indextest2 on migtest_e_basic(indextest2) exclude null keys; -create unique index uq_migtest_e_basic_indextest6 on migtest_e_basic(indextest6) exclude null keys; -alter table migtest_e_enum drop constraint ck_mgtst__n_773sok; -alter table migtest_e_enum add constraint ck_mgtst__n_773sok check ( test_status in ('N','A','I')); -comment on column migtest_e_history.test_string is ''; -comment on table migtest_e_history is ''; -alter table migtest_e_history2 alter column test_string drop default; -alter table migtest_e_history2 alter column test_string drop not null; -alter table migtest_e_history2 add column obsolete_string1 varchar(255); -alter table migtest_e_history2 add column obsolete_string2 varchar(255); - -alter table migtest_e_history4 alter column test_number set data type integer; -alter table migtest_e_history6 alter column test_number1 drop default; -alter table migtest_e_history6 alter column test_number1 drop not null; - --- NOTE: table has @History - special migration may be necessary -update migtest_e_history6 set test_number2 = 7 where test_number2 is null; -alter table migtest_e_history6 alter column test_number2 set default 7; -alter table migtest_e_history6 alter column test_number2 set not null; -create index ix_mgtst__b_eu8csq on migtest_e_basic (indextest1); -create index ix_mgtst__b_eu8csu on migtest_e_basic (indextest5); -drop index ix_mgtst__b_eu8css; -drop index ix_mgtst__b_eu8csv; -create index ix_mgtst__bsc_rf_d on migtest_e_basic (eref_id); -alter table migtest_e_basic add constraint fk_mgtst__bsc_rf_d foreign key (eref_id) references migtest_e_ref (id) on delete restrict; - diff --git a/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/db2/1.4__dropsFor_1.3.sql b/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/db2/1.4__dropsFor_1.3.sql deleted file mode 100644 index 038f64f6a..000000000 --- a/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/db2/1.4__dropsFor_1.3.sql +++ /dev/null @@ -1,34 +0,0 @@ --- 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; - -alter table migtest_e_basic drop column new_boolean_field2; - -alter table migtest_e_basic drop column progress; - -alter table migtest_e_basic drop column new_integer; - -alter table migtest_e_history2 drop column test_string2; - -alter table migtest_e_history2 drop column test_string3; - -alter table migtest_e_history2 drop column new_column; - -alter table migtest_e_history5 drop column test_boolean; - -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/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/db2/idx_db2.migrations b/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/db2/idx_db2.migrations deleted file mode 100644 index 5714cbdcb..000000000 --- a/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/db2/idx_db2.migrations +++ /dev/null @@ -1,6 +0,0 @@ --1494430232, 1.0__initial.sql --1611753488, 1.1.sql -578073685, 1.2__dropsFor_1.1.sql --183167227, 1.3.sql --1475628451, 1.4__dropsFor_1.3.sql - diff --git a/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/h2/1.0__initial.sql b/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/h2/1.0__initial.sql deleted file mode 100644 index 1e2a4095f..000000000 --- a/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/h2/1.0__initial.sql +++ /dev/null @@ -1,232 +0,0 @@ --- 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, - constraint pk_migtest_fk_cascade primary key (id) -); - -create table migtest_fk_cascade_one ( - id bigint generated by default as identity not null, - constraint pk_migtest_fk_cascade_one primary key (id) -); - -create table migtest_fk_none ( - id bigint generated by default as identity not null, - one_id bigint, - constraint pk_migtest_fk_none primary key (id) -); - -create table migtest_fk_none_via_join ( - id bigint generated by default as identity not null, - one_id bigint, - constraint pk_migtest_fk_none_via_join primary key (id) -); - -create table migtest_fk_one ( - id bigint generated by default as identity not null, - constraint pk_migtest_fk_one primary key (id) -); - -create table migtest_fk_set_null ( - id bigint generated by default as identity not null, - one_id bigint, - constraint pk_migtest_fk_set_null primary key (id) -); - -create table migtest_e_basic ( - id integer generated by default as identity not null, - status varchar(1), - status2 varchar(1) default 'N' not null, - name varchar(127), - description varchar(127), - some_date timestamp, - old_boolean boolean default false not null, - old_boolean2 boolean, - eref_id integer, - indextest1 varchar(127), - indextest2 varchar(127), - indextest3 varchar(127), - indextest4 varchar(127), - indextest5 varchar(127), - indextest6 varchar(127), - user_id integer not null, - constraint ck_migtest_e_basic_status check ( status in ('N','A','I')), - constraint ck_migtest_e_basic_status2 check ( status2 in ('N','A','I')), - constraint uq_migtest_e_basic_indextest2 unique (indextest2), - constraint uq_migtest_e_basic_indextest6 unique (indextest6), - constraint pk_migtest_e_basic primary key (id) -); - -create table migtest_e_enum ( - id integer generated by default as identity not null, - test_status varchar(1), - constraint ck_migtest_e_enum_test_status check ( test_status in ('N','A','I')), - constraint pk_migtest_e_enum primary key (id) -); - -create table migtest_e_history ( - id integer generated by default as identity not null, - test_string varchar(255), - constraint pk_migtest_e_history primary key (id) -); - -create table migtest_e_history2 ( - id integer generated by default as identity not null, - test_string varchar(255), - obsolete_string1 varchar(255), - obsolete_string2 varchar(255), - constraint pk_migtest_e_history2 primary key (id) -); - -create table migtest_e_history3 ( - id integer generated by default as identity not null, - test_string varchar(255), - constraint pk_migtest_e_history3 primary key (id) -); - -create table migtest_e_history4 ( - id integer generated by default as identity not null, - test_number integer, - constraint pk_migtest_e_history4 primary key (id) -); - -create table migtest_e_history5 ( - id integer generated by default as identity not null, - test_number integer, - constraint pk_migtest_e_history5 primary key (id) -); - -create table migtest_e_history6 ( - id integer generated by default as identity not null, - test_number1 integer, - test_number2 integer not null, - constraint pk_migtest_e_history6 primary key (id) -); - -create table migtest_e_ref ( - id integer generated by default as identity not null, - name varchar(127) not null, - constraint uq_migtest_e_ref_name unique (name), - constraint pk_migtest_e_ref primary key (id) -); - -create table migtest_e_softdelete ( - id integer generated by default as identity not null, - test_string varchar(255), - 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); -create index ix_migtest_fk_cascade_one_id on 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 restrict; - -create index ix_migtest_fk_set_null_one_id on migtest_fk_set_null (one_id); -alter table migtest_fk_set_null add constraint fk_migtest_fk_set_null_one_id foreign key (one_id) references migtest_fk_one (id) on delete set null on update restrict; - -create index ix_migtest_e_basic_eref_id on migtest_e_basic (eref_id); -alter table migtest_e_basic add constraint fk_migtest_e_basic_eref_id foreign key (eref_id) references migtest_e_ref (id) on delete restrict on update restrict; - -alter table migtest_e_history2 add column sys_period_start timestamp default now(); -alter table migtest_e_history2 add column sys_period_end timestamp; -create table migtest_e_history2_history( - id integer, - test_string varchar(255), - obsolete_string1 varchar(255), - obsolete_string2 varchar(255), - sys_period_start timestamp, - sys_period_end timestamp -); -create view migtest_e_history2_with_history as select * from migtest_e_history2 union all select * from migtest_e_history2_history; - -alter table migtest_e_history3 add column sys_period_start timestamp default now(); -alter table migtest_e_history3 add column sys_period_end timestamp; -create table migtest_e_history3_history( - id integer, - test_string varchar(255), - sys_period_start timestamp, - sys_period_end timestamp -); -create view migtest_e_history3_with_history as select * from migtest_e_history3 union all select * from migtest_e_history3_history; - -alter table migtest_e_history4 add column sys_period_start timestamp default now(); -alter table migtest_e_history4 add column sys_period_end timestamp; -create table migtest_e_history4_history( - id integer, - test_number integer, - sys_period_start timestamp, - sys_period_end timestamp -); -create view migtest_e_history4_with_history as select * from migtest_e_history4 union all select * from migtest_e_history4_history; - -alter table migtest_e_history5 add column sys_period_start timestamp default now(); -alter table migtest_e_history5 add column sys_period_end timestamp; -create table migtest_e_history5_history( - id integer, - test_number integer, - sys_period_start timestamp, - sys_period_end timestamp -); -create view migtest_e_history5_with_history as select * from migtest_e_history5 union all select * from migtest_e_history5_history; - -alter table migtest_e_history6 add column sys_period_start timestamp default now(); -alter table migtest_e_history6 add column sys_period_end timestamp; -create table migtest_e_history6_history( - id integer, - test_number1 integer, - test_number2 integer, - sys_period_start timestamp, - sys_period_end timestamp -); -create view migtest_e_history6_with_history as select * from migtest_e_history6 union all select * from migtest_e_history6_history; - -create trigger migtest_e_history2_history_upd before update,delete on migtest_e_history2 for each row call "io.ebean.config.dbplatform.h2.H2HistoryTrigger"; -create trigger migtest_e_history3_history_upd before update,delete on migtest_e_history3 for each row call "io.ebean.config.dbplatform.h2.H2HistoryTrigger"; -create trigger migtest_e_history4_history_upd before update,delete on migtest_e_history4 for each row call "io.ebean.config.dbplatform.h2.H2HistoryTrigger"; -create trigger migtest_e_history5_history_upd before update,delete on migtest_e_history5 for each row call "io.ebean.config.dbplatform.h2.H2HistoryTrigger"; -create trigger migtest_e_history6_history_upd before update,delete on migtest_e_history6 for each row call "io.ebean.config.dbplatform.h2.H2HistoryTrigger"; diff --git a/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/h2/1.1.sql b/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/h2/1.1.sql deleted file mode 100644 index b51d15d2e..000000000 --- a/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/h2/1.1.sql +++ /dev/null @@ -1,152 +0,0 @@ --- Migrationscripts for ebean unittest --- drop dependencies -drop view if exists migtest_e_history2_with_history; -drop view if exists migtest_e_history3_with_history; -drop view if exists migtest_e_history4_with_history; -drop view if exists migtest_e_history5_with_history; - --- apply changes -create table migtest_e_user ( - id integer generated by default as identity not null, - 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; -alter table migtest_fk_none_via_join add constraint fk_migtest_fk_none_via_join_one_id foreign key (one_id) references migtest_fk_one (id) on delete restrict on update restrict; -alter table migtest_fk_set_null drop constraint if exists fk_migtest_fk_set_null_one_id; -alter table migtest_fk_set_null add constraint fk_migtest_fk_set_null_one_id foreign key (one_id) references migtest_fk_one (id) on delete restrict on update restrict; - -update migtest_e_basic set status = 'A' where status is null; -alter table migtest_e_basic drop constraint if exists ck_migtest_e_basic_status; -alter table migtest_e_basic alter column status set default 'A'; -alter table migtest_e_basic alter column status set not null; -alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I','?')); -alter table migtest_e_basic drop constraint if exists ck_migtest_e_basic_status2; -alter table migtest_e_basic alter column status2 varchar(127); -alter table migtest_e_basic alter column status2 drop default; -alter table migtest_e_basic alter column status2 set null; - --- rename all collisions; -alter table migtest_e_basic add constraint uq_migtest_e_basic_description unique (description); - -insert into migtest_e_user (id) select distinct user_id from migtest_e_basic; -alter table migtest_e_basic add constraint fk_migtest_e_basic_user_id foreign key (user_id) references migtest_e_user (id) on delete restrict on update restrict; -alter table migtest_e_basic alter column user_id set null; -alter table migtest_e_basic add column new_string_field varchar(255) default 'foo''bar' not null; -alter table migtest_e_basic add column new_boolean_field boolean default true not null; -update migtest_e_basic set new_boolean_field = old_boolean; - -alter table migtest_e_basic add column new_boolean_field2 boolean default true not null; -alter table migtest_e_basic add column progress integer default 0 not null; -alter table migtest_e_basic add constraint ck_migtest_e_basic_progress check ( progress in (0,1,2)); -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); -alter table migtest_e_enum drop constraint if exists ck_migtest_e_enum_test_status; -comment on column migtest_e_history.test_string is 'Column altered to long now'; -alter table migtest_e_history alter column test_string bigint; -comment on table migtest_e_history is 'We have history now'; - --- NOTE: table has @History - special migration may be necessary -update migtest_e_history2 set test_string = 'unknown' where test_string is null; -alter table migtest_e_history2 alter column test_string set default 'unknown'; -alter table migtest_e_history2 alter column test_string set not null; -alter table migtest_e_history2 add column test_string2 varchar(255); -alter table migtest_e_history2 add column test_string3 varchar(255) default 'unknown' not null; -alter table migtest_e_history2 add column new_column varchar(20); -alter table migtest_e_history2_history add column test_string2 varchar(255); -alter table migtest_e_history2_history add column test_string3 varchar(255) default 'unknown'; -alter table migtest_e_history2_history add column new_column varchar(20); - -alter table migtest_e_history4 alter column test_number bigint; -alter table migtest_e_history4_history alter column test_number bigint; -alter table migtest_e_history5 add column test_boolean boolean default false not null; -alter table migtest_e_history5_history add column test_boolean boolean default false; - - --- NOTE: table has @History - special migration may be necessary -update migtest_e_history6 set test_number1 = 42 where test_number1 is null; -alter table migtest_e_history6 alter column test_number1 set default 42; -alter table migtest_e_history6 alter column test_number1 set not null; -alter table migtest_e_history6 alter column test_number2 set null; -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; -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_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_m on migtest_mtm_c_migtest_mtm_m (migtest_mtm_m_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_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_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_c on migtest_mtm_m_migtest_mtm_c (migtest_mtm_c_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_ckey_parent_assoc_id on migtest_ckey_parent (assoc_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; - -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 timestamp default now(); -alter table migtest_e_history add column sys_period_end timestamp; -create table migtest_e_history_history( - id integer, - test_string bigint, - sys_period_start timestamp, - sys_period_end timestamp -); -create view migtest_e_history_with_history as select * from migtest_e_history union all select * from migtest_e_history_history; - -create view migtest_e_history2_with_history as select * from migtest_e_history2 union all select * from migtest_e_history2_history; - -create view migtest_e_history3_with_history as select * from migtest_e_history3 union all select * from migtest_e_history3_history; - -create view migtest_e_history4_with_history as select * from migtest_e_history4 union all select * from migtest_e_history4_history; - -create view migtest_e_history5_with_history as select * from migtest_e_history5 union all select * from migtest_e_history5_history; - -create trigger migtest_e_history_history_upd before update,delete on migtest_e_history for each row call "io.ebean.config.dbplatform.h2.H2HistoryTrigger"; --- changes: [add test_string2, add test_string3, add new_column] -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"; --- changes: [exclude test_string] -drop trigger migtest_e_history3_history_upd; -create trigger migtest_e_history3_history_upd before update,delete on migtest_e_history3 for each row call "io.ebean.config.dbplatform.h2.H2HistoryTrigger"; --- changes: [alter test_number] -drop trigger migtest_e_history4_history_upd; -create trigger migtest_e_history4_history_upd before update,delete on migtest_e_history4 for each row call "io.ebean.config.dbplatform.h2.H2HistoryTrigger"; --- changes: [add test_boolean] -drop trigger migtest_e_history5_history_upd; -create trigger migtest_e_history5_history_upd before update,delete on migtest_e_history5 for each row call "io.ebean.config.dbplatform.h2.H2HistoryTrigger"; diff --git a/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/h2/1.2__dropsFor_1.1.sql b/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/h2/1.2__dropsFor_1.1.sql deleted file mode 100644 index dea5dde03..000000000 --- a/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/h2/1.2__dropsFor_1.1.sql +++ /dev/null @@ -1,24 +0,0 @@ --- Migrationscripts for ebean unittest --- drop dependencies -drop view if exists migtest_e_history2_with_history; - --- apply changes -alter table migtest_e_basic drop column old_boolean; - -alter table migtest_e_basic drop column old_boolean2; - -alter table migtest_e_basic drop column eref_id; - -alter table migtest_e_history2 drop column obsolete_string1; -alter table migtest_e_history2_history drop column obsolete_string1; - -alter table migtest_e_history2 drop column obsolete_string2; -alter table migtest_e_history2_history drop column obsolete_string2; - -drop table if exists migtest_e_ref; -drop sequence if exists migtest_e_ref_seq; -create view migtest_e_history2_with_history as select * from migtest_e_history2 union all select * from migtest_e_history2_history; - --- changes: [drop obsolete_string1, drop obsolete_string2] -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/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/h2/1.3.sql b/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/h2/1.3.sql deleted file mode 100644 index a1d6ccad1..000000000 --- a/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/h2/1.3.sql +++ /dev/null @@ -1,90 +0,0 @@ --- Migrationscripts for ebean unittest --- drop dependencies -drop view if exists migtest_e_history2_with_history; -drop view if exists migtest_e_history3_with_history; -drop view if exists migtest_e_history4_with_history; - --- apply changes -create table migtest_e_ref ( - id integer generated by default as identity 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 restrict; -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; -alter table migtest_fk_set_null drop constraint if exists fk_migtest_fk_set_null_one_id; -alter table migtest_fk_set_null add constraint fk_migtest_fk_set_null_one_id foreign key (one_id) references migtest_fk_one (id) on delete set null on update restrict; -alter table migtest_e_basic drop constraint if exists ck_migtest_e_basic_status; -alter table migtest_e_basic alter column status drop default; -alter table migtest_e_basic alter column status set null; -alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I')); - -update migtest_e_basic set status2 = 'N' where status2 is null; -alter table migtest_e_basic drop constraint if exists ck_migtest_e_basic_status2; -alter table migtest_e_basic alter column status2 varchar(1); -alter table migtest_e_basic alter column status2 set default 'N'; -alter table migtest_e_basic alter column status2 set not null; -alter table migtest_e_basic add constraint ck_migtest_e_basic_status2 check ( status2 in ('N','A','I')); -alter table migtest_e_basic drop constraint uq_migtest_e_basic_description; - -update migtest_e_basic set user_id = 23 where user_id is null; -alter table migtest_e_basic drop constraint if exists fk_migtest_e_basic_user_id; -alter table migtest_e_basic alter column user_id set default 23; -alter table migtest_e_basic alter column user_id set not null; -alter table migtest_e_basic add column old_boolean boolean default false not null; -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; -alter table migtest_e_basic add constraint uq_migtest_e_basic_indextest2 unique (indextest2); -alter table migtest_e_basic add constraint uq_migtest_e_basic_indextest6 unique (indextest6); -alter table migtest_e_enum drop constraint if exists ck_migtest_e_enum_test_status; -alter table migtest_e_enum add constraint ck_migtest_e_enum_test_status check ( test_status in ('N','A','I')); -comment on column migtest_e_history.test_string is ''; -comment on table migtest_e_history is ''; -alter table migtest_e_history2 alter column test_string drop default; -alter table migtest_e_history2 alter column test_string set null; -alter table migtest_e_history2 add column obsolete_string1 varchar(255); -alter table migtest_e_history2 add column obsolete_string2 varchar(255); -alter table migtest_e_history2_history add column obsolete_string1 varchar(255); -alter table migtest_e_history2_history add column obsolete_string2 varchar(255); - -alter table migtest_e_history4 alter column test_number integer; -alter table migtest_e_history4_history alter column test_number integer; -alter table migtest_e_history6 alter column test_number1 drop default; -alter table migtest_e_history6 alter column test_number1 set null; - --- NOTE: table has @History - special migration may be necessary -update migtest_e_history6 set test_number2 = 7 where test_number2 is null; -alter table migtest_e_history6 alter column test_number2 set default 7; -alter table migtest_e_history6 alter column test_number2 set not null; -create index ix_migtest_e_basic_indextest1 on migtest_e_basic (indextest1); -create index ix_migtest_e_basic_indextest5 on migtest_e_basic (indextest5); -drop index if exists ix_migtest_e_basic_indextest3; -drop index if exists ix_migtest_e_basic_indextest6; -create index ix_migtest_e_basic_eref_id on migtest_e_basic (eref_id); -alter table migtest_e_basic add constraint fk_migtest_e_basic_eref_id foreign key (eref_id) references migtest_e_ref (id) on delete restrict on update restrict; - -create view migtest_e_history2_with_history as select * from migtest_e_history2 union all select * from migtest_e_history2_history; - -create view migtest_e_history3_with_history as select * from migtest_e_history3 union all select * from migtest_e_history3_history; - -create view migtest_e_history4_with_history as select * from migtest_e_history4 union all select * from migtest_e_history4_history; - --- changes: [add obsolete_string1, add obsolete_string2] -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"; --- changes: [include test_string] -drop trigger migtest_e_history3_history_upd; -create trigger migtest_e_history3_history_upd before update,delete on migtest_e_history3 for each row call "io.ebean.config.dbplatform.h2.H2HistoryTrigger"; --- changes: [alter test_number] -drop trigger migtest_e_history4_history_upd; -create trigger migtest_e_history4_history_upd before update,delete on migtest_e_history4 for each row call "io.ebean.config.dbplatform.h2.H2HistoryTrigger"; diff --git a/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/h2/1.4__dropsFor_1.3.sql b/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/h2/1.4__dropsFor_1.3.sql deleted file mode 100644 index 1776f5309..000000000 --- a/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/h2/1.4__dropsFor_1.3.sql +++ /dev/null @@ -1,58 +0,0 @@ --- Migrationscripts for ebean unittest --- drop dependencies -drop trigger migtest_e_history_history_upd; -drop view migtest_e_history_with_history; -alter table migtest_e_history drop column sys_period_start; -alter table migtest_e_history drop column sys_period_end; -drop table migtest_e_history_history; - -drop view if exists migtest_e_history2_with_history; -drop view if exists migtest_e_history5_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; - -alter table migtest_e_basic drop column new_boolean_field2; - -alter table migtest_e_basic drop column progress; - -alter table migtest_e_basic drop column new_integer; - -alter table migtest_e_history2 drop column test_string2; -alter table migtest_e_history2_history drop column test_string2; - -alter table migtest_e_history2 drop column test_string3; -alter table migtest_e_history2_history drop column test_string3; - -alter table migtest_e_history2 drop column new_column; -alter table migtest_e_history2_history drop column new_column; - -alter table migtest_e_history5 drop column test_boolean; -alter table migtest_e_history5_history drop column test_boolean; - -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; -create view migtest_e_history2_with_history as select * from migtest_e_history2 union all select * from migtest_e_history2_history; - -create view migtest_e_history5_with_history as select * from migtest_e_history5 union all select * from migtest_e_history5_history; - --- changes: [drop test_string2, drop test_string3, drop new_column] -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"; --- changes: [drop test_boolean] -drop trigger migtest_e_history5_history_upd; -create trigger migtest_e_history5_history_upd before update,delete on migtest_e_history5 for each row call "io.ebean.config.dbplatform.h2.H2HistoryTrigger"; diff --git a/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/h2/idx_h2.migrations b/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/h2/idx_h2.migrations deleted file mode 100644 index fb21ce854..000000000 --- a/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/h2/idx_h2.migrations +++ /dev/null @@ -1,6 +0,0 @@ --745768926, 1.0__initial.sql -39858255, 1.1.sql -1616986842, 1.2__dropsFor_1.1.sql --1513154593, 1.3.sql -374569329, 1.4__dropsFor_1.3.sql - diff --git a/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/hana/1.0__initial.sql b/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/hana/1.0__initial.sql deleted file mode 100644 index 837424e6d..000000000 --- a/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/hana/1.0__initial.sql +++ /dev/null @@ -1,237 +0,0 @@ --- Migrationscripts for ebean unittest --- apply changes -create column table migtest_ckey_assoc ( - id integer generated by default as identity not null, - assoc_one nvarchar(255), - constraint pk_migtest_ckey_assoc primary key (id) -); - -create column table migtest_ckey_detail ( - id integer generated by default as identity not null, - something nvarchar(255), - constraint pk_migtest_ckey_detail primary key (id) -); - -create column table migtest_ckey_parent ( - one_key integer not null, - two_key nvarchar(127) not null, - name nvarchar(255), - version integer not null, - constraint pk_migtest_ckey_parent primary key (one_key,two_key) -); - -create column table migtest_fk_cascade ( - id bigint generated by default as identity not null, - one_id bigint, - constraint pk_migtest_fk_cascade primary key (id) -); - -create column table migtest_fk_cascade_one ( - id bigint generated by default as identity not null, - constraint pk_migtest_fk_cascade_one primary key (id) -); - -create column table migtest_fk_none ( - id bigint generated by default as identity not null, - one_id bigint, - constraint pk_migtest_fk_none primary key (id) -); - -create column table migtest_fk_none_via_join ( - id bigint generated by default as identity not null, - one_id bigint, - constraint pk_migtest_fk_none_via_join primary key (id) -); - -create column table migtest_fk_one ( - id bigint generated by default as identity not null, - constraint pk_migtest_fk_one primary key (id) -); - -create column table migtest_fk_set_null ( - id bigint generated by default as identity not null, - one_id bigint, - constraint pk_migtest_fk_set_null primary key (id) -); - -create column table migtest_e_basic ( - id integer generated by default as identity not null, - status nvarchar(1), - status2 nvarchar(1) default 'N' not null, - name nvarchar(127), - description nvarchar(127), - some_date timestamp, - old_boolean boolean default false not null, - old_boolean2 boolean, - eref_id integer, - indextest1 nvarchar(127), - indextest2 nvarchar(127), - indextest3 nvarchar(127), - indextest4 nvarchar(127), - indextest5 nvarchar(127), - indextest6 nvarchar(127), - user_id integer not null, - constraint ck_migtest_e_basic_status check ( status in ('N','A','I')), - constraint ck_migtest_e_basic_status2 check ( status2 in ('N','A','I')), - constraint uq_migtest_e_basic_indextest2 unique (indextest2), - constraint uq_migtest_e_basic_indextest6 unique (indextest6), - constraint pk_migtest_e_basic primary key (id) -); - -create column table migtest_e_enum ( - id integer generated by default as identity not null, - test_status nvarchar(1), - constraint ck_migtest_e_enum_test_status check ( test_status in ('N','A','I')), - constraint pk_migtest_e_enum primary key (id) -); - -create column table migtest_e_history ( - id integer generated by default as identity not null, - test_string nvarchar(255), - constraint pk_migtest_e_history primary key (id) -); - -create column table migtest_e_history2 ( - id integer generated by default as identity not null, - test_string nvarchar(255), - obsolete_string1 nvarchar(255), - obsolete_string2 nvarchar(255), - constraint pk_migtest_e_history2 primary key (id) -); - -create column table migtest_e_history3 ( - id integer generated by default as identity not null, - test_string nvarchar(255), - constraint pk_migtest_e_history3 primary key (id) -); - -create column table migtest_e_history4 ( - id integer generated by default as identity not null, - test_number integer, - constraint pk_migtest_e_history4 primary key (id) -); - -create column table migtest_e_history5 ( - id integer generated by default as identity not null, - test_number integer, - constraint pk_migtest_e_history5 primary key (id) -); - -create column table migtest_e_history6 ( - id integer generated by default as identity not null, - test_number1 integer, - test_number2 integer not null, - constraint pk_migtest_e_history6 primary key (id) -); - -create column table migtest_e_ref ( - id integer generated by default as identity not null, - name nvarchar(127) not null, - constraint uq_migtest_e_ref_name unique (name), - constraint pk_migtest_e_ref primary key (id) -); - -create column table migtest_e_softdelete ( - id integer generated by default as identity not null, - test_string nvarchar(255), - constraint pk_migtest_e_softdelete primary key (id) -); - -create column table migtest_mtm_c ( - id integer generated by default as identity not null, - name nvarchar(255), - constraint pk_migtest_mtm_c primary key (id) -); - -create column table migtest_mtm_m ( - id bigint generated by default as identity not null, - name nvarchar(255), - constraint pk_migtest_mtm_m primary key (id) -); - -create column table migtest_oto_child ( - id integer generated by default as identity not null, - name nvarchar(255), - constraint pk_migtest_oto_child primary key (id) -); - -create column table migtest_oto_master ( - id bigint generated by default as identity not null, - name nvarchar(255), - constraint pk_migtest_oto_master primary key (id) -); - --- explicit index "ix_migtest_e_basic_indextest1" for single column "indextest1" of table "migtest_e_basic" is not necessary; --- explicit index "ix_migtest_e_basic_indextest5" for single column "indextest5" of table "migtest_e_basic" is not necessary; --- explicit index "ix_migtest_fk_cascade_one_id" for single column "one_id" of table "migtest_fk_cascade" is not necessary; -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 restrict; - --- explicit index "ix_migtest_fk_set_null_one_id" for single column "one_id" of table "migtest_fk_set_null" is not necessary; -alter table migtest_fk_set_null add constraint fk_migtest_fk_set_null_one_id foreign key (one_id) references migtest_fk_one (id) on delete set null on update restrict; - --- explicit index "ix_migtest_e_basic_eref_id" for single column "eref_id" of table "migtest_e_basic" is not necessary; -alter table migtest_e_basic add constraint fk_migtest_e_basic_eref_id foreign key (eref_id) references migtest_e_ref (id) on delete restrict on update restrict; - -create column table migtest_e_history2_history ( - id integer, - test_string nvarchar(255), - obsolete_string1 nvarchar(255), - obsolete_string2 nvarchar(255), - sys_period_start timestamp, - sys_period_end timestamp -); -alter table migtest_e_history2 add ( - sys_period_start TIMESTAMP NOT NULL GENERATED ALWAYS AS ROW START, - sys_period_end TIMESTAMP NOT NULL GENERATED ALWAYS AS ROW END -); -alter table migtest_e_history2 add period for system_time(sys_period_start,sys_period_end); -alter table migtest_e_history2 add system versioning history table migtest_e_history2_history; -create column table migtest_e_history3_history ( - id integer, - test_string nvarchar(255), - sys_period_start timestamp, - sys_period_end timestamp -); -alter table migtest_e_history3 add ( - sys_period_start TIMESTAMP NOT NULL GENERATED ALWAYS AS ROW START, - sys_period_end TIMESTAMP NOT NULL GENERATED ALWAYS AS ROW END -); -alter table migtest_e_history3 add period for system_time(sys_period_start,sys_period_end); -alter table migtest_e_history3 add system versioning history table migtest_e_history3_history; -create column table migtest_e_history4_history ( - id integer, - test_number integer, - sys_period_start timestamp, - sys_period_end timestamp -); -alter table migtest_e_history4 add ( - sys_period_start TIMESTAMP NOT NULL GENERATED ALWAYS AS ROW START, - sys_period_end TIMESTAMP NOT NULL GENERATED ALWAYS AS ROW END -); -alter table migtest_e_history4 add period for system_time(sys_period_start,sys_period_end); -alter table migtest_e_history4 add system versioning history table migtest_e_history4_history; -create column table migtest_e_history5_history ( - id integer, - test_number integer, - sys_period_start timestamp, - sys_period_end timestamp -); -alter table migtest_e_history5 add ( - sys_period_start TIMESTAMP NOT NULL GENERATED ALWAYS AS ROW START, - sys_period_end TIMESTAMP NOT NULL GENERATED ALWAYS AS ROW END -); -alter table migtest_e_history5 add period for system_time(sys_period_start,sys_period_end); -alter table migtest_e_history5 add system versioning history table migtest_e_history5_history; -create column table migtest_e_history6_history ( - id integer, - test_number1 integer, - test_number2 integer not null, - sys_period_start timestamp, - sys_period_end timestamp -); -alter table migtest_e_history6 add ( - sys_period_start TIMESTAMP NOT NULL GENERATED ALWAYS AS ROW START, - sys_period_end TIMESTAMP NOT NULL GENERATED ALWAYS AS ROW END -); -alter table migtest_e_history6 add period for system_time(sys_period_start,sys_period_end); -alter table migtest_e_history6 add system versioning history table migtest_e_history6_history; diff --git a/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/hana/1.1.sql b/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/hana/1.1.sql deleted file mode 100644 index 7f92f6534..000000000 --- a/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/hana/1.1.sql +++ /dev/null @@ -1,181 +0,0 @@ --- Migrationscripts for ebean unittest --- apply changes -create column table migtest_e_user ( - id integer generated by default as identity not null, - constraint pk_migtest_e_user primary key (id) -); - -create column 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 column 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 ( one_key integer); -alter table migtest_ckey_detail add ( two_key nvarchar(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 ( 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 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; -alter table migtest_fk_none_via_join add constraint fk_migtest_fk_none_via_join_one_id foreign key (one_id) references migtest_fk_one (id) on delete restrict on update restrict; -alter table migtest_fk_set_null drop constraint fk_migtest_fk_set_null_one_id; -alter table migtest_fk_set_null add constraint fk_migtest_fk_set_null_one_id foreign key (one_id) references migtest_fk_one (id) on delete restrict on update restrict; - -update migtest_e_basic set status = 'A' where status is null; -delimiter $$ -do -begin -declare exit handler for sql_error_code 397 begin end; -exec 'alter table migtest_e_basic drop constraint ck_migtest_e_basic_status'; -end; -$$; -alter table migtest_e_basic alter ( status nvarchar(1) default 'A' not null); -alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I','?')); -delimiter $$ -do -begin -declare exit handler for sql_error_code 397 begin end; -exec 'alter table migtest_e_basic drop constraint ck_migtest_e_basic_status2'; -end; -$$; -alter table migtest_e_basic alter ( status2 nvarchar(127) default null); - --- rename all collisions; --- cannot create unique index "uq_migtest_e_basic_description" on table "migtest_e_basic" with nullable columns; - -insert into migtest_e_user (id) select distinct user_id from migtest_e_basic; -alter table migtest_e_basic add constraint fk_migtest_e_basic_user_id foreign key (user_id) references migtest_e_user (id) on delete restrict on update restrict; -alter table migtest_e_basic alter ( user_id integer); -alter table migtest_e_basic add ( new_string_field nvarchar(255) default 'foo''bar' not null); -alter table migtest_e_basic add ( new_boolean_field boolean default true not null); -update migtest_e_basic set new_boolean_field = old_boolean; - -alter table migtest_e_basic add ( new_boolean_field2 boolean default true not null); -alter table migtest_e_basic add ( progress integer default 0 not null); -alter table migtest_e_basic add constraint ck_migtest_e_basic_progress check ( progress in (0,1,2)); -alter table migtest_e_basic add ( new_integer integer default 42 not null); - -delimiter $$ -do -begin -declare exit handler for sql_error_code 397 begin end; -exec 'alter table migtest_e_basic drop constraint uq_migtest_e_basic_indextest2'; -end; -$$; -delimiter $$ -do -begin -declare exit handler for sql_error_code 397 begin end; -exec 'alter table migtest_e_basic drop constraint uq_migtest_e_basic_indextest6'; -end; -$$; --- cannot create unique index "uq_migtest_e_basic_status_indextest1" on table "migtest_e_basic" with nullable columns; --- cannot create unique index "uq_migtest_e_basic_name" on table "migtest_e_basic" with nullable columns; --- cannot create unique index "uq_migtest_e_basic_indextest4" on table "migtest_e_basic" with nullable columns; --- cannot create unique index "uq_migtest_e_basic_indextest5" on table "migtest_e_basic" with nullable columns; -delimiter $$ -do -begin -declare exit handler for sql_error_code 397 begin end; -exec 'alter table migtest_e_enum drop constraint ck_migtest_e_enum_test_status'; -end; -$$; -comment on column migtest_e_history.test_string is 'Column altered to long now'; -alter table migtest_e_history alter ( test_string bigint); -comment on table migtest_e_history is 'We have history now'; -alter table migtest_e_history2 drop system versioning /* 0 */; - --- NOTE: table has @History - special migration may be necessary -update migtest_e_history2 set test_string = 'unknown' where test_string is null; -alter table migtest_e_history2 alter ( test_string nvarchar(255) default 'unknown' not null); -alter table migtest_e_history2_history alter ( test_string nvarchar(255) default 'unknown' not null); -alter table migtest_e_history2 add system versioning history table migtest_e_history2_history not validated /* 1 */; -alter table migtest_e_history2 drop system versioning /* 2 */; -alter table migtest_e_history2 add ( test_string2 nvarchar(255)); -alter table migtest_e_history2 add ( test_string3 nvarchar(255) default 'unknown' not null); -alter table migtest_e_history2 add ( new_column nvarchar(20)); - -alter table migtest_e_history2_history add ( test_string2 nvarchar(255)); -alter table migtest_e_history2_history add ( test_string3 nvarchar(255) default 'unknown'); -alter table migtest_e_history2_history add ( new_column nvarchar(20)); -alter table migtest_e_history2 add system versioning history table migtest_e_history2_history not validated /* 3 */; -alter table migtest_e_history3 drop system versioning /* 4 */; -alter table migtest_e_history3 add system versioning history table migtest_e_history3_history not validated /* 5 */; -alter table migtest_e_history4 drop system versioning /* 6 */; -alter table migtest_e_history4 alter ( test_number bigint); -alter table migtest_e_history4_history alter ( test_number bigint); -alter table migtest_e_history4 add system versioning history table migtest_e_history4_history not validated /* 7 */; -alter table migtest_e_history5 drop system versioning /* 8 */; -alter table migtest_e_history5 add ( test_boolean boolean default false not null); - -alter table migtest_e_history5_history add ( test_boolean boolean default false); -alter table migtest_e_history5 add system versioning history table migtest_e_history5_history not validated /* 9 */; -alter table migtest_e_history6 drop system versioning /* 10 */; - --- NOTE: table has @History - special migration may be necessary -update migtest_e_history6 set test_number1 = 42 where test_number1 is null; -alter table migtest_e_history6 alter ( test_number1 integer default 42 not null); -alter table migtest_e_history6_history alter ( test_number1 integer default 42 not null); -alter table migtest_e_history6 add system versioning history table migtest_e_history6_history not validated /* 11 */; -alter table migtest_e_history6 drop system versioning /* 12 */; -alter table migtest_e_history6 alter ( test_number2 integer); -alter table migtest_e_history6_history alter ( test_number2 integer); -alter table migtest_e_history6 add system versioning history table migtest_e_history6_history not validated /* 13 */; -alter table migtest_e_softdelete add ( deleted boolean default false not null); - -alter table migtest_oto_child add ( master_id bigint); - --- explicit index "ix_migtest_e_basic_indextest3" for single column "indextest3" of table "migtest_e_basic" is not necessary; --- explicit index "ix_migtest_e_basic_indextest6" for single column "indextest6" of table "migtest_e_basic" is not necessary; -delimiter $$ -do -begin -declare exit handler for sql_error_code 261 begin end; -exec 'drop index ix_migtest_e_basic_indextest1'; -end; -$$; -delimiter $$ -do -begin -declare exit handler for sql_error_code 261 begin end; -exec 'drop index ix_migtest_e_basic_indextest5'; -end; -$$; --- explicit index "ix_migtest_mtm_c_migtest_mtm_m_migtest_mtm_c" for single column "migtest_mtm_c_id" of table "migtest_mtm_c_migtest_mtm_m" is not necessary; -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; - --- explicit index "ix_migtest_mtm_c_migtest_mtm_m_migtest_mtm_m" for single column "migtest_mtm_m_id" of table "migtest_mtm_c_migtest_mtm_m" is not necessary; -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; - --- explicit index "ix_migtest_mtm_m_migtest_mtm_c_migtest_mtm_m" for single column "migtest_mtm_m_id" of table "migtest_mtm_m_migtest_mtm_c" is not necessary; -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; - --- explicit index "ix_migtest_mtm_m_migtest_mtm_c_migtest_mtm_c" for single column "migtest_mtm_c_id" of table "migtest_mtm_m_migtest_mtm_c" is not necessary; -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; - --- explicit index "ix_migtest_ckey_parent_assoc_id" for single column "assoc_id" of table "migtest_ckey_parent" is not necessary; -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; - -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; - -create column table migtest_e_history_history ( - id integer, - test_string bigint, - sys_period_start timestamp, - sys_period_end timestamp -); -alter table migtest_e_history add ( - sys_period_start TIMESTAMP NOT NULL GENERATED ALWAYS AS ROW START, - sys_period_end TIMESTAMP NOT NULL GENERATED ALWAYS AS ROW END -); -alter table migtest_e_history add period for system_time(sys_period_start,sys_period_end); -alter table migtest_e_history add system versioning history table migtest_e_history_history; diff --git a/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/hana/1.2__dropsFor_1.1.sql b/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/hana/1.2__dropsFor_1.1.sql deleted file mode 100644 index a69417f3e..000000000 --- a/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/hana/1.2__dropsFor_1.1.sql +++ /dev/null @@ -1,19 +0,0 @@ --- Migrationscripts for ebean unittest --- apply changes -CALL usp_ebean_drop_column('migtest_e_basic', 'old_boolean'); - -CALL usp_ebean_drop_column('migtest_e_basic', 'old_boolean2'); - -CALL usp_ebean_drop_column('migtest_e_basic', 'eref_id'); - -alter table migtest_e_history2 drop system versioning /* 0 */; -CALL usp_ebean_drop_column('migtest_e_history2', 'obsolete_string1'); - -CALL usp_ebean_drop_column('migtest_e_history2_history', 'obsolete_string1'); -alter table migtest_e_history2 add system versioning history table migtest_e_history2_history not validated /* 1 */; -alter table migtest_e_history2 drop system versioning /* 2 */; -CALL usp_ebean_drop_column('migtest_e_history2', 'obsolete_string2'); - -CALL usp_ebean_drop_column('migtest_e_history2_history', 'obsolete_string2'); -alter table migtest_e_history2 add system versioning history table migtest_e_history2_history not validated /* 3 */; -drop table migtest_e_ref cascade; diff --git a/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/hana/1.3.sql b/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/hana/1.3.sql deleted file mode 100644 index 9e3ba6f9f..000000000 --- a/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/hana/1.3.sql +++ /dev/null @@ -1,141 +0,0 @@ --- Migrationscripts for ebean unittest --- apply changes -create column table migtest_e_ref ( - id integer generated by default as identity not null, - name nvarchar(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 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 on update restrict; -alter table migtest_fk_none drop constraint fk_migtest_fk_none_one_id; -alter table migtest_fk_none_via_join drop constraint fk_migtest_fk_none_via_join_one_id; -alter table migtest_fk_set_null drop constraint fk_migtest_fk_set_null_one_id; -alter table migtest_fk_set_null add constraint fk_migtest_fk_set_null_one_id foreign key (one_id) references migtest_fk_one (id) on delete set null on update restrict; -delimiter $$ -do -begin -declare exit handler for sql_error_code 397 begin end; -exec 'alter table migtest_e_basic drop constraint ck_migtest_e_basic_status'; -end; -$$; -alter table migtest_e_basic alter ( status nvarchar(1) default null); -alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I')); - -update migtest_e_basic set status2 = 'N' where status2 is null; -delimiter $$ -do -begin -declare exit handler for sql_error_code 397 begin end; -exec 'alter table migtest_e_basic drop constraint ck_migtest_e_basic_status2'; -end; -$$; -alter table migtest_e_basic alter ( status2 nclob default 'N' not null); -alter table migtest_e_basic alter ( status2 nvarchar(1) default 'N' not null); -alter table migtest_e_basic add constraint ck_migtest_e_basic_status2 check ( status2 in ('N','A','I')); -delimiter $$ -do -begin -declare exit handler for sql_error_code 397 begin end; -exec 'alter table migtest_e_basic drop constraint uq_migtest_e_basic_description'; -end; -$$; - -update migtest_e_basic set user_id = 23 where user_id is null; -alter table migtest_e_basic drop constraint fk_migtest_e_basic_user_id; -alter table migtest_e_basic alter ( user_id integer default 23 not null); -alter table migtest_e_basic add ( old_boolean boolean default false not null); -alter table migtest_e_basic add ( old_boolean2 boolean); -alter table migtest_e_basic add ( eref_id integer); - -delimiter $$ -do -begin -declare exit handler for sql_error_code 397 begin end; -exec 'alter table migtest_e_basic drop constraint uq_migtest_e_basic_status_indextest1'; -end; -$$; -delimiter $$ -do -begin -declare exit handler for sql_error_code 397 begin end; -exec 'alter table migtest_e_basic drop constraint uq_migtest_e_basic_name'; -end; -$$; -delimiter $$ -do -begin -declare exit handler for sql_error_code 397 begin end; -exec 'alter table migtest_e_basic drop constraint uq_migtest_e_basic_indextest4'; -end; -$$; -delimiter $$ -do -begin -declare exit handler for sql_error_code 397 begin end; -exec 'alter table migtest_e_basic drop constraint uq_migtest_e_basic_indextest5'; -end; -$$; --- cannot create unique index "uq_migtest_e_basic_indextest2" on table "migtest_e_basic" with nullable columns; --- cannot create unique index "uq_migtest_e_basic_indextest6" on table "migtest_e_basic" with nullable columns; -delimiter $$ -do -begin -declare exit handler for sql_error_code 397 begin end; -exec 'alter table migtest_e_enum drop constraint ck_migtest_e_enum_test_status'; -end; -$$; -alter table migtest_e_enum add constraint ck_migtest_e_enum_test_status check ( test_status in ('N','A','I')); -comment on column migtest_e_history.test_string is ''; -comment on table migtest_e_history is ''; -alter table migtest_e_history2 drop system versioning /* 0 */; -alter table migtest_e_history2 alter ( test_string nvarchar(255) default null); -alter table migtest_e_history2_history alter ( test_string nvarchar(255) default null); -alter table migtest_e_history2 add system versioning history table migtest_e_history2_history not validated /* 1 */; -alter table migtest_e_history2 drop system versioning /* 2 */; -alter table migtest_e_history2 add ( obsolete_string1 nvarchar(255)); -alter table migtest_e_history2 add ( obsolete_string2 nvarchar(255)); - -alter table migtest_e_history2_history add ( obsolete_string1 nvarchar(255)); -alter table migtest_e_history2_history add ( obsolete_string2 nvarchar(255)); -alter table migtest_e_history2 add system versioning history table migtest_e_history2_history not validated /* 3 */; -alter table migtest_e_history3 drop system versioning /* 4 */; -alter table migtest_e_history3 add system versioning history table migtest_e_history3_history not validated /* 5 */; -alter table migtest_e_history4 drop system versioning /* 6 */; -alter table migtest_e_history4 alter ( test_number decimal ); -alter table migtest_e_history4 alter ( test_number integer); -alter table migtest_e_history4_history alter ( test_number decimal ); -alter table migtest_e_history4_history alter ( test_number integer); -alter table migtest_e_history4 add system versioning history table migtest_e_history4_history not validated /* 7 */; -alter table migtest_e_history6 drop system versioning /* 8 */; -alter table migtest_e_history6 alter ( test_number1 integer default null); -alter table migtest_e_history6_history alter ( test_number1 integer default null); -alter table migtest_e_history6 add system versioning history table migtest_e_history6_history not validated /* 9 */; -alter table migtest_e_history6 drop system versioning /* 10 */; - --- NOTE: table has @History - special migration may be necessary -update migtest_e_history6 set test_number2 = 7 where test_number2 is null; -alter table migtest_e_history6 alter ( test_number2 integer default 7 not null); -alter table migtest_e_history6_history alter ( test_number2 integer default 7 not null); -alter table migtest_e_history6 add system versioning history table migtest_e_history6_history not validated /* 11 */; --- explicit index "ix_migtest_e_basic_indextest1" for single column "indextest1" of table "migtest_e_basic" is not necessary; --- explicit index "ix_migtest_e_basic_indextest5" for single column "indextest5" of table "migtest_e_basic" is not necessary; -delimiter $$ -do -begin -declare exit handler for sql_error_code 261 begin end; -exec 'drop index ix_migtest_e_basic_indextest3'; -end; -$$; -delimiter $$ -do -begin -declare exit handler for sql_error_code 261 begin end; -exec 'drop index ix_migtest_e_basic_indextest6'; -end; -$$; --- explicit index "ix_migtest_e_basic_eref_id" for single column "eref_id" of table "migtest_e_basic" is not necessary; -alter table migtest_e_basic add constraint fk_migtest_e_basic_eref_id foreign key (eref_id) references migtest_e_ref (id) on delete restrict on update restrict; - diff --git a/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/hana/1.4__dropsFor_1.3.sql b/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/hana/1.4__dropsFor_1.3.sql deleted file mode 100644 index fe5d6371f..000000000 --- a/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/hana/1.4__dropsFor_1.3.sql +++ /dev/null @@ -1,51 +0,0 @@ --- Migrationscripts for ebean unittest --- drop dependencies -alter table migtest_e_history drop system versioning; -alter table migtest_e_history drop period for system_time; -alter table migtest_e_history drop (sys_period_start,sys_period_end); -drop table migtest_e_history_history cascade; - --- apply changes -CALL usp_ebean_drop_column('migtest_ckey_detail', 'one_key'); - -CALL usp_ebean_drop_column('migtest_ckey_detail', 'two_key'); - -CALL usp_ebean_drop_column('migtest_ckey_parent', 'assoc_id'); - -CALL usp_ebean_drop_column('migtest_e_basic', 'new_string_field'); - -CALL usp_ebean_drop_column('migtest_e_basic', 'new_boolean_field'); - -CALL usp_ebean_drop_column('migtest_e_basic', 'new_boolean_field2'); - -CALL usp_ebean_drop_column('migtest_e_basic', 'progress'); - -CALL usp_ebean_drop_column('migtest_e_basic', 'new_integer'); - -alter table migtest_e_history2 drop system versioning /* 0 */; -CALL usp_ebean_drop_column('migtest_e_history2', 'test_string2'); - -CALL usp_ebean_drop_column('migtest_e_history2_history', 'test_string2'); -alter table migtest_e_history2 add system versioning history table migtest_e_history2_history not validated /* 1 */; -alter table migtest_e_history2 drop system versioning /* 2 */; -CALL usp_ebean_drop_column('migtest_e_history2', 'test_string3'); - -CALL usp_ebean_drop_column('migtest_e_history2_history', 'test_string3'); -alter table migtest_e_history2 add system versioning history table migtest_e_history2_history not validated /* 3 */; -alter table migtest_e_history2 drop system versioning /* 4 */; -CALL usp_ebean_drop_column('migtest_e_history2', 'new_column'); - -CALL usp_ebean_drop_column('migtest_e_history2_history', 'new_column'); -alter table migtest_e_history2 add system versioning history table migtest_e_history2_history not validated /* 5 */; -alter table migtest_e_history5 drop system versioning /* 6 */; -CALL usp_ebean_drop_column('migtest_e_history5', 'test_boolean'); - -CALL usp_ebean_drop_column('migtest_e_history5_history', 'test_boolean'); -alter table migtest_e_history5 add system versioning history table migtest_e_history5_history not validated /* 7 */; -CALL usp_ebean_drop_column('migtest_e_softdelete', 'deleted'); - -CALL usp_ebean_drop_column('migtest_oto_child', 'master_id'); - -drop table migtest_e_user cascade; -drop table migtest_mtm_c_migtest_mtm_m cascade; -drop table migtest_mtm_m_migtest_mtm_c cascade; diff --git a/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/hana/idx_hana.migrations b/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/hana/idx_hana.migrations deleted file mode 100644 index 984c4bb50..000000000 --- a/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/hana/idx_hana.migrations +++ /dev/null @@ -1,6 +0,0 @@ --1536923954, 1.0__initial.sql -1039838314, 1.1.sql -562867593, 1.2__dropsFor_1.1.sql -1566488731, 1.3.sql -1030652294, 1.4__dropsFor_1.3.sql - diff --git a/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/hsqldb/1.3.sql b/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/hsqldb/1.3.sql deleted file mode 100644 index f7f307719..000000000 --- a/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/hsqldb/1.3.sql +++ /dev/null @@ -1,67 +0,0 @@ --- Migrationscripts for ebean unittest --- 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 restrict; -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; -alter table migtest_fk_set_null drop constraint if exists fk_migtest_fk_set_null_one_id; -alter table migtest_fk_set_null add constraint fk_migtest_fk_set_null_one_id foreign key (one_id) references migtest_fk_one (id) on delete set null on update restrict; -alter table migtest_e_basic drop constraint if exists ck_migtest_e_basic_status; -alter table migtest_e_basic alter column status drop default; -alter table migtest_e_basic alter column status set null; -alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I')); - -update migtest_e_basic set status2 = 'N' where status2 is null; -alter table migtest_e_basic drop constraint if exists ck_migtest_e_basic_status2; -alter table migtest_e_basic alter column status2 varchar(1); -alter table migtest_e_basic alter column status2 set default 'N'; -alter table migtest_e_basic alter column status2 set not null; -alter table migtest_e_basic add constraint ck_migtest_e_basic_status2 check ( status2 in ('N','A','I')); -alter table migtest_e_basic drop constraint uq_migtest_e_basic_description; - -update migtest_e_basic set user_id = 23 where user_id is null; -alter table migtest_e_basic drop constraint if exists fk_migtest_e_basic_user_id; -alter table migtest_e_basic alter column user_id set default 23; -alter table migtest_e_basic alter column user_id set not null; -alter table migtest_e_basic add column old_boolean boolean default false not null; -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; -alter table migtest_e_basic add constraint uq_migtest_e_basic_indextest2 unique (indextest2); -alter table migtest_e_basic add constraint uq_migtest_e_basic_indextest6 unique (indextest6); -alter table migtest_e_enum drop constraint if exists ck_migtest_e_enum_test_status; -alter table migtest_e_enum add constraint ck_migtest_e_enum_test_status check ( test_status in ('N','A','I')); -comment on column migtest_e_history.test_string is ''; -comment on table migtest_e_history is ''; -alter table migtest_e_history2 alter column test_string drop default; -alter table migtest_e_history2 alter column test_string set null; -alter table migtest_e_history2 add column obsolete_string1 varchar(255); -alter table migtest_e_history2 add column obsolete_string2 varchar(255); - -alter table migtest_e_history4 alter column test_number integer; -alter table migtest_e_history6 alter column test_number1 drop default; -alter table migtest_e_history6 alter column test_number1 set null; - --- NOTE: table has @History - special migration may be necessary -update migtest_e_history6 set test_number2 = 7 where test_number2 is null; -alter table migtest_e_history6 alter column test_number2 set default 7; -alter table migtest_e_history6 alter column test_number2 set not null; -create index ix_migtest_e_basic_indextest1 on migtest_e_basic (indextest1); -create index ix_migtest_e_basic_indextest5 on migtest_e_basic (indextest5); -drop index if exists ix_migtest_e_basic_indextest3; -drop index if exists ix_migtest_e_basic_indextest6; -create index ix_migtest_e_basic_eref_id on migtest_e_basic (eref_id); -alter table migtest_e_basic add constraint fk_migtest_e_basic_eref_id foreign key (eref_id) references migtest_e_ref (id) on delete restrict on update restrict; - diff --git a/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/hsqldb/idx_hsqldb.migrations b/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/hsqldb/idx_hsqldb.migrations deleted file mode 100644 index ee5e2bd41..000000000 --- a/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/hsqldb/idx_hsqldb.migrations +++ /dev/null @@ -1,6 +0,0 @@ -2097980375, 1.0__initial.sql -2086418403, 1.1.sql --1462014216, 1.2__dropsFor_1.1.sql --2039573992, 1.3.sql -2106151405, 1.4__dropsFor_1.3.sql - diff --git a/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/model/1.0__initial.model.xml b/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/model/1.0__initial.model.xml deleted file mode 100644 index 68661ce4c..000000000 --- a/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/model/1.0__initial.model.xml +++ /dev/null @@ -1,122 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/model/1.1.model.xml b/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/model/1.1.model.xml deleted file mode 100644 index e165e05d8..000000000 --- a/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/model/1.1.model.xml +++ /dev/null @@ -1,104 +0,0 @@ - - - - - - - - - - - - - - - - - - - - -- rename all collisions - - - - - insert into migtest_e_user (id) select distinct user_id from migtest_e_basic - - - - - - - update ${table} set ${column} = old_boolean - - - - - - - - - - - - - - - - - alter table ${table} alter column ${column} TYPE bigint USING (${column}::integer) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/model/1.2__dropsFor_1.1.model.xml b/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/model/1.2__dropsFor_1.1.model.xml deleted file mode 100644 index 59bf48a8f..000000000 --- a/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/model/1.2__dropsFor_1.1.model.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/model/1.3.model.xml b/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/model/1.3.model.xml deleted file mode 100644 index 77171547d..000000000 --- a/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/model/1.3.model.xml +++ /dev/null @@ -1,73 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/model/1.4__dropsFor_1.3.model.xml b/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/model/1.4__dropsFor_1.3.model.xml deleted file mode 100644 index a1cc6616a..000000000 --- a/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/model/1.4__dropsFor_1.3.model.xml +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/mysql/1.0__initial.sql b/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/mysql/1.0__initial.sql deleted file mode 100644 index ce464c473..000000000 --- a/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/mysql/1.0__initial.sql +++ /dev/null @@ -1,269 +0,0 @@ --- 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 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, - constraint pk_migtest_fk_cascade primary key (id) -); - -create table migtest_fk_cascade_one ( - id bigint auto_increment not null, - constraint pk_migtest_fk_cascade_one primary key (id) -); - -create table migtest_fk_none ( - id bigint auto_increment not null, - one_id bigint, - constraint pk_migtest_fk_none primary key (id) -); - -create table migtest_fk_none_via_join ( - id bigint auto_increment not null, - one_id bigint, - constraint pk_migtest_fk_none_via_join primary key (id) -); - -create table migtest_fk_one ( - id bigint auto_increment not null, - constraint pk_migtest_fk_one primary key (id) -); - -create table migtest_fk_set_null ( - id bigint auto_increment not null, - one_id bigint, - constraint pk_migtest_fk_set_null primary key (id) -); - -create table migtest_e_basic ( - id integer auto_increment not null, - status varchar(1), - status2 varchar(1) default 'N' not null, - name varchar(127), - description varchar(127), - some_date datetime(6), - old_boolean tinyint(1) default 0 not null, - old_boolean2 tinyint(1), - eref_id integer, - indextest1 varchar(127), - indextest2 varchar(127), - indextest3 varchar(127), - indextest4 varchar(127), - indextest5 varchar(127), - indextest6 varchar(127), - user_id integer not null, - constraint uq_migtest_e_basic_indextest2 unique (indextest2), - constraint uq_migtest_e_basic_indextest6 unique (indextest6), - constraint pk_migtest_e_basic primary key (id) -); - -create table migtest_e_enum ( - id integer auto_increment not null, - test_status varchar(1), - constraint pk_migtest_e_enum primary key (id) -); - -create table migtest_e_history ( - id integer auto_increment not null, - test_string varchar(255), - constraint pk_migtest_e_history primary key (id) -); - -create table migtest_e_history2 ( - id integer auto_increment not null, - test_string varchar(255), - obsolete_string1 varchar(255), - obsolete_string2 varchar(255), - constraint pk_migtest_e_history2 primary key (id) -); - -create table migtest_e_history3 ( - id integer auto_increment not null, - test_string varchar(255), - constraint pk_migtest_e_history3 primary key (id) -); - -create table migtest_e_history4 ( - id integer auto_increment not null, - test_number integer, - constraint pk_migtest_e_history4 primary key (id) -); - -create table migtest_e_history5 ( - id integer auto_increment not null, - test_number integer, - constraint pk_migtest_e_history5 primary key (id) -); - -create table migtest_e_history6 ( - id integer auto_increment not null, - test_number1 integer, - test_number2 integer not null, - constraint pk_migtest_e_history6 primary key (id) -); - -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) -); - -create table migtest_e_softdelete ( - id integer auto_increment not null, - test_string varchar(255), - 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); -create index ix_migtest_fk_cascade_one_id on 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 restrict; - -create index ix_migtest_fk_set_null_one_id on migtest_fk_set_null (one_id); -alter table migtest_fk_set_null add constraint fk_migtest_fk_set_null_one_id foreign key (one_id) references migtest_fk_one (id) on delete set null on update restrict; - -create index ix_migtest_e_basic_eref_id on migtest_e_basic (eref_id); -alter table migtest_e_basic add constraint fk_migtest_e_basic_eref_id foreign key (eref_id) references migtest_e_ref (id) on delete restrict on update restrict; - -alter table migtest_e_history2 add column sys_period_start datetime(6) default now(6); -alter table migtest_e_history2 add column sys_period_end datetime(6); -create table migtest_e_history2_history( - id integer, - test_string varchar(255), - obsolete_string1 varchar(255), - obsolete_string2 varchar(255), - sys_period_start datetime(6), - sys_period_end datetime(6) -); -create view migtest_e_history2_with_history as select * from migtest_e_history2 union all select * from migtest_e_history2_history; - -alter table migtest_e_history3 add column sys_period_start datetime(6) default now(6); -alter table migtest_e_history3 add column sys_period_end datetime(6); -create table migtest_e_history3_history( - id integer, - test_string varchar(255), - sys_period_start datetime(6), - sys_period_end datetime(6) -); -create view migtest_e_history3_with_history as select * from migtest_e_history3 union all select * from migtest_e_history3_history; - -alter table migtest_e_history4 add column sys_period_start datetime(6) default now(6); -alter table migtest_e_history4 add column sys_period_end datetime(6); -create table migtest_e_history4_history( - id integer, - test_number integer, - sys_period_start datetime(6), - sys_period_end datetime(6) -); -create view migtest_e_history4_with_history as select * from migtest_e_history4 union all select * from migtest_e_history4_history; - -alter table migtest_e_history5 add column sys_period_start datetime(6) default now(6); -alter table migtest_e_history5 add column sys_period_end datetime(6); -create table migtest_e_history5_history( - id integer, - test_number integer, - sys_period_start datetime(6), - sys_period_end datetime(6) -); -create view migtest_e_history5_with_history as select * from migtest_e_history5 union all select * from migtest_e_history5_history; - -alter table migtest_e_history6 add column sys_period_start datetime(6) default now(6); -alter table migtest_e_history6 add column sys_period_end datetime(6); -create table migtest_e_history6_history( - id integer, - test_number1 integer, - test_number2 integer, - sys_period_start datetime(6), - sys_period_end datetime(6) -); -create view migtest_e_history6_with_history as select * from migtest_e_history6 union all select * from migtest_e_history6_history; - -delimiter $$ -create trigger migtest_e_history2_history_upd before update on migtest_e_history2 for each row begin - insert into migtest_e_history2_history (sys_period_start,sys_period_end,id, test_string, obsolete_string2) values (OLD.sys_period_start, now(6),OLD.id, OLD.test_string, OLD.obsolete_string2); - set NEW.sys_period_start = now(6); -end$$ -delimiter $$ -create trigger migtest_e_history2_history_del before delete on migtest_e_history2 for each row begin - insert into migtest_e_history2_history (sys_period_start,sys_period_end,id, test_string, obsolete_string2) values (OLD.sys_period_start, now(6),OLD.id, OLD.test_string, OLD.obsolete_string2); -end$$ -delimiter $$ -create trigger migtest_e_history3_history_upd before update on migtest_e_history3 for each row begin - insert into migtest_e_history3_history (sys_period_start,sys_period_end,id, test_string) values (OLD.sys_period_start, now(6),OLD.id, OLD.test_string); - set NEW.sys_period_start = now(6); -end$$ -delimiter $$ -create trigger migtest_e_history3_history_del before delete on migtest_e_history3 for each row begin - insert into migtest_e_history3_history (sys_period_start,sys_period_end,id, test_string) values (OLD.sys_period_start, now(6),OLD.id, OLD.test_string); -end$$ -delimiter $$ -create trigger migtest_e_history4_history_upd before update on migtest_e_history4 for each row begin - insert into migtest_e_history4_history (sys_period_start,sys_period_end,id, test_number) values (OLD.sys_period_start, now(6),OLD.id, OLD.test_number); - set NEW.sys_period_start = now(6); -end$$ -delimiter $$ -create trigger migtest_e_history4_history_del before delete on migtest_e_history4 for each row begin - insert into migtest_e_history4_history (sys_period_start,sys_period_end,id, test_number) values (OLD.sys_period_start, now(6),OLD.id, OLD.test_number); -end$$ -delimiter $$ -create trigger migtest_e_history5_history_upd before update on migtest_e_history5 for each row begin - insert into migtest_e_history5_history (sys_period_start,sys_period_end,id, test_number) values (OLD.sys_period_start, now(6),OLD.id, OLD.test_number); - set NEW.sys_period_start = now(6); -end$$ -delimiter $$ -create trigger migtest_e_history5_history_del before delete on migtest_e_history5 for each row begin - insert into migtest_e_history5_history (sys_period_start,sys_period_end,id, test_number) values (OLD.sys_period_start, now(6),OLD.id, OLD.test_number); -end$$ -delimiter $$ -create trigger migtest_e_history6_history_upd before update on migtest_e_history6 for each row begin - insert into migtest_e_history6_history (sys_period_start,sys_period_end,id, test_number1, test_number2) values (OLD.sys_period_start, now(6),OLD.id, OLD.test_number1, OLD.test_number2); - set NEW.sys_period_start = now(6); -end$$ -delimiter $$ -create trigger migtest_e_history6_history_del before delete on migtest_e_history6 for each row begin - insert into migtest_e_history6_history (sys_period_start,sys_period_end,id, test_number1, test_number2) values (OLD.sys_period_start, now(6),OLD.id, OLD.test_number1, OLD.test_number2); -end$$ diff --git a/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/mysql/1.1.sql b/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/mysql/1.1.sql deleted file mode 100644 index e3e5bf26a..000000000 --- a/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/mysql/1.1.sql +++ /dev/null @@ -1,191 +0,0 @@ --- Migrationscripts for ebean unittest --- drop dependencies -drop view if exists migtest_e_history2_with_history; -drop view if exists migtest_e_history3_with_history; -drop view if exists migtest_e_history4_with_history; -drop view if exists migtest_e_history5_with_history; - --- apply changes -create table migtest_e_user ( - id integer auto_increment not null, - 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 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; -alter table migtest_fk_none_via_join add constraint fk_migtest_fk_none_via_join_one_id foreign key (one_id) references migtest_fk_one (id) on delete restrict on update restrict; -alter table migtest_fk_set_null drop foreign key fk_migtest_fk_set_null_one_id; -alter table migtest_fk_set_null add constraint fk_migtest_fk_set_null_one_id foreign key (one_id) references migtest_fk_one (id) on delete restrict on update restrict; - -update migtest_e_basic set status = 'A' where status is null; -alter table migtest_e_basic alter status set default 'A'; -alter table migtest_e_basic modify status varchar(1) not null; -alter table migtest_e_basic alter status2 drop default; -alter table migtest_e_basic modify status2 varchar(127); - --- rename all collisions; -alter table migtest_e_basic add constraint uq_migtest_e_basic_description unique (description); - -insert into migtest_e_user (id) select distinct user_id from migtest_e_basic; -alter table migtest_e_basic add constraint fk_migtest_e_basic_user_id foreign key (user_id) references migtest_e_user (id) on delete restrict on update restrict; -alter table migtest_e_basic modify user_id integer; -alter table migtest_e_basic add column new_string_field varchar(255) default 'foo''bar' not null; -alter table migtest_e_basic add column new_boolean_field tinyint(1) default 1 not null; -update migtest_e_basic set new_boolean_field = old_boolean; - -alter table migtest_e_basic add column new_boolean_field2 tinyint(1) default 1 not null; -alter table migtest_e_basic add column progress integer default 0 not null; -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); -alter table migtest_e_history modify test_string bigint; -alter table migtest_e_history comment = 'We have history now'; - --- NOTE: table has @History - special migration may be necessary -update migtest_e_history2 set test_string = 'unknown' where test_string is null; -alter table migtest_e_history2 alter test_string set default 'unknown'; -alter table migtest_e_history2 modify test_string varchar(255) not null; -alter table migtest_e_history2 add column test_string2 varchar(255); -alter table migtest_e_history2 add column test_string3 varchar(255) default 'unknown' not null; -alter table migtest_e_history2 add column new_column varchar(20); -alter table migtest_e_history2_history add column test_string2 varchar(255); -alter table migtest_e_history2_history add column test_string3 varchar(255) default 'unknown'; -alter table migtest_e_history2_history add column new_column varchar(20); - -alter table migtest_e_history4 modify test_number bigint; -alter table migtest_e_history4_history modify test_number bigint; -alter table migtest_e_history5 add column test_boolean tinyint(1) default 0 not null; -alter table migtest_e_history5_history add column test_boolean tinyint(1) default 0; - - --- NOTE: table has @History - special migration may be necessary -update migtest_e_history6 set test_number1 = 42 where test_number1 is null; -alter table migtest_e_history6 alter test_number1 set default 42; -alter table migtest_e_history6 modify test_number1 integer not null; -alter table migtest_e_history6 modify test_number2 integer; -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; -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_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_m on migtest_mtm_c_migtest_mtm_m (migtest_mtm_m_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_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_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_c on migtest_mtm_m_migtest_mtm_c (migtest_mtm_c_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_ckey_parent_assoc_id on migtest_ckey_parent (assoc_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; - -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( - id integer, - test_string bigint, - sys_period_start datetime(6), - sys_period_end datetime(6) -); -create view migtest_e_history_with_history as select * from migtest_e_history union all select * from migtest_e_history_history; - -create view migtest_e_history2_with_history as select * from migtest_e_history2 union all select * from migtest_e_history2_history; - -create view migtest_e_history3_with_history as select * from migtest_e_history3 union all select * from migtest_e_history3_history; - -create view migtest_e_history4_with_history as select * from migtest_e_history4 union all select * from migtest_e_history4_history; - -create view migtest_e_history5_with_history as select * from migtest_e_history5 union all select * from migtest_e_history5_history; - -delimiter $$ -create trigger migtest_e_history_history_upd before update on migtest_e_history for each row begin - insert into migtest_e_history_history (sys_period_start,sys_period_end,id, test_string) values (OLD.sys_period_start, now(6),OLD.id, OLD.test_string); - set NEW.sys_period_start = now(6); -end$$ -delimiter $$ -create trigger migtest_e_history_history_del before delete on migtest_e_history for each row begin - insert into migtest_e_history_history (sys_period_start,sys_period_end,id, test_string) values (OLD.sys_period_start, now(6),OLD.id, OLD.test_string); -end$$ -lock tables migtest_e_history2 write, migtest_e_history3 write, migtest_e_history4 write, migtest_e_history5 write; --- changes: [add test_string2, add test_string3, add new_column] -drop trigger migtest_e_history2_history_upd; -drop trigger migtest_e_history2_history_del; -delimiter $$ -create trigger migtest_e_history2_history_upd before update on migtest_e_history2 for each row begin - insert into migtest_e_history2_history (sys_period_start,sys_period_end,id, test_string, test_string3, new_column, obsolete_string1, obsolete_string2) values (OLD.sys_period_start, now(6),OLD.id, OLD.test_string, OLD.test_string3, OLD.new_column, OLD.obsolete_string1, OLD.obsolete_string2); - set NEW.sys_period_start = now(6); -end$$ -delimiter $$ -create trigger migtest_e_history2_history_del before delete on migtest_e_history2 for each row begin - insert into migtest_e_history2_history (sys_period_start,sys_period_end,id, test_string, test_string3, new_column, obsolete_string1, obsolete_string2) values (OLD.sys_period_start, now(6),OLD.id, OLD.test_string, OLD.test_string3, OLD.new_column, OLD.obsolete_string1, OLD.obsolete_string2); -end$$ --- changes: [exclude test_string] -drop trigger migtest_e_history3_history_upd; -drop trigger migtest_e_history3_history_del; -delimiter $$ -create trigger migtest_e_history3_history_upd before update on migtest_e_history3 for each row begin - insert into migtest_e_history3_history (sys_period_start,sys_period_end,id) values (OLD.sys_period_start, now(6),OLD.id); - set NEW.sys_period_start = now(6); -end$$ -delimiter $$ -create trigger migtest_e_history3_history_del before delete on migtest_e_history3 for each row begin - insert into migtest_e_history3_history (sys_period_start,sys_period_end,id) values (OLD.sys_period_start, now(6),OLD.id); -end$$ --- changes: [alter test_number] -drop trigger migtest_e_history4_history_upd; -drop trigger migtest_e_history4_history_del; -delimiter $$ -create trigger migtest_e_history4_history_upd before update on migtest_e_history4 for each row begin - insert into migtest_e_history4_history (sys_period_start,sys_period_end,id, test_number) values (OLD.sys_period_start, now(6),OLD.id, OLD.test_number); - set NEW.sys_period_start = now(6); -end$$ -delimiter $$ -create trigger migtest_e_history4_history_del before delete on migtest_e_history4 for each row begin - insert into migtest_e_history4_history (sys_period_start,sys_period_end,id, test_number) values (OLD.sys_period_start, now(6),OLD.id, OLD.test_number); -end$$ --- changes: [add test_boolean] -drop trigger migtest_e_history5_history_upd; -drop trigger migtest_e_history5_history_del; -delimiter $$ -create trigger migtest_e_history5_history_upd before update on migtest_e_history5 for each row begin - insert into migtest_e_history5_history (sys_period_start,sys_period_end,id, test_number, test_boolean) values (OLD.sys_period_start, now(6),OLD.id, OLD.test_number, OLD.test_boolean); - set NEW.sys_period_start = now(6); -end$$ -delimiter $$ -create trigger migtest_e_history5_history_del before delete on migtest_e_history5 for each row begin - insert into migtest_e_history5_history (sys_period_start,sys_period_end,id, test_number, test_boolean) values (OLD.sys_period_start, now(6),OLD.id, OLD.test_number, OLD.test_boolean); -end$$ -unlock tables; diff --git a/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/mysql/1.2__dropsFor_1.1.sql b/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/mysql/1.2__dropsFor_1.1.sql deleted file mode 100644 index b3317f701..000000000 --- a/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/mysql/1.2__dropsFor_1.1.sql +++ /dev/null @@ -1,34 +0,0 @@ --- Migrationscripts for ebean unittest --- drop dependencies -drop view if exists migtest_e_history2_with_history; - --- apply changes -alter table migtest_e_basic drop column old_boolean; - -alter table migtest_e_basic drop column old_boolean2; - -alter table migtest_e_basic drop column eref_id; - -alter table migtest_e_history2 drop column obsolete_string1; -alter table migtest_e_history2_history drop column obsolete_string1; - -alter table migtest_e_history2 drop column obsolete_string2; -alter table migtest_e_history2_history drop column obsolete_string2; - -drop table if exists migtest_e_ref; -create view migtest_e_history2_with_history as select * from migtest_e_history2 union all select * from migtest_e_history2_history; - -lock tables migtest_e_history2 write; --- changes: [drop obsolete_string1, drop obsolete_string2] -drop trigger migtest_e_history2_history_upd; -drop trigger migtest_e_history2_history_del; -delimiter $$ -create trigger migtest_e_history2_history_upd before update on migtest_e_history2 for each row begin - insert into migtest_e_history2_history (sys_period_start,sys_period_end,id, test_string, test_string3, new_column) values (OLD.sys_period_start, now(6),OLD.id, OLD.test_string, OLD.test_string3, OLD.new_column); - set NEW.sys_period_start = now(6); -end$$ -delimiter $$ -create trigger migtest_e_history2_history_del before delete on migtest_e_history2 for each row begin - insert into migtest_e_history2_history (sys_period_start,sys_period_end,id, test_string, test_string3, new_column) values (OLD.sys_period_start, now(6),OLD.id, OLD.test_string, OLD.test_string3, OLD.new_column); -end$$ -unlock tables; diff --git a/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/mysql/1.4__dropsFor_1.3.sql b/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/mysql/1.4__dropsFor_1.3.sql deleted file mode 100644 index ff8fa50d0..000000000 --- a/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/mysql/1.4__dropsFor_1.3.sql +++ /dev/null @@ -1,78 +0,0 @@ --- Migrationscripts for ebean unittest --- drop dependencies -drop trigger migtest_e_history_history_upd; -drop trigger migtest_e_history_history_del; -drop view migtest_e_history_with_history; -alter table migtest_e_history drop column sys_period_start; -alter table migtest_e_history drop column sys_period_end; -drop table migtest_e_history_history; - -drop view if exists migtest_e_history2_with_history; -drop view if exists migtest_e_history5_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; - -alter table migtest_e_basic drop column new_boolean_field2; - -alter table migtest_e_basic drop column progress; - -alter table migtest_e_basic drop column new_integer; - -alter table migtest_e_history2 drop column test_string2; -alter table migtest_e_history2_history drop column test_string2; - -alter table migtest_e_history2 drop column test_string3; -alter table migtest_e_history2_history drop column test_string3; - -alter table migtest_e_history2 drop column new_column; -alter table migtest_e_history2_history drop column new_column; - -alter table migtest_e_history5 drop column test_boolean; -alter table migtest_e_history5_history drop column test_boolean; - -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; -create view migtest_e_history2_with_history as select * from migtest_e_history2 union all select * from migtest_e_history2_history; - -create view migtest_e_history5_with_history as select * from migtest_e_history5 union all select * from migtest_e_history5_history; - -lock tables migtest_e_history2 write, migtest_e_history5 write; --- changes: [drop test_string2, drop test_string3, drop new_column] -drop trigger migtest_e_history2_history_upd; -drop trigger migtest_e_history2_history_del; -delimiter $$ -create trigger migtest_e_history2_history_upd before update on migtest_e_history2 for each row begin - insert into migtest_e_history2_history (sys_period_start,sys_period_end,id, test_string, obsolete_string2) values (OLD.sys_period_start, now(6),OLD.id, OLD.test_string, OLD.obsolete_string2); - set NEW.sys_period_start = now(6); -end$$ -delimiter $$ -create trigger migtest_e_history2_history_del before delete on migtest_e_history2 for each row begin - insert into migtest_e_history2_history (sys_period_start,sys_period_end,id, test_string, obsolete_string2) values (OLD.sys_period_start, now(6),OLD.id, OLD.test_string, OLD.obsolete_string2); -end$$ --- changes: [drop test_boolean] -drop trigger migtest_e_history5_history_upd; -drop trigger migtest_e_history5_history_del; -delimiter $$ -create trigger migtest_e_history5_history_upd before update on migtest_e_history5 for each row begin - insert into migtest_e_history5_history (sys_period_start,sys_period_end,id, test_number) values (OLD.sys_period_start, now(6),OLD.id, OLD.test_number); - set NEW.sys_period_start = now(6); -end$$ -delimiter $$ -create trigger migtest_e_history5_history_del before delete on migtest_e_history5 for each row begin - insert into migtest_e_history5_history (sys_period_start,sys_period_end,id, test_number) values (OLD.sys_period_start, now(6),OLD.id, OLD.test_number); -end$$ -unlock tables; diff --git a/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/mysql/idx_mysql.migrations b/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/mysql/idx_mysql.migrations deleted file mode 100644 index 2ce271cdc..000000000 --- a/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/mysql/idx_mysql.migrations +++ /dev/null @@ -1,6 +0,0 @@ -1075178692, 1.0__initial.sql -880212944, 1.1.sql -1029390755, 1.2__dropsFor_1.1.sql --380371830, 1.3.sql -1085680731, 1.4__dropsFor_1.3.sql - diff --git a/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/mysql55/1.0__initial.sql b/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/mysql55/1.0__initial.sql deleted file mode 100644 index 0a76ab174..000000000 --- a/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/mysql55/1.0__initial.sql +++ /dev/null @@ -1,269 +0,0 @@ --- 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 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, - constraint pk_migtest_fk_cascade primary key (id) -); - -create table migtest_fk_cascade_one ( - id bigint auto_increment not null, - constraint pk_migtest_fk_cascade_one primary key (id) -); - -create table migtest_fk_none ( - id bigint auto_increment not null, - one_id bigint, - constraint pk_migtest_fk_none primary key (id) -); - -create table migtest_fk_none_via_join ( - id bigint auto_increment not null, - one_id bigint, - constraint pk_migtest_fk_none_via_join primary key (id) -); - -create table migtest_fk_one ( - id bigint auto_increment not null, - constraint pk_migtest_fk_one primary key (id) -); - -create table migtest_fk_set_null ( - id bigint auto_increment not null, - one_id bigint, - constraint pk_migtest_fk_set_null primary key (id) -); - -create table migtest_e_basic ( - id integer auto_increment not null, - status varchar(1), - status2 varchar(1) default 'N' not null, - name varchar(127), - description varchar(127), - some_date datetime, - old_boolean tinyint(1) default 0 not null, - old_boolean2 tinyint(1), - eref_id integer, - indextest1 varchar(127), - indextest2 varchar(127), - indextest3 varchar(127), - indextest4 varchar(127), - indextest5 varchar(127), - indextest6 varchar(127), - user_id integer not null, - constraint uq_migtest_e_basic_indextest2 unique (indextest2), - constraint uq_migtest_e_basic_indextest6 unique (indextest6), - constraint pk_migtest_e_basic primary key (id) -); - -create table migtest_e_enum ( - id integer auto_increment not null, - test_status varchar(1), - constraint pk_migtest_e_enum primary key (id) -); - -create table migtest_e_history ( - id integer auto_increment not null, - test_string varchar(255), - constraint pk_migtest_e_history primary key (id) -); - -create table migtest_e_history2 ( - id integer auto_increment not null, - test_string varchar(255), - obsolete_string1 varchar(255), - obsolete_string2 varchar(255), - constraint pk_migtest_e_history2 primary key (id) -); - -create table migtest_e_history3 ( - id integer auto_increment not null, - test_string varchar(255), - constraint pk_migtest_e_history3 primary key (id) -); - -create table migtest_e_history4 ( - id integer auto_increment not null, - test_number integer, - constraint pk_migtest_e_history4 primary key (id) -); - -create table migtest_e_history5 ( - id integer auto_increment not null, - test_number integer, - constraint pk_migtest_e_history5 primary key (id) -); - -create table migtest_e_history6 ( - id integer auto_increment not null, - test_number1 integer, - test_number2 integer not null, - constraint pk_migtest_e_history6 primary key (id) -); - -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) -); - -create table migtest_e_softdelete ( - id integer auto_increment not null, - test_string varchar(255), - 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); -create index ix_migtest_fk_cascade_one_id on 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 restrict; - -create index ix_migtest_fk_set_null_one_id on migtest_fk_set_null (one_id); -alter table migtest_fk_set_null add constraint fk_migtest_fk_set_null_one_id foreign key (one_id) references migtest_fk_one (id) on delete set null on update restrict; - -create index ix_migtest_e_basic_eref_id on migtest_e_basic (eref_id); -alter table migtest_e_basic add constraint fk_migtest_e_basic_eref_id foreign key (eref_id) references migtest_e_ref (id) on delete restrict on update restrict; - -alter table migtest_e_history2 add column sys_period_start datetime(6) default now(6); -alter table migtest_e_history2 add column sys_period_end datetime(6); -create table migtest_e_history2_history( - id integer, - test_string varchar(255), - obsolete_string1 varchar(255), - obsolete_string2 varchar(255), - sys_period_start datetime(6), - sys_period_end datetime(6) -); -create view migtest_e_history2_with_history as select * from migtest_e_history2 union all select * from migtest_e_history2_history; - -alter table migtest_e_history3 add column sys_period_start datetime(6) default now(6); -alter table migtest_e_history3 add column sys_period_end datetime(6); -create table migtest_e_history3_history( - id integer, - test_string varchar(255), - sys_period_start datetime(6), - sys_period_end datetime(6) -); -create view migtest_e_history3_with_history as select * from migtest_e_history3 union all select * from migtest_e_history3_history; - -alter table migtest_e_history4 add column sys_period_start datetime(6) default now(6); -alter table migtest_e_history4 add column sys_period_end datetime(6); -create table migtest_e_history4_history( - id integer, - test_number integer, - sys_period_start datetime(6), - sys_period_end datetime(6) -); -create view migtest_e_history4_with_history as select * from migtest_e_history4 union all select * from migtest_e_history4_history; - -alter table migtest_e_history5 add column sys_period_start datetime(6) default now(6); -alter table migtest_e_history5 add column sys_period_end datetime(6); -create table migtest_e_history5_history( - id integer, - test_number integer, - sys_period_start datetime(6), - sys_period_end datetime(6) -); -create view migtest_e_history5_with_history as select * from migtest_e_history5 union all select * from migtest_e_history5_history; - -alter table migtest_e_history6 add column sys_period_start datetime(6) default now(6); -alter table migtest_e_history6 add column sys_period_end datetime(6); -create table migtest_e_history6_history( - id integer, - test_number1 integer, - test_number2 integer, - sys_period_start datetime(6), - sys_period_end datetime(6) -); -create view migtest_e_history6_with_history as select * from migtest_e_history6 union all select * from migtest_e_history6_history; - -delimiter $$ -create trigger migtest_e_history2_history_upd before update on migtest_e_history2 for each row begin - insert into migtest_e_history2_history (sys_period_start,sys_period_end,id, test_string, obsolete_string2) values (OLD.sys_period_start, now(6),OLD.id, OLD.test_string, OLD.obsolete_string2); - set NEW.sys_period_start = now(6); -end$$ -delimiter $$ -create trigger migtest_e_history2_history_del before delete on migtest_e_history2 for each row begin - insert into migtest_e_history2_history (sys_period_start,sys_period_end,id, test_string, obsolete_string2) values (OLD.sys_period_start, now(6),OLD.id, OLD.test_string, OLD.obsolete_string2); -end$$ -delimiter $$ -create trigger migtest_e_history3_history_upd before update on migtest_e_history3 for each row begin - insert into migtest_e_history3_history (sys_period_start,sys_period_end,id, test_string) values (OLD.sys_period_start, now(6),OLD.id, OLD.test_string); - set NEW.sys_period_start = now(6); -end$$ -delimiter $$ -create trigger migtest_e_history3_history_del before delete on migtest_e_history3 for each row begin - insert into migtest_e_history3_history (sys_period_start,sys_period_end,id, test_string) values (OLD.sys_period_start, now(6),OLD.id, OLD.test_string); -end$$ -delimiter $$ -create trigger migtest_e_history4_history_upd before update on migtest_e_history4 for each row begin - insert into migtest_e_history4_history (sys_period_start,sys_period_end,id, test_number) values (OLD.sys_period_start, now(6),OLD.id, OLD.test_number); - set NEW.sys_period_start = now(6); -end$$ -delimiter $$ -create trigger migtest_e_history4_history_del before delete on migtest_e_history4 for each row begin - insert into migtest_e_history4_history (sys_period_start,sys_period_end,id, test_number) values (OLD.sys_period_start, now(6),OLD.id, OLD.test_number); -end$$ -delimiter $$ -create trigger migtest_e_history5_history_upd before update on migtest_e_history5 for each row begin - insert into migtest_e_history5_history (sys_period_start,sys_period_end,id, test_number) values (OLD.sys_period_start, now(6),OLD.id, OLD.test_number); - set NEW.sys_period_start = now(6); -end$$ -delimiter $$ -create trigger migtest_e_history5_history_del before delete on migtest_e_history5 for each row begin - insert into migtest_e_history5_history (sys_period_start,sys_period_end,id, test_number) values (OLD.sys_period_start, now(6),OLD.id, OLD.test_number); -end$$ -delimiter $$ -create trigger migtest_e_history6_history_upd before update on migtest_e_history6 for each row begin - insert into migtest_e_history6_history (sys_period_start,sys_period_end,id, test_number1, test_number2) values (OLD.sys_period_start, now(6),OLD.id, OLD.test_number1, OLD.test_number2); - set NEW.sys_period_start = now(6); -end$$ -delimiter $$ -create trigger migtest_e_history6_history_del before delete on migtest_e_history6 for each row begin - insert into migtest_e_history6_history (sys_period_start,sys_period_end,id, test_number1, test_number2) values (OLD.sys_period_start, now(6),OLD.id, OLD.test_number1, OLD.test_number2); -end$$ diff --git a/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/mysql55/1.1.sql b/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/mysql55/1.1.sql deleted file mode 100644 index e3e5bf26a..000000000 --- a/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/mysql55/1.1.sql +++ /dev/null @@ -1,191 +0,0 @@ --- Migrationscripts for ebean unittest --- drop dependencies -drop view if exists migtest_e_history2_with_history; -drop view if exists migtest_e_history3_with_history; -drop view if exists migtest_e_history4_with_history; -drop view if exists migtest_e_history5_with_history; - --- apply changes -create table migtest_e_user ( - id integer auto_increment not null, - 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 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; -alter table migtest_fk_none_via_join add constraint fk_migtest_fk_none_via_join_one_id foreign key (one_id) references migtest_fk_one (id) on delete restrict on update restrict; -alter table migtest_fk_set_null drop foreign key fk_migtest_fk_set_null_one_id; -alter table migtest_fk_set_null add constraint fk_migtest_fk_set_null_one_id foreign key (one_id) references migtest_fk_one (id) on delete restrict on update restrict; - -update migtest_e_basic set status = 'A' where status is null; -alter table migtest_e_basic alter status set default 'A'; -alter table migtest_e_basic modify status varchar(1) not null; -alter table migtest_e_basic alter status2 drop default; -alter table migtest_e_basic modify status2 varchar(127); - --- rename all collisions; -alter table migtest_e_basic add constraint uq_migtest_e_basic_description unique (description); - -insert into migtest_e_user (id) select distinct user_id from migtest_e_basic; -alter table migtest_e_basic add constraint fk_migtest_e_basic_user_id foreign key (user_id) references migtest_e_user (id) on delete restrict on update restrict; -alter table migtest_e_basic modify user_id integer; -alter table migtest_e_basic add column new_string_field varchar(255) default 'foo''bar' not null; -alter table migtest_e_basic add column new_boolean_field tinyint(1) default 1 not null; -update migtest_e_basic set new_boolean_field = old_boolean; - -alter table migtest_e_basic add column new_boolean_field2 tinyint(1) default 1 not null; -alter table migtest_e_basic add column progress integer default 0 not null; -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); -alter table migtest_e_history modify test_string bigint; -alter table migtest_e_history comment = 'We have history now'; - --- NOTE: table has @History - special migration may be necessary -update migtest_e_history2 set test_string = 'unknown' where test_string is null; -alter table migtest_e_history2 alter test_string set default 'unknown'; -alter table migtest_e_history2 modify test_string varchar(255) not null; -alter table migtest_e_history2 add column test_string2 varchar(255); -alter table migtest_e_history2 add column test_string3 varchar(255) default 'unknown' not null; -alter table migtest_e_history2 add column new_column varchar(20); -alter table migtest_e_history2_history add column test_string2 varchar(255); -alter table migtest_e_history2_history add column test_string3 varchar(255) default 'unknown'; -alter table migtest_e_history2_history add column new_column varchar(20); - -alter table migtest_e_history4 modify test_number bigint; -alter table migtest_e_history4_history modify test_number bigint; -alter table migtest_e_history5 add column test_boolean tinyint(1) default 0 not null; -alter table migtest_e_history5_history add column test_boolean tinyint(1) default 0; - - --- NOTE: table has @History - special migration may be necessary -update migtest_e_history6 set test_number1 = 42 where test_number1 is null; -alter table migtest_e_history6 alter test_number1 set default 42; -alter table migtest_e_history6 modify test_number1 integer not null; -alter table migtest_e_history6 modify test_number2 integer; -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; -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_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_m on migtest_mtm_c_migtest_mtm_m (migtest_mtm_m_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_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_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_c on migtest_mtm_m_migtest_mtm_c (migtest_mtm_c_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_ckey_parent_assoc_id on migtest_ckey_parent (assoc_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; - -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( - id integer, - test_string bigint, - sys_period_start datetime(6), - sys_period_end datetime(6) -); -create view migtest_e_history_with_history as select * from migtest_e_history union all select * from migtest_e_history_history; - -create view migtest_e_history2_with_history as select * from migtest_e_history2 union all select * from migtest_e_history2_history; - -create view migtest_e_history3_with_history as select * from migtest_e_history3 union all select * from migtest_e_history3_history; - -create view migtest_e_history4_with_history as select * from migtest_e_history4 union all select * from migtest_e_history4_history; - -create view migtest_e_history5_with_history as select * from migtest_e_history5 union all select * from migtest_e_history5_history; - -delimiter $$ -create trigger migtest_e_history_history_upd before update on migtest_e_history for each row begin - insert into migtest_e_history_history (sys_period_start,sys_period_end,id, test_string) values (OLD.sys_period_start, now(6),OLD.id, OLD.test_string); - set NEW.sys_period_start = now(6); -end$$ -delimiter $$ -create trigger migtest_e_history_history_del before delete on migtest_e_history for each row begin - insert into migtest_e_history_history (sys_period_start,sys_period_end,id, test_string) values (OLD.sys_period_start, now(6),OLD.id, OLD.test_string); -end$$ -lock tables migtest_e_history2 write, migtest_e_history3 write, migtest_e_history4 write, migtest_e_history5 write; --- changes: [add test_string2, add test_string3, add new_column] -drop trigger migtest_e_history2_history_upd; -drop trigger migtest_e_history2_history_del; -delimiter $$ -create trigger migtest_e_history2_history_upd before update on migtest_e_history2 for each row begin - insert into migtest_e_history2_history (sys_period_start,sys_period_end,id, test_string, test_string3, new_column, obsolete_string1, obsolete_string2) values (OLD.sys_period_start, now(6),OLD.id, OLD.test_string, OLD.test_string3, OLD.new_column, OLD.obsolete_string1, OLD.obsolete_string2); - set NEW.sys_period_start = now(6); -end$$ -delimiter $$ -create trigger migtest_e_history2_history_del before delete on migtest_e_history2 for each row begin - insert into migtest_e_history2_history (sys_period_start,sys_period_end,id, test_string, test_string3, new_column, obsolete_string1, obsolete_string2) values (OLD.sys_period_start, now(6),OLD.id, OLD.test_string, OLD.test_string3, OLD.new_column, OLD.obsolete_string1, OLD.obsolete_string2); -end$$ --- changes: [exclude test_string] -drop trigger migtest_e_history3_history_upd; -drop trigger migtest_e_history3_history_del; -delimiter $$ -create trigger migtest_e_history3_history_upd before update on migtest_e_history3 for each row begin - insert into migtest_e_history3_history (sys_period_start,sys_period_end,id) values (OLD.sys_period_start, now(6),OLD.id); - set NEW.sys_period_start = now(6); -end$$ -delimiter $$ -create trigger migtest_e_history3_history_del before delete on migtest_e_history3 for each row begin - insert into migtest_e_history3_history (sys_period_start,sys_period_end,id) values (OLD.sys_period_start, now(6),OLD.id); -end$$ --- changes: [alter test_number] -drop trigger migtest_e_history4_history_upd; -drop trigger migtest_e_history4_history_del; -delimiter $$ -create trigger migtest_e_history4_history_upd before update on migtest_e_history4 for each row begin - insert into migtest_e_history4_history (sys_period_start,sys_period_end,id, test_number) values (OLD.sys_period_start, now(6),OLD.id, OLD.test_number); - set NEW.sys_period_start = now(6); -end$$ -delimiter $$ -create trigger migtest_e_history4_history_del before delete on migtest_e_history4 for each row begin - insert into migtest_e_history4_history (sys_period_start,sys_period_end,id, test_number) values (OLD.sys_period_start, now(6),OLD.id, OLD.test_number); -end$$ --- changes: [add test_boolean] -drop trigger migtest_e_history5_history_upd; -drop trigger migtest_e_history5_history_del; -delimiter $$ -create trigger migtest_e_history5_history_upd before update on migtest_e_history5 for each row begin - insert into migtest_e_history5_history (sys_period_start,sys_period_end,id, test_number, test_boolean) values (OLD.sys_period_start, now(6),OLD.id, OLD.test_number, OLD.test_boolean); - set NEW.sys_period_start = now(6); -end$$ -delimiter $$ -create trigger migtest_e_history5_history_del before delete on migtest_e_history5 for each row begin - insert into migtest_e_history5_history (sys_period_start,sys_period_end,id, test_number, test_boolean) values (OLD.sys_period_start, now(6),OLD.id, OLD.test_number, OLD.test_boolean); -end$$ -unlock tables; diff --git a/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/mysql55/1.2__dropsFor_1.1.sql b/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/mysql55/1.2__dropsFor_1.1.sql deleted file mode 100644 index b3317f701..000000000 --- a/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/mysql55/1.2__dropsFor_1.1.sql +++ /dev/null @@ -1,34 +0,0 @@ --- Migrationscripts for ebean unittest --- drop dependencies -drop view if exists migtest_e_history2_with_history; - --- apply changes -alter table migtest_e_basic drop column old_boolean; - -alter table migtest_e_basic drop column old_boolean2; - -alter table migtest_e_basic drop column eref_id; - -alter table migtest_e_history2 drop column obsolete_string1; -alter table migtest_e_history2_history drop column obsolete_string1; - -alter table migtest_e_history2 drop column obsolete_string2; -alter table migtest_e_history2_history drop column obsolete_string2; - -drop table if exists migtest_e_ref; -create view migtest_e_history2_with_history as select * from migtest_e_history2 union all select * from migtest_e_history2_history; - -lock tables migtest_e_history2 write; --- changes: [drop obsolete_string1, drop obsolete_string2] -drop trigger migtest_e_history2_history_upd; -drop trigger migtest_e_history2_history_del; -delimiter $$ -create trigger migtest_e_history2_history_upd before update on migtest_e_history2 for each row begin - insert into migtest_e_history2_history (sys_period_start,sys_period_end,id, test_string, test_string3, new_column) values (OLD.sys_period_start, now(6),OLD.id, OLD.test_string, OLD.test_string3, OLD.new_column); - set NEW.sys_period_start = now(6); -end$$ -delimiter $$ -create trigger migtest_e_history2_history_del before delete on migtest_e_history2 for each row begin - insert into migtest_e_history2_history (sys_period_start,sys_period_end,id, test_string, test_string3, new_column) values (OLD.sys_period_start, now(6),OLD.id, OLD.test_string, OLD.test_string3, OLD.new_column); -end$$ -unlock tables; diff --git a/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/mysql55/1.3.sql b/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/mysql55/1.3.sql deleted file mode 100644 index 6953c06f5..000000000 --- a/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/mysql55/1.3.sql +++ /dev/null @@ -1,115 +0,0 @@ --- Migrationscripts for ebean unittest --- drop dependencies -drop view if exists migtest_e_history2_with_history; -drop view if exists migtest_e_history3_with_history; -drop view if exists migtest_e_history4_with_history; - --- 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 restrict; -alter table migtest_fk_none drop foreign key fk_migtest_fk_none_one_id; -alter table migtest_fk_none_via_join drop foreign key fk_migtest_fk_none_via_join_one_id; -alter table migtest_fk_set_null drop foreign key fk_migtest_fk_set_null_one_id; -alter table migtest_fk_set_null add constraint fk_migtest_fk_set_null_one_id foreign key (one_id) references migtest_fk_one (id) on delete set null on update restrict; -alter table migtest_e_basic alter status drop default; -alter table migtest_e_basic modify status varchar(1); - -update migtest_e_basic set status2 = 'N' where status2 is null; -alter table migtest_e_basic alter status2 set default 'N'; -alter table migtest_e_basic modify status2 varchar(1) not null; -alter table migtest_e_basic drop index uq_migtest_e_basic_description; - -update migtest_e_basic set user_id = 23 where user_id is null; -alter table migtest_e_basic drop foreign key fk_migtest_e_basic_user_id; -alter table migtest_e_basic alter user_id set default 23; -alter table migtest_e_basic modify user_id integer not null; -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; -alter table migtest_e_basic add constraint uq_migtest_e_basic_indextest2 unique (indextest2); -alter table migtest_e_basic add constraint uq_migtest_e_basic_indextest6 unique (indextest6); -alter table migtest_e_history comment = ''; -alter table migtest_e_history2 alter test_string drop default; -alter table migtest_e_history2 modify test_string varchar(255); -alter table migtest_e_history2 add column obsolete_string1 varchar(255); -alter table migtest_e_history2 add column obsolete_string2 varchar(255); -alter table migtest_e_history2_history add column obsolete_string1 varchar(255); -alter table migtest_e_history2_history add column obsolete_string2 varchar(255); - -alter table migtest_e_history4 modify test_number integer; -alter table migtest_e_history4_history modify test_number integer; -alter table migtest_e_history6 alter test_number1 drop default; -alter table migtest_e_history6 modify test_number1 integer; - --- NOTE: table has @History - special migration may be necessary -update migtest_e_history6 set test_number2 = 7 where test_number2 is null; -alter table migtest_e_history6 alter test_number2 set default 7; -alter table migtest_e_history6 modify test_number2 integer not null; -alter table migtest_oto_child add constraint uq_m12_otoc72 unique (name); -alter table migtest_oto_master add constraint uq_migtest_oto_master_name unique (name); -create index ix_migtest_e_basic_indextest1 on migtest_e_basic (indextest1); -create index ix_migtest_e_basic_indextest5 on migtest_e_basic (indextest5); -create index ix_m12_otoc72 on migtest_oto_child (name); -create index ix_migtest_oto_master_name on migtest_oto_master (name); -drop index ix_migtest_e_basic_indextest3 on migtest_e_basic; -drop index ix_migtest_e_basic_indextest6 on migtest_e_basic; -create index ix_migtest_e_basic_eref_id on migtest_e_basic (eref_id); -alter table migtest_e_basic add constraint fk_migtest_e_basic_eref_id foreign key (eref_id) references migtest_e_ref (id) on delete restrict on update restrict; - -create view migtest_e_history2_with_history as select * from migtest_e_history2 union all select * from migtest_e_history2_history; - -create view migtest_e_history3_with_history as select * from migtest_e_history3 union all select * from migtest_e_history3_history; - -create view migtest_e_history4_with_history as select * from migtest_e_history4 union all select * from migtest_e_history4_history; - -lock tables migtest_e_history2 write, migtest_e_history3 write, migtest_e_history4 write; --- changes: [add obsolete_string1, add obsolete_string2] -drop trigger migtest_e_history2_history_upd; -drop trigger migtest_e_history2_history_del; -delimiter $$ -create trigger migtest_e_history2_history_upd before update on migtest_e_history2 for each row begin - insert into migtest_e_history2_history (sys_period_start,sys_period_end,id, test_string, obsolete_string2, test_string2, test_string3, new_column) values (OLD.sys_period_start, now(6),OLD.id, OLD.test_string, OLD.obsolete_string2, OLD.test_string2, OLD.test_string3, OLD.new_column); - set NEW.sys_period_start = now(6); -end$$ -delimiter $$ -create trigger migtest_e_history2_history_del before delete on migtest_e_history2 for each row begin - insert into migtest_e_history2_history (sys_period_start,sys_period_end,id, test_string, obsolete_string2, test_string2, test_string3, new_column) values (OLD.sys_period_start, now(6),OLD.id, OLD.test_string, OLD.obsolete_string2, OLD.test_string2, OLD.test_string3, OLD.new_column); -end$$ --- changes: [include test_string] -drop trigger migtest_e_history3_history_upd; -drop trigger migtest_e_history3_history_del; -delimiter $$ -create trigger migtest_e_history3_history_upd before update on migtest_e_history3 for each row begin - insert into migtest_e_history3_history (sys_period_start,sys_period_end,id, test_string) values (OLD.sys_period_start, now(6),OLD.id, OLD.test_string); - set NEW.sys_period_start = now(6); -end$$ -delimiter $$ -create trigger migtest_e_history3_history_del before delete on migtest_e_history3 for each row begin - insert into migtest_e_history3_history (sys_period_start,sys_period_end,id, test_string) values (OLD.sys_period_start, now(6),OLD.id, OLD.test_string); -end$$ --- changes: [alter test_number] -drop trigger migtest_e_history4_history_upd; -drop trigger migtest_e_history4_history_del; -delimiter $$ -create trigger migtest_e_history4_history_upd before update on migtest_e_history4 for each row begin - insert into migtest_e_history4_history (sys_period_start,sys_period_end,id, test_number) values (OLD.sys_period_start, now(6),OLD.id, OLD.test_number); - set NEW.sys_period_start = now(6); -end$$ -delimiter $$ -create trigger migtest_e_history4_history_del before delete on migtest_e_history4 for each row begin - insert into migtest_e_history4_history (sys_period_start,sys_period_end,id, test_number) values (OLD.sys_period_start, now(6),OLD.id, OLD.test_number); -end$$ -unlock tables; diff --git a/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/mysql55/1.4__dropsFor_1.3.sql b/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/mysql55/1.4__dropsFor_1.3.sql deleted file mode 100644 index ff8fa50d0..000000000 --- a/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/mysql55/1.4__dropsFor_1.3.sql +++ /dev/null @@ -1,78 +0,0 @@ --- Migrationscripts for ebean unittest --- drop dependencies -drop trigger migtest_e_history_history_upd; -drop trigger migtest_e_history_history_del; -drop view migtest_e_history_with_history; -alter table migtest_e_history drop column sys_period_start; -alter table migtest_e_history drop column sys_period_end; -drop table migtest_e_history_history; - -drop view if exists migtest_e_history2_with_history; -drop view if exists migtest_e_history5_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; - -alter table migtest_e_basic drop column new_boolean_field2; - -alter table migtest_e_basic drop column progress; - -alter table migtest_e_basic drop column new_integer; - -alter table migtest_e_history2 drop column test_string2; -alter table migtest_e_history2_history drop column test_string2; - -alter table migtest_e_history2 drop column test_string3; -alter table migtest_e_history2_history drop column test_string3; - -alter table migtest_e_history2 drop column new_column; -alter table migtest_e_history2_history drop column new_column; - -alter table migtest_e_history5 drop column test_boolean; -alter table migtest_e_history5_history drop column test_boolean; - -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; -create view migtest_e_history2_with_history as select * from migtest_e_history2 union all select * from migtest_e_history2_history; - -create view migtest_e_history5_with_history as select * from migtest_e_history5 union all select * from migtest_e_history5_history; - -lock tables migtest_e_history2 write, migtest_e_history5 write; --- changes: [drop test_string2, drop test_string3, drop new_column] -drop trigger migtest_e_history2_history_upd; -drop trigger migtest_e_history2_history_del; -delimiter $$ -create trigger migtest_e_history2_history_upd before update on migtest_e_history2 for each row begin - insert into migtest_e_history2_history (sys_period_start,sys_period_end,id, test_string, obsolete_string2) values (OLD.sys_period_start, now(6),OLD.id, OLD.test_string, OLD.obsolete_string2); - set NEW.sys_period_start = now(6); -end$$ -delimiter $$ -create trigger migtest_e_history2_history_del before delete on migtest_e_history2 for each row begin - insert into migtest_e_history2_history (sys_period_start,sys_period_end,id, test_string, obsolete_string2) values (OLD.sys_period_start, now(6),OLD.id, OLD.test_string, OLD.obsolete_string2); -end$$ --- changes: [drop test_boolean] -drop trigger migtest_e_history5_history_upd; -drop trigger migtest_e_history5_history_del; -delimiter $$ -create trigger migtest_e_history5_history_upd before update on migtest_e_history5 for each row begin - insert into migtest_e_history5_history (sys_period_start,sys_period_end,id, test_number) values (OLD.sys_period_start, now(6),OLD.id, OLD.test_number); - set NEW.sys_period_start = now(6); -end$$ -delimiter $$ -create trigger migtest_e_history5_history_del before delete on migtest_e_history5 for each row begin - insert into migtest_e_history5_history (sys_period_start,sys_period_end,id, test_number) values (OLD.sys_period_start, now(6),OLD.id, OLD.test_number); -end$$ -unlock tables; diff --git a/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/mysql55/idx_mysql.migrations b/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/mysql55/idx_mysql.migrations deleted file mode 100644 index 9bf86f51e..000000000 --- a/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/mysql55/idx_mysql.migrations +++ /dev/null @@ -1,6 +0,0 @@ --1087663151, 1.0__initial.sql -880212944, 1.1.sql -1029390755, 1.2__dropsFor_1.1.sql --380371830, 1.3.sql -1085680731, 1.4__dropsFor_1.3.sql - diff --git a/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/oracle/1.0__initial.sql b/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/oracle/1.0__initial.sql deleted file mode 100644 index 09a800c07..000000000 --- a/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/oracle/1.0__initial.sql +++ /dev/null @@ -1,174 +0,0 @@ --- Migrationscripts for ebean unittest --- apply changes -create table migtest_ckey_assoc ( - id number(10) generated by default as identity not null, - assoc_one varchar2(255), - constraint pk_migtest_ckey_assoc primary key (id) -); - -create table migtest_ckey_detail ( - id number(10) generated by default as identity not null, - something varchar2(255), - constraint pk_migtest_ckey_detail primary key (id) -); - -create table migtest_ckey_parent ( - one_key number(10) 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) generated by default as identity not null, - one_id number(19), - constraint pk_migtest_fk_cascade primary key (id) -); - -create table migtest_fk_cascade_one ( - id number(19) generated by default as identity not null, - constraint pk_migtest_fk_cascade_one primary key (id) -); - -create table migtest_fk_none ( - id number(19) generated by default as identity not null, - one_id number(19), - constraint pk_migtest_fk_none primary key (id) -); - -create table migtest_fk_none_via_join ( - id number(19) generated by default as identity not null, - one_id number(19), - constraint pk_migtest_fk_none_via_join primary key (id) -); - -create table migtest_fk_one ( - id number(19) generated by default as identity not null, - constraint pk_migtest_fk_one primary key (id) -); - -create table migtest_fk_set_null ( - id number(19) generated by default as identity not null, - one_id number(19), - constraint pk_migtest_fk_set_null primary key (id) -); - -create table migtest_e_basic ( - id number(10) generated by default as identity not null, - status varchar2(1), - status2 varchar2(1) default 'N' not null, - name varchar2(127), - description varchar2(127), - some_date timestamp, - old_boolean number(1) default 0 not null, - old_boolean2 number(1), - eref_id number(10), - indextest1 varchar2(127), - indextest2 varchar2(127), - indextest3 varchar2(127), - indextest4 varchar2(127), - indextest5 varchar2(127), - indextest6 varchar2(127), - user_id number(10) not null, - constraint ck_migtest_e_basic_status check ( status in ('N','A','I')), - constraint ck_migtest_e_basic_status2 check ( status2 in ('N','A','I')), - constraint uq_migtest_e_basic_indextest2 unique (indextest2), - constraint uq_migtest_e_basic_indextest6 unique (indextest6), - constraint pk_migtest_e_basic primary key (id) -); - -create table migtest_e_enum ( - id number(10) generated by default as identity not null, - test_status varchar2(1), - constraint ck_migtest_e_enum_test_status check ( test_status in ('N','A','I')), - constraint pk_migtest_e_enum primary key (id) -); - -create table migtest_e_history ( - id number(10) generated by default as identity not null, - test_string varchar2(255), - constraint pk_migtest_e_history primary key (id) -); - -create table migtest_e_history2 ( - id number(10) generated by default as identity not null, - test_string varchar2(255), - obsolete_string1 varchar2(255), - obsolete_string2 varchar2(255), - constraint pk_migtest_e_history2 primary key (id) -); - -create table migtest_e_history3 ( - id number(10) generated by default as identity not null, - test_string varchar2(255), - constraint pk_migtest_e_history3 primary key (id) -); - -create table migtest_e_history4 ( - id number(10) generated by default as identity not null, - test_number number(10), - constraint pk_migtest_e_history4 primary key (id) -); - -create table migtest_e_history5 ( - id number(10) generated by default as identity not null, - test_number number(10), - constraint pk_migtest_e_history5 primary key (id) -); - -create table migtest_e_history6 ( - id number(10) generated by default as identity not null, - test_number1 number(10), - test_number2 number(10) not null, - constraint pk_migtest_e_history6 primary key (id) -); - -create table migtest_e_ref ( - id number(10) generated by default as identity not null, - name varchar2(127) not null, - constraint uq_migtest_e_ref_name unique (name), - constraint pk_migtest_e_ref primary key (id) -); - -create table migtest_e_softdelete ( - id number(10) generated by default as identity not null, - test_string varchar2(255), - constraint pk_migtest_e_softdelete primary key (id) -); - -create table migtest_mtm_c ( - id number(10) generated by default as identity not null, - name varchar2(255), - constraint pk_migtest_mtm_c primary key (id) -); - -create table migtest_mtm_m ( - id number(19) generated by default as identity not null, - name varchar2(255), - constraint pk_migtest_mtm_m primary key (id) -); - -create table migtest_oto_child ( - id number(10) generated by default as identity not null, - name varchar2(255), - constraint pk_migtest_oto_child primary key (id) -); - -create table migtest_oto_master ( - id number(19) generated by default as identity not null, - name varchar2(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); -create index ix_migtest_fk_cascade_one_id on 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; - -create index ix_migtest_fk_set_null_one_id on migtest_fk_set_null (one_id); -alter table migtest_fk_set_null add constraint fk_migtest_fk_set_null_one_id foreign key (one_id) references migtest_fk_one (id) on delete set null; - -create index ix_migtest_e_basic_eref_id on migtest_e_basic (eref_id); -alter table migtest_e_basic add constraint fk_migtest_e_basic_eref_id foreign key (eref_id) references migtest_e_ref (id); - diff --git a/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/oracle/1.1.sql b/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/oracle/1.1.sql deleted file mode 100644 index 7e6c98a90..000000000 --- a/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/oracle/1.1.sql +++ /dev/null @@ -1,110 +0,0 @@ --- Migrationscripts for ebean unittest --- apply changes -create table migtest_e_user ( - id number(10) generated by default as identity not null, - constraint pk_migtest_e_user primary key (id) -); - -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 one_key number(10); -alter table migtest_ckey_detail add 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 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); -alter table migtest_fk_none_via_join add constraint fk_mgtst_fk_nn_v_jn_n_d foreign key (one_id) references migtest_fk_one (id); -alter table migtest_fk_set_null drop constraint fk_migtest_fk_set_null_one_id; -alter table migtest_fk_set_null add constraint fk_migtest_fk_set_null_one_id foreign key (one_id) references migtest_fk_one (id); - -update migtest_e_basic set status = 'A' where status is null; -alter table migtest_e_basic drop constraint ck_migtest_e_basic_status; -alter table migtest_e_basic modify status default 'A'; -alter table migtest_e_basic modify status not null; -alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I','?')); -alter table migtest_e_basic drop constraint ck_migtest_e_basic_status2; -alter table migtest_e_basic modify status2 varchar2(127); -alter table migtest_e_basic modify status2 drop default; -alter table migtest_e_basic modify status2 null; - --- rename all collisions; --- NOT YET IMPLEMENTED: alter table migtest_e_basic add constraint uq_migtest_e_basic_description unique (description); - -insert into migtest_e_user (id) select distinct user_id from migtest_e_basic; -alter table migtest_e_basic add constraint fk_migtest_e_basic_user_id foreign key (user_id) references migtest_e_user (id); -alter table migtest_e_basic modify user_id null; -alter table migtest_e_basic add new_string_field varchar2(255) default 'foo''bar' not null; -alter table migtest_e_basic add new_boolean_field number(1) default 1 not null; -update migtest_e_basic set new_boolean_field = old_boolean; - -alter table migtest_e_basic add new_boolean_field2 number(1) default 1 not null; -alter table migtest_e_basic add progress number(10) default 0 not null; -alter table migtest_e_basic add constraint ck_migtest_e_basic_progress check ( progress in (0,1,2)); -alter table migtest_e_basic add new_integer number(10) 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 YET IMPLEMENTED: alter table migtest_e_basic add constraint uq_mgtst__bsc_stts_ndxtst1 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); -alter table migtest_e_enum drop constraint ck_migtest_e_enum_test_status; -comment on column migtest_e_history.test_string is 'Column altered to long now'; -alter table migtest_e_history modify test_string number(19); -comment on table migtest_e_history is 'We have history now'; - --- NOTE: table has @History - special migration may be necessary -update migtest_e_history2 set test_string = 'unknown' where test_string is null; -alter table migtest_e_history2 modify test_string default 'unknown'; -alter table migtest_e_history2 modify test_string not null; -alter table migtest_e_history2 add test_string2 varchar2(255); -alter table migtest_e_history2 add test_string3 varchar2(255) default 'unknown' not null; -alter table migtest_e_history2 add new_column varchar2(20); - -alter table migtest_e_history4 modify test_number number(19); -alter table migtest_e_history5 add test_boolean number(1) default 0 not null; - - --- NOTE: table has @History - special migration may be necessary -update migtest_e_history6 set test_number1 = 42 where test_number1 is null; -alter table migtest_e_history6 modify test_number1 default 42; -alter table migtest_e_history6 modify test_number1 not null; -alter table migtest_e_history6 modify test_number2 null; -alter table migtest_e_softdelete add deleted number(1) default 0 not null; - -alter table migtest_oto_child add 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; -create index ix_mgtst_mtm_c_mgtst_mt_3ug4ok on migtest_mtm_c_migtest_mtm_m (migtest_mtm_c_id); -alter table migtest_mtm_c_migtest_mtm_m add constraint fk_mgtst_mtm_c_mgtst_mt_93awga foreign key (migtest_mtm_c_id) references migtest_mtm_c (id); - -create index ix_mgtst_mtm_c_mgtst_mt_3ug4ou on migtest_mtm_c_migtest_mtm_m (migtest_mtm_m_id); -alter table migtest_mtm_c_migtest_mtm_m add constraint fk_mgtst_mtm_c_mgtst_mt_93awgk foreign key (migtest_mtm_m_id) references migtest_mtm_m (id); - -create index ix_mgtst_mtm_m_mgtst_mt_b7nbcu on migtest_mtm_m_migtest_mtm_c (migtest_mtm_m_id); -alter table migtest_mtm_m_migtest_mtm_c add constraint fk_mgtst_mtm_m_mgtst_mt_ggi34k foreign key (migtest_mtm_m_id) references migtest_mtm_m (id); - -create index ix_mgtst_mtm_m_mgtst_mt_b7nbck on migtest_mtm_m_migtest_mtm_c (migtest_mtm_c_id); -alter table migtest_mtm_m_migtest_mtm_c add constraint fk_mgtst_mtm_m_mgtst_mt_ggi34a foreign key (migtest_mtm_c_id) references migtest_mtm_c (id); - -create index ix_mgtst_cky_prnt_ssc_d on migtest_ckey_parent (assoc_id); -alter table migtest_ckey_parent add constraint fk_mgtst_cky_prnt_ssc_d foreign key (assoc_id) references migtest_ckey_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/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/oracle/1.2__dropsFor_1.1.sql b/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/oracle/1.2__dropsFor_1.1.sql deleted file mode 100644 index 4f2337db3..000000000 --- a/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/oracle/1.2__dropsFor_1.1.sql +++ /dev/null @@ -1,14 +0,0 @@ --- Migrationscripts for ebean unittest --- apply changes -alter table migtest_e_basic drop column old_boolean; - -alter table migtest_e_basic drop column old_boolean2; - -alter table migtest_e_basic drop column eref_id; - -alter table migtest_e_history2 drop column obsolete_string1; - -alter table migtest_e_history2 drop column obsolete_string2; - -drop table migtest_e_ref cascade constraints purge; -drop sequence migtest_e_ref_seq; diff --git a/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/oracle/1.3.sql b/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/oracle/1.3.sql deleted file mode 100644 index ceafdbcff..000000000 --- a/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/oracle/1.3.sql +++ /dev/null @@ -1,67 +0,0 @@ --- Migrationscripts for ebean unittest --- apply changes -create table migtest_e_ref ( - id number(10) generated by default as identity not null, - name varchar2(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 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; -alter table migtest_fk_none_via_join drop constraint fk_mgtst_fk_nn_v_jn_n_d; -alter table migtest_fk_set_null drop constraint fk_migtest_fk_set_null_one_id; -alter table migtest_fk_set_null add constraint fk_migtest_fk_set_null_one_id foreign key (one_id) references migtest_fk_one (id) on delete set null; -alter table migtest_e_basic drop constraint ck_migtest_e_basic_status; -alter table migtest_e_basic modify status drop default; -alter table migtest_e_basic modify status null; -alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I')); - -update migtest_e_basic set status2 = 'N' where status2 is null; -alter table migtest_e_basic drop constraint ck_migtest_e_basic_status2; -alter table migtest_e_basic modify status2 varchar2(1); -alter table migtest_e_basic modify status2 default 'N'; -alter table migtest_e_basic modify status2 not null; -alter table migtest_e_basic add constraint ck_migtest_e_basic_status2 check ( status2 in ('N','A','I')); -alter table migtest_e_basic drop constraint uq_migtest_e_basic_description; - -update migtest_e_basic set user_id = 23 where user_id is null; -alter table migtest_e_basic drop constraint fk_migtest_e_basic_user_id; -alter table migtest_e_basic modify user_id default 23; -alter table migtest_e_basic modify user_id not null; -alter table migtest_e_basic add old_boolean number(1) default 0 not null; -alter table migtest_e_basic add old_boolean2 number(1); -alter table migtest_e_basic add eref_id number(10); - -alter table migtest_e_basic drop constraint uq_mgtst__bsc_stts_ndxtst1; -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; --- NOT YET IMPLEMENTED: alter table migtest_e_basic add constraint uq_migtest_e_basic_indextest2 unique (indextest2); --- NOT YET IMPLEMENTED: alter table migtest_e_basic add constraint uq_migtest_e_basic_indextest6 unique (indextest6); -alter table migtest_e_enum drop constraint ck_migtest_e_enum_test_status; -alter table migtest_e_enum add constraint ck_migtest_e_enum_test_status check ( test_status in ('N','A','I')); -comment on column migtest_e_history.test_string is ''; -comment on table migtest_e_history is ''; -alter table migtest_e_history2 modify test_string drop default; -alter table migtest_e_history2 modify test_string null; -alter table migtest_e_history2 add obsolete_string1 varchar2(255); -alter table migtest_e_history2 add obsolete_string2 varchar2(255); - -alter table migtest_e_history4 modify test_number number(10); -alter table migtest_e_history6 modify test_number1 drop default; -alter table migtest_e_history6 modify test_number1 null; - --- NOTE: table has @History - special migration may be necessary -update migtest_e_history6 set test_number2 = 7 where test_number2 is null; -alter table migtest_e_history6 modify test_number2 default 7; -alter table migtest_e_history6 modify test_number2 not null; -create index ix_migtest_e_basic_indextest1 on migtest_e_basic (indextest1); -create index ix_migtest_e_basic_indextest5 on migtest_e_basic (indextest5); -drop index ix_migtest_e_basic_indextest3; -drop index ix_migtest_e_basic_indextest6; -create index ix_migtest_e_basic_eref_id on migtest_e_basic (eref_id); -alter table migtest_e_basic add constraint fk_migtest_e_basic_eref_id foreign key (eref_id) references migtest_e_ref (id); - diff --git a/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/oracle/1.4__dropsFor_1.3.sql b/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/oracle/1.4__dropsFor_1.3.sql deleted file mode 100644 index 52c81411a..000000000 --- a/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/oracle/1.4__dropsFor_1.3.sql +++ /dev/null @@ -1,34 +0,0 @@ --- 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; - -alter table migtest_e_basic drop column new_boolean_field2; - -alter table migtest_e_basic drop column progress; - -alter table migtest_e_basic drop column new_integer; - -alter table migtest_e_history2 drop column test_string2; - -alter table migtest_e_history2 drop column test_string3; - -alter table migtest_e_history2 drop column new_column; - -alter table migtest_e_history5 drop column test_boolean; - -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/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/oracle/idx_oracle.migrations b/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/oracle/idx_oracle.migrations deleted file mode 100644 index 533b50b15..000000000 --- a/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/oracle/idx_oracle.migrations +++ /dev/null @@ -1,6 +0,0 @@ -1164675950, 1.0__initial.sql --1916315387, 1.1.sql -238598298, 1.2__dropsFor_1.1.sql -483114276, 1.3.sql -1213528478, 1.4__dropsFor_1.3.sql - diff --git a/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/postgres/1.0__initial.sql b/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/postgres/1.0__initial.sql deleted file mode 100644 index af08de6d3..000000000 --- a/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/postgres/1.0__initial.sql +++ /dev/null @@ -1,307 +0,0 @@ --- 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, - constraint pk_migtest_fk_cascade primary key (id) -); - -create table migtest_fk_cascade_one ( - id bigint generated by default as identity not null, - constraint pk_migtest_fk_cascade_one primary key (id) -); - -create table migtest_fk_none ( - id bigint generated by default as identity not null, - one_id bigint, - constraint pk_migtest_fk_none primary key (id) -); - -create table migtest_fk_none_via_join ( - id bigint generated by default as identity not null, - one_id bigint, - constraint pk_migtest_fk_none_via_join primary key (id) -); - -create table migtest_fk_one ( - id bigint generated by default as identity not null, - constraint pk_migtest_fk_one primary key (id) -); - -create table migtest_fk_set_null ( - id bigint generated by default as identity not null, - one_id bigint, - constraint pk_migtest_fk_set_null primary key (id) -); - -create table migtest_e_basic ( - id integer generated by default as identity not null, - status varchar(1), - status2 varchar(1) default 'N' not null, - name varchar(127), - description varchar(127), - some_date timestamptz, - old_boolean boolean default false not null, - old_boolean2 boolean, - eref_id integer, - indextest1 varchar(127), - indextest2 varchar(127), - indextest3 varchar(127), - indextest4 varchar(127), - indextest5 varchar(127), - indextest6 varchar(127), - user_id integer not null, - constraint ck_migtest_e_basic_status check ( status in ('N','A','I')), - constraint ck_migtest_e_basic_status2 check ( status2 in ('N','A','I')), - constraint uq_migtest_e_basic_indextest2 unique (indextest2), - constraint uq_migtest_e_basic_indextest6 unique (indextest6), - constraint pk_migtest_e_basic primary key (id) -); - -create table migtest_e_enum ( - id integer generated by default as identity not null, - test_status varchar(1), - constraint ck_migtest_e_enum_test_status check ( test_status in ('N','A','I')), - constraint pk_migtest_e_enum primary key (id) -); - -create table migtest_e_history ( - id integer generated by default as identity not null, - test_string varchar(255), - constraint pk_migtest_e_history primary key (id) -); - -create table migtest_e_history2 ( - id integer generated by default as identity not null, - test_string varchar(255), - obsolete_string1 varchar(255), - obsolete_string2 varchar(255), - constraint pk_migtest_e_history2 primary key (id) -); - -create table migtest_e_history3 ( - id integer generated by default as identity not null, - test_string varchar(255), - constraint pk_migtest_e_history3 primary key (id) -); - -create table migtest_e_history4 ( - id integer generated by default as identity not null, - test_number integer, - constraint pk_migtest_e_history4 primary key (id) -); - -create table migtest_e_history5 ( - id integer generated by default as identity not null, - test_number integer, - constraint pk_migtest_e_history5 primary key (id) -); - -create table migtest_e_history6 ( - id integer generated by default as identity not null, - test_number1 integer, - test_number2 integer not null, - constraint pk_migtest_e_history6 primary key (id) -); - -create table migtest_e_ref ( - id integer generated by default as identity not null, - name varchar(127) not null, - constraint uq_migtest_e_ref_name unique (name), - constraint pk_migtest_e_ref primary key (id) -); - -create table migtest_e_softdelete ( - id integer generated by default as identity not null, - test_string varchar(255), - 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 if not exists ix_migtest_e_basic_indextest1 on migtest_e_basic (indextest1); -create index if not exists ix_migtest_e_basic_indextest5 on migtest_e_basic (indextest5); -create index idxd_migtest_0 on migtest_oto_child using hash (upper(name)) where upper(name) = 'JIM'; -create index concurrently if not exists ix_migtest_oto_child_lowername_id on migtest_oto_child (lower(name),id); -create index if not exists ix_migtest_oto_child_lowername on migtest_oto_child (lower(name)); -create index ix_migtest_fk_cascade_one_id on 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 restrict; - -create index ix_migtest_fk_set_null_one_id on migtest_fk_set_null (one_id); -alter table migtest_fk_set_null add constraint fk_migtest_fk_set_null_one_id foreign key (one_id) references migtest_fk_one (id) on delete set null on update restrict; - -create index ix_migtest_e_basic_eref_id on migtest_e_basic (eref_id); -alter table migtest_e_basic add constraint fk_migtest_e_basic_eref_id foreign key (eref_id) references migtest_e_ref (id) on delete restrict on update restrict; - -alter table migtest_e_history2 add column sys_period tstzrange not null default tstzrange(current_timestamp, null); -create table migtest_e_history2_history(like migtest_e_history2); -create view migtest_e_history2_with_history as select * from migtest_e_history2 union all select * from migtest_e_history2_history; - -alter table migtest_e_history3 add column sys_period tstzrange not null default tstzrange(current_timestamp, null); -create table migtest_e_history3_history(like migtest_e_history3); -create view migtest_e_history3_with_history as select * from migtest_e_history3 union all select * from migtest_e_history3_history; - -alter table migtest_e_history4 add column sys_period tstzrange not null default tstzrange(current_timestamp, null); -create table migtest_e_history4_history(like migtest_e_history4); -create view migtest_e_history4_with_history as select * from migtest_e_history4 union all select * from migtest_e_history4_history; - -alter table migtest_e_history5 add column sys_period tstzrange not null default tstzrange(current_timestamp, null); -create table migtest_e_history5_history(like migtest_e_history5); -create view migtest_e_history5_with_history as select * from migtest_e_history5 union all select * from migtest_e_history5_history; - -alter table migtest_e_history6 add column sys_period tstzrange not null default tstzrange(current_timestamp, null); -create table migtest_e_history6_history(like migtest_e_history6); -create view migtest_e_history6_with_history as select * from migtest_e_history6 union all select * from migtest_e_history6_history; - -create or replace function migtest_e_history2_history_version() returns trigger as $$ -declare - lowerTs timestamptz; - upperTs timestamptz; -begin - lowerTs = lower(OLD.sys_period); - upperTs = greatest(lowerTs + '1 microsecond',current_timestamp); - if (TG_OP = 'UPDATE') then - insert into migtest_e_history2_history (sys_period,id, test_string, obsolete_string2) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_string, OLD.obsolete_string2); - NEW.sys_period = tstzrange(upperTs,null); - return new; - elsif (TG_OP = 'DELETE') then - insert into migtest_e_history2_history (sys_period,id, test_string, obsolete_string2) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_string, OLD.obsolete_string2); - return old; - end if; -end; -$$ LANGUAGE plpgsql; - -create trigger migtest_e_history2_history_upd - before update or delete on migtest_e_history2 - for each row execute procedure migtest_e_history2_history_version(); - -create or replace function migtest_e_history3_history_version() returns trigger as $$ -declare - lowerTs timestamptz; - upperTs timestamptz; -begin - lowerTs = lower(OLD.sys_period); - upperTs = greatest(lowerTs + '1 microsecond',current_timestamp); - if (TG_OP = 'UPDATE') then - insert into migtest_e_history3_history (sys_period,id, test_string) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_string); - NEW.sys_period = tstzrange(upperTs,null); - return new; - elsif (TG_OP = 'DELETE') then - insert into migtest_e_history3_history (sys_period,id, test_string) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_string); - return old; - end if; -end; -$$ LANGUAGE plpgsql; - -create trigger migtest_e_history3_history_upd - before update or delete on migtest_e_history3 - for each row execute procedure migtest_e_history3_history_version(); - -create or replace function migtest_e_history4_history_version() returns trigger as $$ -declare - lowerTs timestamptz; - upperTs timestamptz; -begin - lowerTs = lower(OLD.sys_period); - upperTs = greatest(lowerTs + '1 microsecond',current_timestamp); - if (TG_OP = 'UPDATE') then - insert into migtest_e_history4_history (sys_period,id, test_number) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_number); - NEW.sys_period = tstzrange(upperTs,null); - return new; - elsif (TG_OP = 'DELETE') then - insert into migtest_e_history4_history (sys_period,id, test_number) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_number); - return old; - end if; -end; -$$ LANGUAGE plpgsql; - -create trigger migtest_e_history4_history_upd - before update or delete on migtest_e_history4 - for each row execute procedure migtest_e_history4_history_version(); - -create or replace function migtest_e_history5_history_version() returns trigger as $$ -declare - lowerTs timestamptz; - upperTs timestamptz; -begin - lowerTs = lower(OLD.sys_period); - upperTs = greatest(lowerTs + '1 microsecond',current_timestamp); - if (TG_OP = 'UPDATE') then - insert into migtest_e_history5_history (sys_period,id, test_number) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_number); - NEW.sys_period = tstzrange(upperTs,null); - return new; - elsif (TG_OP = 'DELETE') then - insert into migtest_e_history5_history (sys_period,id, test_number) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_number); - return old; - end if; -end; -$$ LANGUAGE plpgsql; - -create trigger migtest_e_history5_history_upd - before update or delete on migtest_e_history5 - for each row execute procedure migtest_e_history5_history_version(); - -create or replace function migtest_e_history6_history_version() returns trigger as $$ -declare - lowerTs timestamptz; - upperTs timestamptz; -begin - lowerTs = lower(OLD.sys_period); - upperTs = greatest(lowerTs + '1 microsecond',current_timestamp); - if (TG_OP = 'UPDATE') then - insert into migtest_e_history6_history (sys_period,id, test_number1, test_number2) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_number1, OLD.test_number2); - NEW.sys_period = tstzrange(upperTs,null); - return new; - elsif (TG_OP = 'DELETE') then - insert into migtest_e_history6_history (sys_period,id, test_number1, test_number2) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_number1, OLD.test_number2); - return old; - end if; -end; -$$ LANGUAGE plpgsql; - -create trigger migtest_e_history6_history_upd - before update or delete on migtest_e_history6 - for each row execute procedure migtest_e_history6_history_version(); - diff --git a/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/postgres/1.1.sql b/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/postgres/1.1.sql deleted file mode 100644 index 1c0ef5385..000000000 --- a/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/postgres/1.1.sql +++ /dev/null @@ -1,237 +0,0 @@ --- Migrationscripts for ebean unittest --- drop dependencies -drop view if exists migtest_e_history2_with_history; -drop view if exists migtest_e_history3_with_history; -drop view if exists migtest_e_history4_with_history; -drop view if exists migtest_e_history5_with_history; - --- apply changes -create table migtest_e_user ( - id integer generated by default as identity not null, - 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; -alter table migtest_fk_none_via_join add constraint fk_migtest_fk_none_via_join_one_id foreign key (one_id) references migtest_fk_one (id) on delete restrict on update restrict; -alter table if exists migtest_fk_set_null drop constraint if exists fk_migtest_fk_set_null_one_id; -alter table migtest_fk_set_null add constraint fk_migtest_fk_set_null_one_id foreign key (one_id) references migtest_fk_one (id) on delete restrict on update restrict; - -update migtest_e_basic set status = 'A' where status is null; -alter table migtest_e_basic drop constraint if exists ck_migtest_e_basic_status; -alter table migtest_e_basic alter column status set default 'A'; -alter table migtest_e_basic alter column status set not null; -alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I','?')); -alter table migtest_e_basic drop constraint if exists ck_migtest_e_basic_status2; -alter table migtest_e_basic alter column status2 type varchar(127) using status2::varchar(127); -alter table migtest_e_basic alter column status2 drop default; -alter table migtest_e_basic alter column status2 drop not null; - --- rename all collisions; -alter table migtest_e_basic add constraint uq_migtest_e_basic_description unique (description); - -insert into migtest_e_user (id) select distinct user_id from migtest_e_basic; -alter table migtest_e_basic add constraint fk_migtest_e_basic_user_id foreign key (user_id) references migtest_e_user (id) on delete restrict on update restrict; -alter table migtest_e_basic alter column user_id drop not null; -alter table migtest_e_basic add column new_string_field varchar(255) default 'foo''bar' not null; -alter table migtest_e_basic add column new_boolean_field boolean default true not null; -update migtest_e_basic set new_boolean_field = old_boolean; - -alter table migtest_e_basic add column new_boolean_field2 boolean default true not null; -alter table migtest_e_basic add column progress integer default 0 not null; -alter table migtest_e_basic add constraint ck_migtest_e_basic_progress check ( progress in (0,1,2)); -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); -alter table migtest_e_enum drop constraint if exists ck_migtest_e_enum_test_status; - -alter table migtest_e_history alter column test_string TYPE bigint USING (test_string::integer); -comment on column migtest_e_history.test_string is 'Column altered to long now'; -alter table migtest_e_history alter column test_string type bigint using test_string::bigint; -comment on table migtest_e_history is 'We have history now'; - --- NOTE: table has @History - special migration may be necessary -update migtest_e_history2 set test_string = 'unknown' where test_string is null; -alter table migtest_e_history2 alter column test_string set default 'unknown'; -alter table migtest_e_history2 alter column test_string set not null; -alter table migtest_e_history2 add column test_string2 varchar(255); -alter table migtest_e_history2 add column test_string3 varchar(255) default 'unknown' not null; -alter table migtest_e_history2 add column new_column varchar(20); -alter table migtest_e_history2_history add column test_string2 varchar(255); -alter table migtest_e_history2_history add column test_string3 varchar(255) default 'unknown'; -alter table migtest_e_history2_history add column new_column varchar(20); - -alter table migtest_e_history4 alter column test_number type bigint using test_number::bigint; -alter table migtest_e_history4_history alter column test_number type bigint using test_number::bigint; -alter table migtest_e_history5 add column test_boolean boolean default false not null; -alter table migtest_e_history5_history add column test_boolean boolean default false; - - --- NOTE: table has @History - special migration may be necessary -update migtest_e_history6 set test_number1 = 42 where test_number1 is null; -alter table migtest_e_history6 alter column test_number1 set default 42; -alter table migtest_e_history6 alter column test_number1 set not null; -alter table migtest_e_history6 alter column test_number2 drop not null; -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 if not exists ix_migtest_e_basic_indextest3 on migtest_e_basic (indextest3); -create index if not exists ix_migtest_e_basic_indextest6 on migtest_e_basic (indextest6); -create index if not exists ix_migtest_oto_child_name on migtest_oto_child (name); -drop index if exists ix_migtest_e_basic_indextest1; -drop index if exists ix_migtest_e_basic_indextest5; -drop index if exists idxd_migtest_0; -drop index concurrently if exists ix_migtest_oto_child_lowername_id; -drop index if exists ix_migtest_oto_child_lowername; -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_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_m on migtest_mtm_c_migtest_mtm_m (migtest_mtm_m_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_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_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_c on migtest_mtm_m_migtest_mtm_c (migtest_mtm_c_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_ckey_parent_assoc_id on migtest_ckey_parent (assoc_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; - -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; - -create view migtest_e_history2_with_history as select * from migtest_e_history2 union all select * from migtest_e_history2_history; - -create view migtest_e_history3_with_history as select * from migtest_e_history3 union all select * from migtest_e_history3_history; - -create view migtest_e_history4_with_history as select * from migtest_e_history4 union all select * from migtest_e_history4_history; - -create view migtest_e_history5_with_history as select * from migtest_e_history5 union all select * from migtest_e_history5_history; - -create or replace function migtest_e_history_history_version() returns trigger as $$ -declare - lowerTs timestamptz; - upperTs timestamptz; -begin - lowerTs = lower(OLD.sys_period); - upperTs = greatest(lowerTs + '1 microsecond',current_timestamp); - if (TG_OP = 'UPDATE') then - insert into migtest_e_history_history (sys_period,id, test_string) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_string); - NEW.sys_period = tstzrange(upperTs,null); - return new; - elsif (TG_OP = 'DELETE') then - insert into migtest_e_history_history (sys_period,id, test_string) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_string); - return old; - end if; -end; -$$ LANGUAGE plpgsql; - -create trigger migtest_e_history_history_upd - before update or delete on migtest_e_history - for each row execute procedure migtest_e_history_history_version(); - --- changes: [add test_string2, add test_string3, add new_column] -create or replace function migtest_e_history2_history_version() returns trigger as $$ -declare - lowerTs timestamptz; - upperTs timestamptz; -begin - lowerTs = lower(OLD.sys_period); - upperTs = greatest(lowerTs + '1 microsecond',current_timestamp); - if (TG_OP = 'UPDATE') then - insert into migtest_e_history2_history (sys_period,id, test_string, test_string3, new_column, obsolete_string1, obsolete_string2) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_string, OLD.test_string3, OLD.new_column, OLD.obsolete_string1, OLD.obsolete_string2); - NEW.sys_period = tstzrange(upperTs,null); - return new; - elsif (TG_OP = 'DELETE') then - insert into migtest_e_history2_history (sys_period,id, test_string, test_string3, new_column, obsolete_string1, obsolete_string2) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_string, OLD.test_string3, OLD.new_column, OLD.obsolete_string1, OLD.obsolete_string2); - return old; - end if; -end; -$$ LANGUAGE plpgsql; - --- changes: [exclude test_string] -create or replace function migtest_e_history3_history_version() returns trigger as $$ -declare - lowerTs timestamptz; - upperTs timestamptz; -begin - lowerTs = lower(OLD.sys_period); - upperTs = greatest(lowerTs + '1 microsecond',current_timestamp); - if (TG_OP = 'UPDATE') then - insert into migtest_e_history3_history (sys_period,id) values (tstzrange(lowerTs,upperTs), OLD.id); - NEW.sys_period = tstzrange(upperTs,null); - return new; - elsif (TG_OP = 'DELETE') then - insert into migtest_e_history3_history (sys_period,id) values (tstzrange(lowerTs,upperTs), OLD.id); - return old; - end if; -end; -$$ LANGUAGE plpgsql; - --- changes: [alter test_number] -create or replace function migtest_e_history4_history_version() returns trigger as $$ -declare - lowerTs timestamptz; - upperTs timestamptz; -begin - lowerTs = lower(OLD.sys_period); - upperTs = greatest(lowerTs + '1 microsecond',current_timestamp); - if (TG_OP = 'UPDATE') then - insert into migtest_e_history4_history (sys_period,id, test_number) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_number); - NEW.sys_period = tstzrange(upperTs,null); - return new; - elsif (TG_OP = 'DELETE') then - insert into migtest_e_history4_history (sys_period,id, test_number) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_number); - return old; - end if; -end; -$$ LANGUAGE plpgsql; - --- changes: [add test_boolean] -create or replace function migtest_e_history5_history_version() returns trigger as $$ -declare - lowerTs timestamptz; - upperTs timestamptz; -begin - lowerTs = lower(OLD.sys_period); - upperTs = greatest(lowerTs + '1 microsecond',current_timestamp); - if (TG_OP = 'UPDATE') then - insert into migtest_e_history5_history (sys_period,id, test_number, test_boolean) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_number, OLD.test_boolean); - NEW.sys_period = tstzrange(upperTs,null); - return new; - elsif (TG_OP = 'DELETE') then - insert into migtest_e_history5_history (sys_period,id, test_number, test_boolean) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_number, OLD.test_boolean); - return old; - end if; -end; -$$ LANGUAGE plpgsql; - diff --git a/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/postgres/1.2__dropsFor_1.1.sql b/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/postgres/1.2__dropsFor_1.1.sql deleted file mode 100644 index c9a6d03e6..000000000 --- a/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/postgres/1.2__dropsFor_1.1.sql +++ /dev/null @@ -1,40 +0,0 @@ --- Migrationscripts for ebean unittest --- drop dependencies -drop view if exists migtest_e_history2_with_history; - --- apply changes -alter table migtest_e_basic drop column old_boolean; - -alter table migtest_e_basic drop column old_boolean2; - -alter table migtest_e_basic drop column eref_id; - -alter table migtest_e_history2 drop column obsolete_string1; -alter table migtest_e_history2_history drop column obsolete_string1; - -alter table migtest_e_history2 drop column obsolete_string2; -alter table migtest_e_history2_history drop column obsolete_string2; - -drop table if exists migtest_e_ref cascade; -drop sequence if exists migtest_e_ref_seq; -create view migtest_e_history2_with_history as select * from migtest_e_history2 union all select * from migtest_e_history2_history; - --- changes: [drop obsolete_string1, drop obsolete_string2] -create or replace function migtest_e_history2_history_version() returns trigger as $$ -declare - lowerTs timestamptz; - upperTs timestamptz; -begin - lowerTs = lower(OLD.sys_period); - upperTs = greatest(lowerTs + '1 microsecond',current_timestamp); - if (TG_OP = 'UPDATE') then - insert into migtest_e_history2_history (sys_period,id, test_string, test_string3, new_column) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_string, OLD.test_string3, OLD.new_column); - NEW.sys_period = tstzrange(upperTs,null); - return new; - elsif (TG_OP = 'DELETE') then - insert into migtest_e_history2_history (sys_period,id, test_string, test_string3, new_column) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_string, OLD.test_string3, OLD.new_column); - return old; - end if; -end; -$$ LANGUAGE plpgsql; - diff --git a/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/postgres/1.3.sql b/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/postgres/1.3.sql deleted file mode 100644 index dbcb50aac..000000000 --- a/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/postgres/1.3.sql +++ /dev/null @@ -1,141 +0,0 @@ --- Migrationscripts for ebean unittest --- drop dependencies -drop view if exists migtest_e_history2_with_history; -drop view if exists migtest_e_history3_with_history; -drop view if exists migtest_e_history4_with_history; - --- apply changes -create table migtest_e_ref ( - id integer generated by default as identity 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 restrict; -alter table if exists migtest_fk_none drop constraint if exists fk_migtest_fk_none_one_id; -alter table if exists migtest_fk_none_via_join drop constraint if exists fk_migtest_fk_none_via_join_one_id; -alter table if exists migtest_fk_set_null drop constraint if exists fk_migtest_fk_set_null_one_id; -alter table migtest_fk_set_null add constraint fk_migtest_fk_set_null_one_id foreign key (one_id) references migtest_fk_one (id) on delete set null on update restrict; -alter table migtest_e_basic drop constraint if exists ck_migtest_e_basic_status; -alter table migtest_e_basic alter column status drop default; -alter table migtest_e_basic alter column status drop not null; -alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I')); - -update migtest_e_basic set status2 = 'N' where status2 is null; -alter table migtest_e_basic drop constraint if exists ck_migtest_e_basic_status2; -alter table migtest_e_basic alter column status2 type varchar(1) using status2::varchar(1); -alter table migtest_e_basic alter column status2 set default 'N'; -alter table migtest_e_basic alter column status2 set not null; -alter table migtest_e_basic add constraint ck_migtest_e_basic_status2 check ( status2 in ('N','A','I')); -alter table migtest_e_basic drop constraint uq_migtest_e_basic_description; - -update migtest_e_basic set user_id = 23 where user_id is null; -alter table if exists migtest_e_basic drop constraint if exists fk_migtest_e_basic_user_id; -alter table migtest_e_basic alter column user_id set default 23; -alter table migtest_e_basic alter column user_id set not null; -alter table migtest_e_basic add column old_boolean boolean default false not null; -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; -alter table migtest_e_basic add constraint uq_migtest_e_basic_indextest2 unique (indextest2); -alter table migtest_e_basic add constraint uq_migtest_e_basic_indextest6 unique (indextest6); -alter table migtest_e_enum drop constraint if exists ck_migtest_e_enum_test_status; -alter table migtest_e_enum add constraint ck_migtest_e_enum_test_status check ( test_status in ('N','A','I')); -comment on column migtest_e_history.test_string is ''; -comment on table migtest_e_history is ''; -alter table migtest_e_history2 alter column test_string drop default; -alter table migtest_e_history2 alter column test_string drop not null; -alter table migtest_e_history2 add column obsolete_string1 varchar(255); -alter table migtest_e_history2 add column obsolete_string2 varchar(255); -alter table migtest_e_history2_history add column obsolete_string1 varchar(255); -alter table migtest_e_history2_history add column obsolete_string2 varchar(255); - -alter table migtest_e_history4 alter column test_number type integer using test_number::integer; -alter table migtest_e_history4_history alter column test_number type integer using test_number::integer; -alter table migtest_e_history6 alter column test_number1 drop default; -alter table migtest_e_history6 alter column test_number1 drop not null; - --- NOTE: table has @History - special migration may be necessary -update migtest_e_history6 set test_number2 = 7 where test_number2 is null; -alter table migtest_e_history6 alter column test_number2 set default 7; -alter table migtest_e_history6 alter column test_number2 set not null; -create index if not exists ix_migtest_e_basic_indextest1 on migtest_e_basic (indextest1); -create index if not exists ix_migtest_e_basic_indextest5 on migtest_e_basic (indextest5); -create index if not exists ix_m12_otoc71 on migtest_oto_child (name); -create unique index if not exists uq_m12_otoc71 on migtest_oto_child (lower(name)); -create unique index if not exists ix_migtest_oto_master_lowername on migtest_oto_master (lower(name)); -drop index if exists ix_migtest_e_basic_indextest3; -drop index if exists ix_migtest_e_basic_indextest6; -create index ix_migtest_e_basic_eref_id on migtest_e_basic (eref_id); -alter table migtest_e_basic add constraint fk_migtest_e_basic_eref_id foreign key (eref_id) references migtest_e_ref (id) on delete restrict on update restrict; - -create view migtest_e_history2_with_history as select * from migtest_e_history2 union all select * from migtest_e_history2_history; - -create view migtest_e_history3_with_history as select * from migtest_e_history3 union all select * from migtest_e_history3_history; - -create view migtest_e_history4_with_history as select * from migtest_e_history4 union all select * from migtest_e_history4_history; - --- changes: [add obsolete_string1, add obsolete_string2] -create or replace function migtest_e_history2_history_version() returns trigger as $$ -declare - lowerTs timestamptz; - upperTs timestamptz; -begin - lowerTs = lower(OLD.sys_period); - upperTs = greatest(lowerTs + '1 microsecond',current_timestamp); - if (TG_OP = 'UPDATE') then - insert into migtest_e_history2_history (sys_period,id, test_string, obsolete_string2, test_string2, test_string3, new_column) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_string, OLD.obsolete_string2, OLD.test_string2, OLD.test_string3, OLD.new_column); - NEW.sys_period = tstzrange(upperTs,null); - return new; - elsif (TG_OP = 'DELETE') then - insert into migtest_e_history2_history (sys_period,id, test_string, obsolete_string2, test_string2, test_string3, new_column) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_string, OLD.obsolete_string2, OLD.test_string2, OLD.test_string3, OLD.new_column); - return old; - end if; -end; -$$ LANGUAGE plpgsql; - --- changes: [include test_string] -create or replace function migtest_e_history3_history_version() returns trigger as $$ -declare - lowerTs timestamptz; - upperTs timestamptz; -begin - lowerTs = lower(OLD.sys_period); - upperTs = greatest(lowerTs + '1 microsecond',current_timestamp); - if (TG_OP = 'UPDATE') then - insert into migtest_e_history3_history (sys_period,id, test_string) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_string); - NEW.sys_period = tstzrange(upperTs,null); - return new; - elsif (TG_OP = 'DELETE') then - insert into migtest_e_history3_history (sys_period,id, test_string) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_string); - return old; - end if; -end; -$$ LANGUAGE plpgsql; - --- changes: [alter test_number] -create or replace function migtest_e_history4_history_version() returns trigger as $$ -declare - lowerTs timestamptz; - upperTs timestamptz; -begin - lowerTs = lower(OLD.sys_period); - upperTs = greatest(lowerTs + '1 microsecond',current_timestamp); - if (TG_OP = 'UPDATE') then - insert into migtest_e_history4_history (sys_period,id, test_number) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_number); - NEW.sys_period = tstzrange(upperTs,null); - return new; - elsif (TG_OP = 'DELETE') then - insert into migtest_e_history4_history (sys_period,id, test_number) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_number); - return old; - end if; -end; -$$ LANGUAGE plpgsql; - diff --git a/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/postgres/1.4__dropsFor_1.3.sql b/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/postgres/1.4__dropsFor_1.3.sql deleted file mode 100644 index 748ee959b..000000000 --- a/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/postgres/1.4__dropsFor_1.3.sql +++ /dev/null @@ -1,91 +0,0 @@ --- Migrationscripts for ebean unittest --- drop dependencies -drop trigger if exists migtest_e_history_history_upd on migtest_e_history cascade; -drop function if exists migtest_e_history_history_version(); - -drop view migtest_e_history_with_history; -alter table migtest_e_history drop column sys_period; -drop table migtest_e_history_history; - -drop view if exists migtest_e_history2_with_history; -drop view if exists migtest_e_history5_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; - -alter table migtest_e_basic drop column new_boolean_field2; - -alter table migtest_e_basic drop column progress; - -alter table migtest_e_basic drop column new_integer; - -alter table migtest_e_history2 drop column test_string2; -alter table migtest_e_history2_history drop column test_string2; - -alter table migtest_e_history2 drop column test_string3; -alter table migtest_e_history2_history drop column test_string3; - -alter table migtest_e_history2 drop column new_column; -alter table migtest_e_history2_history drop column new_column; - -alter table migtest_e_history5 drop column test_boolean; -alter table migtest_e_history5_history drop column test_boolean; - -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; -create view migtest_e_history2_with_history as select * from migtest_e_history2 union all select * from migtest_e_history2_history; - -create view migtest_e_history5_with_history as select * from migtest_e_history5 union all select * from migtest_e_history5_history; - --- changes: [drop test_string2, drop test_string3, drop new_column] -create or replace function migtest_e_history2_history_version() returns trigger as $$ -declare - lowerTs timestamptz; - upperTs timestamptz; -begin - lowerTs = lower(OLD.sys_period); - upperTs = greatest(lowerTs + '1 microsecond',current_timestamp); - if (TG_OP = 'UPDATE') then - insert into migtest_e_history2_history (sys_period,id, test_string, obsolete_string2) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_string, OLD.obsolete_string2); - NEW.sys_period = tstzrange(upperTs,null); - return new; - elsif (TG_OP = 'DELETE') then - insert into migtest_e_history2_history (sys_period,id, test_string, obsolete_string2) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_string, OLD.obsolete_string2); - return old; - end if; -end; -$$ LANGUAGE plpgsql; - --- changes: [drop test_boolean] -create or replace function migtest_e_history5_history_version() returns trigger as $$ -declare - lowerTs timestamptz; - upperTs timestamptz; -begin - lowerTs = lower(OLD.sys_period); - upperTs = greatest(lowerTs + '1 microsecond',current_timestamp); - if (TG_OP = 'UPDATE') then - insert into migtest_e_history5_history (sys_period,id, test_number) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_number); - NEW.sys_period = tstzrange(upperTs,null); - return new; - elsif (TG_OP = 'DELETE') then - insert into migtest_e_history5_history (sys_period,id, test_number) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_number); - return old; - end if; -end; -$$ LANGUAGE plpgsql; - diff --git a/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/postgres/idx_postgres.migrations b/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/postgres/idx_postgres.migrations deleted file mode 100644 index 7e74e6b50..000000000 --- a/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/postgres/idx_postgres.migrations +++ /dev/null @@ -1,6 +0,0 @@ -1329543701, 1.0__initial.sql --1877647184, 1.1.sql --1861367028, 1.2__dropsFor_1.1.sql --1798982281, 1.3.sql -1959776888, 1.4__dropsFor_1.3.sql - diff --git a/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/sqlite/1.0__initial.sql b/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/sqlite/1.0__initial.sql deleted file mode 100644 index 1a4944f30..000000000 --- a/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/sqlite/1.0__initial.sql +++ /dev/null @@ -1,168 +0,0 @@ --- 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 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, - constraint pk_migtest_fk_cascade primary key (id), - foreign key (one_id) references migtest_fk_cascade_one (id) on delete cascade on update restrict -); - -create table migtest_fk_cascade_one ( - id integer not null, - constraint pk_migtest_fk_cascade_one primary key (id) -); - -create table migtest_fk_none ( - id integer not null, - one_id integer, - constraint pk_migtest_fk_none primary key (id) -); - -create table migtest_fk_none_via_join ( - id integer not null, - one_id integer, - constraint pk_migtest_fk_none_via_join primary key (id) -); - -create table migtest_fk_one ( - id integer not null, - constraint pk_migtest_fk_one primary key (id) -); - -create table migtest_fk_set_null ( - id integer not null, - one_id integer, - constraint pk_migtest_fk_set_null primary key (id), - foreign key (one_id) references migtest_fk_one (id) on delete set null on update restrict -); - -create table migtest_e_basic ( - id integer not null, - status varchar(1), - status2 varchar(1) default 'N' not null, - name varchar(127), - description varchar(127), - some_date timestamp, - old_boolean int default 0 not null, - old_boolean2 int, - eref_id integer, - indextest1 varchar(127), - indextest2 varchar(127), - indextest3 varchar(127), - indextest4 varchar(127), - indextest5 varchar(127), - indextest6 varchar(127), - user_id integer not null, - constraint ck_migtest_e_basic_status check ( status in ('N','A','I')), - constraint ck_migtest_e_basic_status2 check ( status2 in ('N','A','I')), - constraint uq_migtest_e_basic_indextest2 unique (indextest2), - constraint uq_migtest_e_basic_indextest6 unique (indextest6), - constraint pk_migtest_e_basic primary key (id), - foreign key (eref_id) references migtest_e_ref (id) on delete restrict on update restrict -); - -create table migtest_e_enum ( - id integer not null, - test_status varchar(1), - constraint ck_migtest_e_enum_test_status check ( test_status in ('N','A','I')), - constraint pk_migtest_e_enum primary key (id) -); - -create table migtest_e_history ( - id integer not null, - test_string varchar(255), - constraint pk_migtest_e_history primary key (id) -); - -create table migtest_e_history2 ( - id integer not null, - test_string varchar(255), - obsolete_string1 varchar(255), - obsolete_string2 varchar(255), - constraint pk_migtest_e_history2 primary key (id) -); - -create table migtest_e_history3 ( - id integer not null, - test_string varchar(255), - constraint pk_migtest_e_history3 primary key (id) -); - -create table migtest_e_history4 ( - id integer not null, - test_number integer, - constraint pk_migtest_e_history4 primary key (id) -); - -create table migtest_e_history5 ( - id integer not null, - test_number integer, - constraint pk_migtest_e_history5 primary key (id) -); - -create table migtest_e_history6 ( - id integer not null, - test_number1 integer, - test_number2 integer not null, - constraint pk_migtest_e_history6 primary key (id) -); - -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) -); - -create table migtest_e_softdelete ( - id integer not null, - test_string varchar(255), - 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/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/sqlite/1.1.sql b/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/sqlite/1.1.sql deleted file mode 100644 index a762b673e..000000000 --- a/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/sqlite/1.1.sql +++ /dev/null @@ -1,92 +0,0 @@ --- Migrationscripts for ebean unittest --- apply changes -create table migtest_e_user ( - id integer not null, - 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; -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; - -update migtest_e_basic set status = 'A' where status is null; -alter table migtest_e_basic drop constraint if exists ck_migtest_e_basic_status; -alter table migtest_e_basic alter column status set default 'A'; -alter table migtest_e_basic alter column status set not null; -alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I','?')); -alter table migtest_e_basic drop constraint if exists ck_migtest_e_basic_status2; -alter table migtest_e_basic alter column status2 varchar(127); -alter table migtest_e_basic alter column status2 drop default; -alter table migtest_e_basic alter column status2 set null; - --- rename all collisions; -alter table migtest_e_basic add constraint uq_migtest_e_basic_description unique (description); - -insert into migtest_e_user (id) select distinct user_id from migtest_e_basic; -alter table migtest_e_basic alter column user_id set null; -alter table migtest_e_basic add column new_string_field varchar(255) default 'foo''bar' not null; -alter table migtest_e_basic add column new_boolean_field int default 1 not null; -update migtest_e_basic set new_boolean_field = old_boolean; - -alter table migtest_e_basic add column new_boolean_field2 int default 1 not null; -alter table migtest_e_basic add column progress integer default 0 not null; -alter table migtest_e_basic add constraint ck_migtest_e_basic_progress check ( progress in (0,1,2)); -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); -alter table migtest_e_enum drop constraint if exists ck_migtest_e_enum_test_status; -alter table migtest_e_history alter column test_string integer; - --- NOTE: table has @History - special migration may be necessary -update migtest_e_history2 set test_string = 'unknown' where test_string is null; -alter table migtest_e_history2 alter column test_string set default 'unknown'; -alter table migtest_e_history2 alter column test_string set not null; -alter table migtest_e_history2 add column test_string2 varchar(255); -alter table migtest_e_history2 add column test_string3 varchar(255) default 'unknown' not null; -alter table migtest_e_history2 add column new_column varchar(20); - -alter table migtest_e_history4 alter column test_number integer; -alter table migtest_e_history5 add column test_boolean int default 0 not null; - - --- NOTE: table has @History - special migration may be necessary -update migtest_e_history6 set test_number1 = 42 where test_number1 is null; -alter table migtest_e_history6 alter column test_number1 set default 42; -alter table migtest_e_history6 alter column test_number1 set not null; -alter table migtest_e_history6 alter column test_number2 set null; -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/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/sqlite/1.2__dropsFor_1.1.sql b/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/sqlite/1.2__dropsFor_1.1.sql deleted file mode 100644 index 3f8f468ba..000000000 --- a/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/sqlite/1.2__dropsFor_1.1.sql +++ /dev/null @@ -1,13 +0,0 @@ --- Migrationscripts for ebean unittest --- apply changes -alter table migtest_e_basic drop column old_boolean; - -alter table migtest_e_basic drop column old_boolean2; - -alter table migtest_e_basic drop column eref_id; - -alter table migtest_e_history2 drop column obsolete_string1; - -alter table migtest_e_history2 drop column obsolete_string2; - -drop table if exists migtest_e_ref; diff --git a/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/sqlite/1.3.sql b/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/sqlite/1.3.sql deleted file mode 100644 index 3812d6e38..000000000 --- a/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/sqlite/1.3.sql +++ /dev/null @@ -1,62 +0,0 @@ --- Migrationscripts for ebean unittest --- 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; -alter table migtest_fk_set_null drop constraint if exists fk_migtest_fk_set_null_one_id; -alter table migtest_e_basic drop constraint if exists ck_migtest_e_basic_status; -alter table migtest_e_basic alter column status drop default; -alter table migtest_e_basic alter column status set null; -alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I')); - -update migtest_e_basic set status2 = 'N' where status2 is null; -alter table migtest_e_basic drop constraint if exists ck_migtest_e_basic_status2; -alter table migtest_e_basic alter column status2 varchar(1); -alter table migtest_e_basic alter column status2 set default 'N'; -alter table migtest_e_basic alter column status2 set not null; -alter table migtest_e_basic add constraint ck_migtest_e_basic_status2 check ( status2 in ('N','A','I')); -alter table migtest_e_basic drop constraint uq_migtest_e_basic_description; - -update migtest_e_basic set user_id = 23 where user_id is null; -alter table migtest_e_basic drop constraint if exists fk_migtest_e_basic_user_id; -alter table migtest_e_basic alter column user_id set default 23; -alter table migtest_e_basic alter column user_id set not null; -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; -alter table migtest_e_basic add constraint uq_migtest_e_basic_indextest2 unique (indextest2); -alter table migtest_e_basic add constraint uq_migtest_e_basic_indextest6 unique (indextest6); -alter table migtest_e_enum drop constraint if exists ck_migtest_e_enum_test_status; -alter table migtest_e_enum add constraint ck_migtest_e_enum_test_status check ( test_status in ('N','A','I')); -alter table migtest_e_history2 alter column test_string drop default; -alter table migtest_e_history2 alter column test_string set null; -alter table migtest_e_history2 add column obsolete_string1 varchar(255); -alter table migtest_e_history2 add column obsolete_string2 varchar(255); - -alter table migtest_e_history4 alter column test_number integer; -alter table migtest_e_history6 alter column test_number1 drop default; -alter table migtest_e_history6 alter column test_number1 set null; - --- NOTE: table has @History - special migration may be necessary -update migtest_e_history6 set test_number2 = 7 where test_number2 is null; -alter table migtest_e_history6 alter column test_number2 set default 7; -alter table migtest_e_history6 alter column test_number2 set not null; -create index ix_migtest_e_basic_indextest1 on migtest_e_basic (indextest1); -create index ix_migtest_e_basic_indextest5 on migtest_e_basic (indextest5); -drop index if exists ix_migtest_e_basic_indextest3; -drop index if exists ix_migtest_e_basic_indextest6; -create index ix_migtest_e_basic_eref_id on migtest_e_basic (eref_id); - diff --git a/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/sqlite/1.4__dropsFor_1.3.sql b/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/sqlite/1.4__dropsFor_1.3.sql deleted file mode 100644 index 24e4e93ba..000000000 --- a/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/sqlite/1.4__dropsFor_1.3.sql +++ /dev/null @@ -1,33 +0,0 @@ --- 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; - -alter table migtest_e_basic drop column new_boolean_field2; - -alter table migtest_e_basic drop column progress; - -alter table migtest_e_basic drop column new_integer; - -alter table migtest_e_history2 drop column test_string2; - -alter table migtest_e_history2 drop column test_string3; - -alter table migtest_e_history2 drop column new_column; - -alter table migtest_e_history5 drop column test_boolean; - -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/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/sqlite/idx_sqlite.migrations b/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/sqlite/idx_sqlite.migrations deleted file mode 100644 index 919841fde..000000000 --- a/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/sqlite/idx_sqlite.migrations +++ /dev/null @@ -1,6 +0,0 @@ -1429491518, 1.0__initial.sql --347121868, 1.1.sql -1359055889, 1.2__dropsFor_1.1.sql --1764531063, 1.3.sql --1070218324, 1.4__dropsFor_1.3.sql - diff --git a/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/sqlserver17/1.0__initial.sql b/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/sqlserver17/1.0__initial.sql deleted file mode 100644 index 13b5da203..000000000 --- a/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/sqlserver17/1.0__initial.sql +++ /dev/null @@ -1,221 +0,0 @@ --- Migrationscripts for ebean unittest --- apply changes -create table migtest_ckey_assoc ( - id integer not null, - assoc_one nvarchar(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 nvarchar(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 nvarchar(127) not null, - name nvarchar(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), - constraint pk_migtest_fk_cascade primary key (id) -); -create sequence migtest_fk_cascade_seq as bigint start with 1; - -create table migtest_fk_cascade_one ( - id numeric(19) not null, - constraint pk_migtest_fk_cascade_one primary key (id) -); -create sequence migtest_fk_cascade_one_seq as bigint start with 1; - -create table migtest_fk_none ( - id numeric(19) not null, - one_id numeric(19), - constraint pk_migtest_fk_none primary key (id) -); -create sequence migtest_fk_none_seq as bigint start with 1; - -create table migtest_fk_none_via_join ( - id numeric(19) not null, - one_id numeric(19), - constraint pk_migtest_fk_none_via_join primary key (id) -); -create sequence migtest_fk_none_via_join_seq as bigint start with 1; - -create table migtest_fk_one ( - id numeric(19) not null, - constraint pk_migtest_fk_one primary key (id) -); -create sequence migtest_fk_one_seq as bigint start with 1; - -create table migtest_fk_set_null ( - id numeric(19) not null, - one_id numeric(19), - constraint pk_migtest_fk_set_null primary key (id) -); -create sequence migtest_fk_set_null_seq as bigint start with 1; - -create table migtest_e_basic ( - id integer not null, - status nvarchar(1), - status2 nvarchar(1) default 'N' not null, - name nvarchar(127), - description nvarchar(127), - some_date datetime2, - old_boolean bit default 0 not null, - old_boolean2 bit, - eref_id integer, - indextest1 nvarchar(127), - indextest2 nvarchar(127), - indextest3 nvarchar(127), - indextest4 nvarchar(127), - indextest5 nvarchar(127), - indextest6 nvarchar(127), - user_id integer not null, - constraint ck_migtest_e_basic_status check ( status in ('N','A','I')), - constraint ck_migtest_e_basic_status2 check ( status2 in ('N','A','I')), - constraint pk_migtest_e_basic primary key (id) -); -create unique nonclustered index uq_migtest_e_basic_indextest2 on migtest_e_basic(indextest2) where indextest2 is not null; -create unique nonclustered index uq_migtest_e_basic_indextest6 on migtest_e_basic(indextest6) where indextest6 is not null; -create sequence migtest_e_basic_seq as bigint start with 1; - -create table migtest_e_enum ( - id integer not null, - test_status nvarchar(1), - constraint ck_migtest_e_enum_test_status check ( test_status in ('N','A','I')), - constraint pk_migtest_e_enum primary key (id) -); -create sequence migtest_e_enum_seq as bigint start with 1; - -create table migtest_e_history ( - id integer not null, - test_string nvarchar(255), - constraint pk_migtest_e_history primary key (id) -); -create sequence migtest_e_history_seq as bigint start with 1; - -create table migtest_e_history2 ( - id integer not null, - test_string nvarchar(255), - obsolete_string1 nvarchar(255), - obsolete_string2 nvarchar(255), - constraint pk_migtest_e_history2 primary key (id) -); -create sequence migtest_e_history2_seq as bigint start with 1; - -create table migtest_e_history3 ( - id integer not null, - test_string nvarchar(255), - constraint pk_migtest_e_history3 primary key (id) -); -create sequence migtest_e_history3_seq as bigint start with 1; - -create table migtest_e_history4 ( - id integer not null, - test_number integer, - constraint pk_migtest_e_history4 primary key (id) -); -create sequence migtest_e_history4_seq as bigint start with 1; - -create table migtest_e_history5 ( - id integer not null, - test_number integer, - constraint pk_migtest_e_history5 primary key (id) -); -create sequence migtest_e_history5_seq as bigint start with 1; - -create table migtest_e_history6 ( - id integer not null, - test_number1 integer, - test_number2 integer not null, - constraint pk_migtest_e_history6 primary key (id) -); -create sequence migtest_e_history6_seq as bigint start with 1; - -create table migtest_e_ref ( - id integer not null, - name nvarchar(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 ( - id integer not null, - test_string nvarchar(255), - constraint pk_migtest_e_softdelete primary key (id) -); -create sequence migtest_e_softdelete_seq as bigint start with 1; - -create table migtest_mtm_c ( - id integer not null, - name nvarchar(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 nvarchar(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 nvarchar(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 nvarchar(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); -create index ix_migtest_fk_cascade_one_id on 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; - -create index ix_migtest_fk_set_null_one_id on migtest_fk_set_null (one_id); -alter table migtest_fk_set_null add constraint fk_migtest_fk_set_null_one_id foreign key (one_id) references migtest_fk_one (id) on delete set null; - -create index ix_migtest_e_basic_eref_id on migtest_e_basic (eref_id); -alter table migtest_e_basic add constraint fk_migtest_e_basic_eref_id foreign key (eref_id) references migtest_e_ref (id); - -alter table migtest_e_history2 - 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', -period for system_time (sys_periodFrom, sys_periodTo); -alter table migtest_e_history2 set (system_versioning = on (history_table=dbo.migtest_e_history2_history)); -alter table migtest_e_history3 - 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', -period for system_time (sys_periodFrom, sys_periodTo); -alter table migtest_e_history3 set (system_versioning = on (history_table=dbo.migtest_e_history3_history)); -alter table migtest_e_history4 - 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', -period for system_time (sys_periodFrom, sys_periodTo); -alter table migtest_e_history4 set (system_versioning = on (history_table=dbo.migtest_e_history4_history)); -alter table migtest_e_history5 - 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', -period for system_time (sys_periodFrom, sys_periodTo); -alter table migtest_e_history5 set (system_versioning = on (history_table=dbo.migtest_e_history5_history)); -alter table migtest_e_history6 - 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', -period for system_time (sys_periodFrom, sys_periodTo); -alter table migtest_e_history6 set (system_versioning = on (history_table=dbo.migtest_e_history6_history)); diff --git a/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/sqlserver17/1.1.sql b/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/sqlserver17/1.1.sql deleted file mode 100644 index f8ba67fe0..000000000 --- a/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/sqlserver17/1.1.sql +++ /dev/null @@ -1,118 +0,0 @@ --- Migrationscripts for ebean unittest --- apply changes -create table migtest_e_user ( - id integer not null, - constraint pk_migtest_e_user primary key (id) -); -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 nvarchar(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); -alter table migtest_fk_none_via_join add constraint fk_migtest_fk_none_via_join_one_id foreign key (one_id) references migtest_fk_one (id); -IF OBJECT_ID('fk_migtest_fk_set_null_one_id', 'F') IS NOT NULL alter table migtest_fk_set_null drop constraint fk_migtest_fk_set_null_one_id; -alter table migtest_fk_set_null add constraint fk_migtest_fk_set_null_one_id foreign key (one_id) references migtest_fk_one (id); - -update migtest_e_basic set status = 'A' where status is null; -IF (OBJECT_ID('ck_migtest_e_basic_status', 'C') IS NOT NULL) alter table migtest_e_basic drop constraint ck_migtest_e_basic_status; -alter table migtest_e_basic add default 'A' for status; -alter table migtest_e_basic alter column status nvarchar(1) not null; -alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I','?')); -IF (OBJECT_ID('ck_migtest_e_basic_status2', 'C') IS NOT NULL) alter table migtest_e_basic drop constraint ck_migtest_e_basic_status2; -EXEC usp_ebean_drop_default_constraint migtest_e_basic, status2; -alter table migtest_e_basic alter column status2 nvarchar(127); - --- rename all collisions; -create unique nonclustered index uq_migtest_e_basic_description on migtest_e_basic(description) where description is not null; - -insert into migtest_e_user (id) select distinct user_id from migtest_e_basic; -alter table migtest_e_basic add constraint fk_migtest_e_basic_user_id foreign key (user_id) references migtest_e_user (id); -alter table migtest_e_basic alter column user_id integer; -alter table migtest_e_basic add new_string_field nvarchar(255) default 'foo''bar' not null; -alter table migtest_e_basic add new_boolean_field bit default 1 not null; -update migtest_e_basic set new_boolean_field = old_boolean; - -alter table migtest_e_basic add new_boolean_field2 bit default 1 not null; -alter table migtest_e_basic add progress integer default 0 not null; -alter table migtest_e_basic add constraint ck_migtest_e_basic_progress check ( progress in (0,1,2)); -alter table migtest_e_basic add new_integer integer default 42 not null; - -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_indextest2', 'UQ') IS NOT NULL) alter table migtest_e_basic drop constraint uq_migtest_e_basic_indextest2; -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; -IF (OBJECT_ID('uq_migtest_e_basic_indextest6', 'UQ') IS NOT NULL) alter table migtest_e_basic drop constraint uq_migtest_e_basic_indextest6; -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; -IF (OBJECT_ID('ck_migtest_e_enum_test_status', 'C') IS NOT NULL) alter table migtest_e_enum drop constraint ck_migtest_e_enum_test_status; -alter table migtest_e_history alter column test_string numeric(19); - --- NOTE: table has @History - special migration may be necessary -update migtest_e_history2 set test_string = 'unknown' where test_string is null; -alter table migtest_e_history2 add default 'unknown' for test_string; -alter table migtest_e_history2 alter column test_string nvarchar(255) not null; -alter table migtest_e_history2 add test_string2 nvarchar(255); -alter table migtest_e_history2 add test_string3 nvarchar(255) default 'unknown' not null; -alter table migtest_e_history2 add new_column nvarchar(20); - -alter table migtest_e_history4 alter column test_number numeric(19); -alter table migtest_e_history5 add test_boolean bit default 0 not null; - - --- NOTE: table has @History - special migration may be necessary -update migtest_e_history6 set test_number1 = 42 where test_number1 is null; -alter table migtest_e_history6 add default 42 for test_number1; -alter table migtest_e_history6 alter column test_number1 integer not null; -alter table migtest_e_history6 alter column test_number2 integer; -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; -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_c foreign key (migtest_mtm_c_id) references migtest_mtm_c (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_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_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_m foreign key (migtest_mtm_m_id) references migtest_mtm_m (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_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_ckey_parent_assoc_id on migtest_ckey_parent (assoc_id); -alter table migtest_ckey_parent add constraint fk_migtest_ckey_parent_assoc_id foreign key (assoc_id) references migtest_ckey_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', -period for system_time (sys_periodFrom, sys_periodTo); -alter table migtest_e_history set (system_versioning = on (history_table=dbo.migtest_e_history_history)); --- alter table migtest_e_history3 set (system_versioning = off (history_table=dbo.migtest_e_history3_history)); --- history migration goes here --- alter table migtest_e_history3 set (system_versioning = on (history_table=dbo.migtest_e_history3_history)); diff --git a/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/sqlserver17/1.2__dropsFor_1.1.sql b/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/sqlserver17/1.2__dropsFor_1.1.sql deleted file mode 100644 index b34091486..000000000 --- a/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/sqlserver17/1.2__dropsFor_1.1.sql +++ /dev/null @@ -1,14 +0,0 @@ --- Migrationscripts for ebean unittest --- apply changes -EXEC usp_ebean_drop_column migtest_e_basic, old_boolean; - -EXEC usp_ebean_drop_column migtest_e_basic, old_boolean2; - -EXEC usp_ebean_drop_column migtest_e_basic, eref_id; - -EXEC usp_ebean_drop_column migtest_e_history2, obsolete_string1; - -EXEC usp_ebean_drop_column migtest_e_history2, obsolete_string2; - -IF OBJECT_ID('migtest_e_ref', 'U') IS NOT NULL drop table migtest_e_ref; -IF OBJECT_ID('migtest_e_ref_seq', 'SO') IS NOT NULL drop sequence migtest_e_ref_seq; diff --git a/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/sqlserver17/1.3.sql b/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/sqlserver17/1.3.sql deleted file mode 100644 index 76564b73c..000000000 --- a/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/sqlserver17/1.3.sql +++ /dev/null @@ -1,73 +0,0 @@ --- Migrationscripts for ebean unittest --- apply changes -create table migtest_e_ref ( - id integer not null, - name nvarchar(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; -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; -IF OBJECT_ID('fk_migtest_fk_none_via_join_one_id', 'F') IS NOT NULL alter table migtest_fk_none_via_join drop constraint fk_migtest_fk_none_via_join_one_id; -IF OBJECT_ID('fk_migtest_fk_set_null_one_id', 'F') IS NOT NULL alter table migtest_fk_set_null drop constraint fk_migtest_fk_set_null_one_id; -alter table migtest_fk_set_null add constraint fk_migtest_fk_set_null_one_id foreign key (one_id) references migtest_fk_one (id) on delete set null; -IF (OBJECT_ID('ck_migtest_e_basic_status', 'C') IS NOT NULL) alter table migtest_e_basic drop constraint ck_migtest_e_basic_status; -EXEC usp_ebean_drop_default_constraint migtest_e_basic, status; -alter table migtest_e_basic alter column status nvarchar(1); -alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I')); - -update migtest_e_basic set status2 = 'N' where status2 is null; -IF (OBJECT_ID('ck_migtest_e_basic_status2', 'C') IS NOT NULL) alter table migtest_e_basic drop constraint ck_migtest_e_basic_status2; -alter table migtest_e_basic add default 'N' for status2; -alter table migtest_e_basic alter column status2 nvarchar(1) not null; -alter table migtest_e_basic add constraint ck_migtest_e_basic_status2 check ( status2 in ('N','A','I')); -IF EXISTS (SELECT name FROM sys.indexes WHERE object_id = OBJECT_ID('migtest_e_basic','U') AND name = 'uq_migtest_e_basic_description') drop index uq_migtest_e_basic_description ON migtest_e_basic; -IF (OBJECT_ID('uq_migtest_e_basic_description', 'UQ') IS NOT NULL) alter table migtest_e_basic drop constraint uq_migtest_e_basic_description; - -update migtest_e_basic set user_id = 23 where user_id is null; -IF OBJECT_ID('fk_migtest_e_basic_user_id', 'F') IS NOT NULL alter table migtest_e_basic drop constraint fk_migtest_e_basic_user_id; -alter table migtest_e_basic add default 23 for user_id; -alter table migtest_e_basic alter column user_id integer not null; -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 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_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_name') drop index uq_migtest_e_basic_name 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_indextest4') drop index uq_migtest_e_basic_indextest4 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; -IF EXISTS (SELECT name FROM sys.indexes WHERE object_id = OBJECT_ID('migtest_e_basic','U') AND name = 'uq_migtest_e_basic_indextest5') drop index uq_migtest_e_basic_indextest5 ON migtest_e_basic; -IF (OBJECT_ID('uq_migtest_e_basic_indextest5', 'UQ') IS NOT NULL) alter table migtest_e_basic drop constraint uq_migtest_e_basic_indextest5; -create unique nonclustered index uq_migtest_e_basic_indextest2 on migtest_e_basic(indextest2) where indextest2 is not null; -create unique nonclustered index uq_migtest_e_basic_indextest6 on migtest_e_basic(indextest6) where indextest6 is not null; -IF (OBJECT_ID('ck_migtest_e_enum_test_status', 'C') IS NOT NULL) alter table migtest_e_enum drop constraint ck_migtest_e_enum_test_status; -alter table migtest_e_enum add constraint ck_migtest_e_enum_test_status check ( test_status in ('N','A','I')); -EXEC usp_ebean_drop_default_constraint migtest_e_history2, test_string; -alter table migtest_e_history2 alter column test_string nvarchar(255); -alter table migtest_e_history2 add obsolete_string1 nvarchar(255); -alter table migtest_e_history2 add obsolete_string2 nvarchar(255); - -alter table migtest_e_history4 alter column test_number integer; -EXEC usp_ebean_drop_default_constraint migtest_e_history6, test_number1; -alter table migtest_e_history6 alter column test_number1 integer; - --- NOTE: table has @History - special migration may be necessary -update migtest_e_history6 set test_number2 = 7 where test_number2 is null; -alter table migtest_e_history6 add default 7 for test_number2; -alter table migtest_e_history6 alter column test_number2 integer not null; -create index ix_migtest_e_basic_indextest1 on migtest_e_basic (indextest1); -create index ix_migtest_e_basic_indextest5 on migtest_e_basic (indextest5); -IF EXISTS (SELECT name FROM sys.indexes WHERE object_id = OBJECT_ID('migtest_e_basic','U') AND name = 'ix_migtest_e_basic_indextest3') drop index ix_migtest_e_basic_indextest3 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_indextest6') drop index ix_migtest_e_basic_indextest6 ON migtest_e_basic; -create index ix_migtest_e_basic_eref_id on migtest_e_basic (eref_id); -alter table migtest_e_basic add constraint fk_migtest_e_basic_eref_id foreign key (eref_id) references migtest_e_ref (id); - --- alter table migtest_e_history3 set (system_versioning = off (history_table=dbo.migtest_e_history3_history)); --- history migration goes here --- alter table migtest_e_history3 set (system_versioning = on (history_table=dbo.migtest_e_history3_history)); diff --git a/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/sqlserver17/1.4__dropsFor_1.3.sql b/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/sqlserver17/1.4__dropsFor_1.3.sql deleted file mode 100644 index 4cc7ad30b..000000000 --- a/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/sqlserver17/1.4__dropsFor_1.3.sql +++ /dev/null @@ -1,43 +0,0 @@ --- Migrationscripts for ebean unittest --- apply changes -EXEC usp_ebean_drop_column migtest_ckey_detail, one_key; - -EXEC usp_ebean_drop_column migtest_ckey_detail, two_key; - -EXEC usp_ebean_drop_column migtest_ckey_parent, assoc_id; - -EXEC usp_ebean_drop_column migtest_e_basic, new_string_field; - -EXEC usp_ebean_drop_column migtest_e_basic, new_boolean_field; - -EXEC usp_ebean_drop_column migtest_e_basic, new_boolean_field2; - -EXEC usp_ebean_drop_column migtest_e_basic, progress; - -EXEC usp_ebean_drop_column migtest_e_basic, new_integer; - -EXEC usp_ebean_drop_column migtest_e_history2, test_string2; - -EXEC usp_ebean_drop_column migtest_e_history2, test_string3; - -EXEC usp_ebean_drop_column migtest_e_history2, new_column; - -EXEC usp_ebean_drop_column migtest_e_history5, test_boolean; - -EXEC usp_ebean_drop_column migtest_e_softdelete, deleted; - -EXEC usp_ebean_drop_column migtest_oto_child, 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; -EXEC usp_ebean_drop_default_constraint migtest_e_history, sys_periodFrom; -EXEC usp_ebean_drop_default_constraint migtest_e_history, sys_periodTo; -alter table migtest_e_history set (system_versioning = off); -alter table migtest_e_history drop period for system_time; -alter table migtest_e_history drop column sys_periodFrom; -alter table migtest_e_history drop column sys_periodTo; -IF OBJECT_ID('migtest_e_history_history', 'U') IS NOT NULL drop table migtest_e_history_history; - diff --git a/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/sqlserver17/I__create_procs.sql b/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/sqlserver17/I__create_procs.sql deleted file mode 100644 index 6f916bcc9..000000000 --- a/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/sqlserver17/I__create_procs.sql +++ /dev/null @@ -1,110 +0,0 @@ --- Initial script to create stored procedures etc for sqlserver platform - --- create table-value-parameters -if not exists (select name from sys.types where name = 'ebean_bigint_tvp') create type ebean_bigint_tvp as table (c1 bigint) -GO -if not exists (select name from sys.types where name = 'ebean_float_tvp') create type ebean_float_tvp as table (c1 float) -GO -if not exists (select name from sys.types where name = 'ebean_bit_tvp') create type ebean_bit_tvp as table (c1 bit) -GO -if not exists (select name from sys.types where name = 'ebean_date_tvp') create type ebean_date_tvp as table (c1 date) -GO -if not exists (select name from sys.types where name = 'ebean_time_tvp') create type ebean_time_tvp as table (c1 time) -GO -if not exists (select name from sys.types where name = 'ebean_uniqueidentifier_tvp') create type ebean_uniqueidentifier_tvp as table (c1 uniqueidentifier) -GO -if not exists (select name from sys.types where name = 'ebean_nvarchar_tvp') create type ebean_nvarchar_tvp as table (c1 nvarchar(max)) -GO - --- --- PROCEDURE: usp_ebean_drop_indices TABLE, COLUMN --- deletes all indices referring to TABLE.COLUMN --- -CREATE OR ALTER PROCEDURE usp_ebean_drop_indices @tableName nvarchar(255), @columnName nvarchar(255) -AS SET NOCOUNT ON -declare @sql nvarchar(1000) -declare @indexName nvarchar(255) -BEGIN - DECLARE index_cursor CURSOR FOR SELECT i.name from sys.indexes i - join sys.index_columns ic on ic.object_id = i.object_id and ic.index_id = i.index_id - join sys.columns c on c.object_id = ic.object_id and c.column_id = ic.column_id - where i.object_id = OBJECT_ID(@tableName) AND c.name = @columnName; - OPEN index_cursor - FETCH NEXT FROM index_cursor INTO @indexName - WHILE @@FETCH_STATUS = 0 - BEGIN - set @sql = 'drop index ' + @indexName + ' on ' + @tableName; - EXECUTE(@sql); - - FETCH NEXT FROM index_cursor INTO @indexName - END; - CLOSE index_cursor; - DEALLOCATE index_cursor; -END -GO - --- --- PROCEDURE: usp_ebean_drop_default_constraint TABLE, COLUMN --- deletes the default constraint, which has a random name --- -CREATE OR ALTER PROCEDURE usp_ebean_drop_default_constraint @tableName nvarchar(255), @columnName nvarchar(255) -AS SET NOCOUNT ON -declare @tmp nvarchar(1000) -BEGIN - 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(@tableName) and t2.name = @columnName; - - if @tmp is not null EXEC('alter table ' + @tableName +' drop constraint ' + @tmp); -END -GO - --- --- PROCEDURE: usp_ebean_drop_constraints TABLE, COLUMN --- deletes constraints and foreign keys refering to TABLE.COLUMN --- -CREATE OR ALTER PROCEDURE usp_ebean_drop_constraints @tableName nvarchar(255), @columnName nvarchar(255) -AS SET NOCOUNT ON -declare @sql nvarchar(1000) -declare @constraintName nvarchar(255) -BEGIN - DECLARE name_cursor CURSOR FOR - SELECT cc.name from sys.check_constraints cc - join sys.columns c on c.object_id = cc.parent_object_id and c.column_id = cc.parent_column_id - where parent_object_id = OBJECT_ID(@tableName) AND c.name = @columnName - UNION SELECT fk.name from sys.foreign_keys fk - join sys.foreign_key_columns fkc on fkc.constraint_object_id = fk.object_id - and fkc.parent_object_id = fk.parent_object_id - join sys.columns c on c.object_id = fkc.parent_object_id and c.column_id = fkc.parent_column_id - where fkc.parent_object_id = OBJECT_ID(@tableName) AND c.name = @columnName; - - OPEN name_cursor - FETCH NEXT FROM name_cursor INTO @constraintName - WHILE @@FETCH_STATUS = 0 - BEGIN - set @sql = 'alter table ' + @tableName + ' drop constraint ' + @constraintName; - EXECUTE(@sql); - - FETCH NEXT FROM name_cursor INTO @constraintName - END; - CLOSE name_cursor; - DEALLOCATE name_cursor; -END -GO - --- --- PROCEDURE: usp_ebean_drop_column TABLE, COLUMN --- deletes the column annd ensures that all indices and constraints are dropped first --- -CREATE OR ALTER PROCEDURE usp_ebean_drop_column @tableName nvarchar(255), @columnName nvarchar(255) -AS SET NOCOUNT ON -declare @sql nvarchar(1000) -BEGIN - EXEC usp_ebean_drop_indices @tableName, @columnName; - EXEC usp_ebean_drop_default_constraint @tableName, @columnName; - EXEC usp_ebean_drop_constraints @tableName, @columnName; - - set @sql = 'alter table ' + @tableName + ' drop column ' + @columnName; - EXECUTE(@sql); -END -GO diff --git a/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/sqlserver17/idx_sqlserver.migrations b/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/sqlserver17/idx_sqlserver.migrations deleted file mode 100644 index f7cd1c04a..000000000 --- a/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/sqlserver17/idx_sqlserver.migrations +++ /dev/null @@ -1,7 +0,0 @@ --2122378240, I__create_procs.sql --1048913407, 1.0__initial.sql -615613536, 1.1.sql --1805601919, 1.2__dropsFor_1.1.sql --1791137342, 1.3.sql -460536923, 1.4__dropsFor_1.3.sql - diff --git a/ebean-test/src/test/java/io/ebeaninternal/dbmigration/DbMigrationDropHistoryTest.java b/ebean-test/src/test/java/io/ebeaninternal/dbmigration/DbMigrationDropHistoryTest.java index 56752e7f2..fce49b1dc 100644 --- a/ebean-test/src/test/java/io/ebeaninternal/dbmigration/DbMigrationDropHistoryTest.java +++ b/ebean-test/src/test/java/io/ebeaninternal/dbmigration/DbMigrationDropHistoryTest.java @@ -11,6 +11,7 @@ import java.io.File; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; +import java.nio.file.Paths; import java.util.Arrays; import java.util.List; @@ -32,10 +33,18 @@ public class DbMigrationDropHistoryTest { main(null); } + @Test + public void lastVersion_no_v_Prefix() { + File d = new File("src/test/resources/migrationtest-history/dbmigration"); + assertThat(LastMigration.lastVersion(d, null)).isEqualTo("1.2"); + } + public static void main(String[] args) throws IOException { logger.info("start"); - + // First, we clean up the output-directory + Files.walk(Paths.get("src/test/resources/migrationtest-history")) + .filter(Files::isRegularFile).map(Path::toFile).forEach(File::delete); DefaultDbMigration migration = new DefaultDbMigration(); // We use src/test/resources as output directory (so we see in GIT if files will change) diff --git a/ebean-test/src/test/java/io/ebeaninternal/dbmigration/DbMigrationGenerateTest.java b/ebean-test/src/test/java/io/ebeaninternal/dbmigration/DbMigrationGenerateTest.java index cdfc3df13..2e0824efb 100644 --- a/ebean-test/src/test/java/io/ebeaninternal/dbmigration/DbMigrationGenerateTest.java +++ b/ebean-test/src/test/java/io/ebeaninternal/dbmigration/DbMigrationGenerateTest.java @@ -12,6 +12,7 @@ import java.io.File; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; +import java.nio.file.Paths; import java.util.Arrays; import static org.assertj.core.api.Assertions.assertThat; @@ -28,7 +29,7 @@ public class DbMigrationGenerateTest { private static final Logger logger = LoggerFactory.getLogger(DbMigrationGenerateTest.class); public static void main(String[] args) throws IOException { - run("ebean-ddl-generator/src/test/resources"); + run("ebean-test/src/test/resources"); } @Test @@ -39,25 +40,40 @@ public class DbMigrationGenerateTest { public static void run(String pathToResources) throws IOException { logger.info("start current directory: " + new File(".").getAbsolutePath()); + + // First, we clean up the output-directory + Files.walk(Paths.get(pathToResources, "migrationtest")) + .filter(Files::isRegularFile).map(Path::toFile).forEach(File::delete); + DefaultDbMigration migration = new DefaultDbMigration(); migration.setIncludeIndex(true); // We use src/test/resources as output directory (so we see in GIT if files will change) migration.setPathToResources(pathToResources); - migration.setMigrationPath("db/migration"); - migration.setMigrationPath(null); // use the default for this test - // migration.addPlatform(Platform.GENERIC, "generic"); there is no ddl handler for generic - // migration.addPlatform(Platform.SQLANYWHERE, "sqlanywhere"); and sqlanywhere - migration.addPlatform(Platform.DB2); + migration.addPlatform(Platform.CLICKHOUSE); + migration.addPlatform(Platform.COCKROACH); + migration.addPlatform(Platform.DB2FORI); + migration.addPlatform(Platform.DB2LUW); + migration.addPlatform(Platform.DB2ZOS); + migration.addPlatform(Platform.GENERIC); migration.addPlatform(Platform.H2); - migration.addPlatform(Platform.HSQLDB, "hsqldb"); - migration.addPlatform(Platform.MYSQL, "mysql"); - migration.addPlatform(Platform.MYSQL55, "mysql55"); - migration.addPlatform(Platform.POSTGRES); - migration.addPlatform(Platform.ORACLE); - migration.addPlatform(Platform.SQLITE); - migration.addPlatform(Platform.SQLSERVER17, "sqlserver17"); migration.addPlatform(Platform.HANA); + migration.addPlatform(Platform.HSQLDB); + migration.addPlatform(Platform.MARIADB); + migration.addPlatform(Platform.MARIADB, "mariadb-noprocs"); + migration.addPlatform(Platform.MYSQL); + migration.addPlatform(Platform.MYSQL55); + migration.addPlatform(Platform.NUODB); + migration.addPlatform(Platform.ORACLE); + migration.addPlatform(Platform.ORACLE11); + migration.addPlatform(Platform.POSTGRES); + migration.addPlatform(Platform.POSTGRES9); + migration.addPlatform(Platform.SQLANYWHERE); + migration.addPlatform(Platform.SQLITE); + migration.addPlatform(Platform.SQLSERVER16); + migration.addPlatform(Platform.SQLSERVER17); + migration.addPlatform(Platform.YUGABYTE); + DatabaseConfig config = new DatabaseConfig(); config.setName("migrationtest"); @@ -66,16 +82,10 @@ public class DbMigrationGenerateTest { config.setDefaultServer(false); config.getProperties().put("ebean.hana.generateUniqueDdl", "true"); // need to generate unique statements to prevent them from being filtered out as duplicates by the DdlRunner - config.setPackages(Arrays.asList("misc.migration.v1_0")); Database server = DatabaseFactory.create(config); migration.setServer(server); - // First, we clean up the output-directory - assertThat(migration.migrationDirectory().getAbsolutePath()).contains("migrationtest"); - Files.walk(migration.migrationDirectory().toPath()) - .filter(Files::isRegularFile).map(Path::toFile).forEach(File::delete); - // then we generate migration scripts for v1_0 assertThat(migration.generateMigration()).isEqualTo("1.0__initial"); // and we check repeatative calls diff --git a/ebean-test/src/test/java/io/ebeaninternal/dbmigration/DbMigrationTest.java b/ebean-test/src/test/java/io/ebeaninternal/dbmigration/DbMigrationTest.java index 2bf74e8bb..b85e1b227 100644 --- a/ebean-test/src/test/java/io/ebeaninternal/dbmigration/DbMigrationTest.java +++ b/ebean-test/src/test/java/io/ebeaninternal/dbmigration/DbMigrationTest.java @@ -1,30 +1,38 @@ package io.ebeaninternal.dbmigration; -import io.localtest.BaseTestCase; +import io.ebean.BaseTestCase; import io.ebean.SqlRow; import io.ebean.SqlUpdate; import io.ebean.annotation.IgnorePlatform; import io.ebean.annotation.Platform; -import io.ebeaninternal.dbmigration.ddlgeneration.Helper; import org.junit.jupiter.api.Test; +import java.io.File; import java.io.IOException; +import java.net.URL; import java.util.List; import static org.assertj.core.api.Assertions.assertThat; public class DbMigrationTest extends BaseTestCase { - private void runScript(boolean expectErrors, String scriptName) throws IOException { - String ddl = Helper.asText(this, "/dbmigration/migrationtest/" + server().platform().name().toLowerCase() + "/" + scriptName); - runScript(expectErrors, ddl, scriptName); + private void runScript(String scriptName) throws IOException { + URL url = getClass().getResource("/migrationtest/dbmigration/" + server().platform().name().toLowerCase() + "/" + scriptName); + assert url != null : scriptName + " not found"; + server().script().run(url); + } + + @Test + public void lastVersion() { + File d = new File("src/test/resources/migrationtest/dbmigration/h2"); + assertThat(LastMigration.lastVersion(d, null)).isEqualTo("1.4"); + assertThat(LastMigration.nextVersion(d, null, false)).isEqualTo("1.5"); + assertThat(LastMigration.nextVersion(d, null, true)).isEqualTo("1.4"); } - private void runScript(boolean useAutoCommit, String content, String scriptName) { - server().script().runScript(scriptName, content, useAutoCommit); - } - - @IgnorePlatform({Platform.ORACLE, Platform.NUODB, Platform.MARIADB}) + @IgnorePlatform({Platform.ORACLE, Platform.NUODB, Platform.POSTGRES, Platform.YUGABYTE}) + // Note: Postgres locks up on build server + // Note: YUGABYTE complains on "alter table migtest_e_basic alter column status set not null;" @Test public void testRunMigration() throws IOException { // first clean up previously created objects @@ -50,16 +58,17 @@ public class DbMigrationTest extends BaseTestCase { "migtest_fk_set_null", "migtest_mtm_c", "migtest_mtm_m", + "migtest_mtm_m_phone_numbers", "migtest_mtm_c_migtest_mtm_m", "migtest_mtm_m_migtest_mtm_c", "migtest_oto_child", "migtest_oto_master"); - if (isSqlServer()) { // || isMySql() - runScript(false, "I__create_procs.sql"); + if (isSqlServer() || isMariaDB()) { // || isMySql() + runScript("I__create_procs.sql"); } - runScript(false, "1.0__initial.sql"); + runScript("1.0__initial.sql"); if (isOracle() || isHana()) { SqlUpdate update = server().sqlUpdate("insert into migtest_e_basic (id, old_boolean, user_id) values (1, :false, 1)"); @@ -80,7 +89,7 @@ public class DbMigrationTest extends BaseTestCase { createHistoryEntities(); // Run migration - runScript(false, "1.1.sql"); + runScript("1.1.sql"); List result = server().sqlQuery("select * from migtest_e_basic order by id").findList(); assertThat(result).hasSize(2); @@ -104,24 +113,20 @@ public class DbMigrationTest extends BaseTestCase { assertThat(row.getBoolean("new_boolean_field2")).isTrue(); //assertThat(row.getTimestamp("some_date")).isCloseTo(new Date(), 60_000); // allow 1 minute delta - runScript(false, "1.2__dropsFor_1.1.sql"); + runScript("1.2__dropsFor_1.1.sql"); // Oracle caches the statement and does not detect schema change. It fails with // an ORA-01007 - if (isOracle()) { - result = server().sqlQuery("select * from migtest_e_basic order by id,id").findList(); - } else { - result = server().sqlQuery("select * from migtest_e_basic order by id").findList(); - } + result = server().sqlQuery("select * from migtest_e_basic order by id,status").findList(); assertThat(result).hasSize(2); row = result.get(0); assertThat(row.keySet()).doesNotContain("old_boolean", "old_boolean2"); - runScript(false, "1.3.sql"); - runScript(false, "1.4__dropsFor_1.3.sql"); + runScript("1.3.sql"); + runScript("1.4__dropsFor_1.3.sql"); - // now DB structure shoud be the same as v1_0 - result = server().sqlQuery("select * from migtest_e_basic order by id").findList(); + // now DB structure shoud be the same as v1_0 - perform a diffent query. + result = server().sqlQuery("select * from migtest_e_basic order by id,name").findList(); assertThat(result).hasSize(2); row = result.get(0); assertThat(row.keySet()).contains("old_boolean", "old_boolean2"); @@ -184,8 +189,7 @@ public class DbMigrationTest extends BaseTestCase { sb.append("drop view ").append(table).append("_with_history;\n"); sb.append("drop sequence ").append(table).append("_seq;\n"); } - - runScript(true, sb.toString(), "cleanup"); - runScript(true, sb.toString(), "cleanup"); + server().script().runScript("cleanup", sb.toString(), true); + server().script().runScript("cleanup", sb.toString(), true); } } diff --git a/ebean-test/src/test/java/io/ebeaninternal/dbmigration/MysqlGenerateMigrationTest.java b/ebean-test/src/test/java/io/ebeaninternal/dbmigration/MysqlGenerateMigrationTest.java deleted file mode 100644 index 2601582f0..000000000 --- a/ebean-test/src/test/java/io/ebeaninternal/dbmigration/MysqlGenerateMigrationTest.java +++ /dev/null @@ -1,85 +0,0 @@ -package io.ebeaninternal.dbmigration; - -import io.ebean.Database; -import io.ebean.DatabaseFactory; -import io.ebean.annotation.Platform; -import io.ebean.config.DatabaseConfig; -import io.ebean.config.PlatformConfig; - -import org.junit.jupiter.api.AfterEach; -import org.junit.jupiter.api.Test; - -import java.io.File; -import java.nio.charset.StandardCharsets; -import java.nio.file.Files; -import java.nio.file.Path; -import java.util.Arrays; - -import static org.assertj.core.api.Assertions.assertThat; - -/** - * Class to test the alternative drop behaviour using stored procedures for MySql databases . - * - * @author Jonas Pöhler, FOCONIS AG - */ -public class MysqlGenerateMigrationTest { - - @AfterEach - public void resetPendingDropsProperty() { - System.clearProperty("ddl.migration.pendingDropsFor"); - } - - @Test - public void testMysqlStoredProcedures() throws Exception { - DefaultDbMigration migration = new DefaultDbMigration(); - migration.setIncludeIndex(true); - // We use src/test/resources as output directory (so we see in GIT if files will change) - migration.setPathToResources("src/test/resources"); - - migration.addPlatform(Platform.MYSQL, "mysql"); - - final PlatformConfig platformConfig = new PlatformConfig(); - platformConfig.setUseMigrationStoredProcedures(true); - - DatabaseConfig config = new DatabaseConfig(); - config.setName("migrationtest"); - config.loadFromProperties(); - config.setPlatformConfig(platformConfig); - config.setRegister(false); - config.setDefaultServer(false); - config.getProperties().put("ebean.migration.migrationPath", "db/migration/mysql"); - - config.setPackages(Arrays.asList("misc.migration.mysql_v1_0")); - Database server = DatabaseFactory.create(config); - migration.setServer(server); - migration.setMigrationPath("mysql/procedures"); - - // First, we clean up the output-directory - assertThat(migration.migrationDirectory().getAbsolutePath()).contains("procedures"); - Files.walk(migration.migrationDirectory().toPath()) - .filter(Files::isRegularFile) - .map(Path::toFile).forEach(File::delete); - - // then we generate migration scripts for v1_0 - assertThat(migration.generateMigration()).isEqualTo("1.0__initial"); - - config.setPackages(Arrays.asList("misc.migration.mysql_v1_1")); - server.shutdown(); - server = DatabaseFactory.create(config); - migration.setServer(server); - migration.setMigrationPath("mysql/procedures"); - assertThat(migration.generateMigration()).isEqualTo("1.1"); - - System.setProperty("ddl.migration.pendingDropsFor", "1.1"); - assertThat(migration.generateMigration()).isEqualTo("1.2__dropsFor_1.1"); - - final Path sqlFile = migration.migrationDirectory().toPath() - .resolve("mysql/1.2__dropsFor_1.1.sql"); - - assertThat(sqlFile).isNotEmptyFile(); - assertThat(Files.readAllLines(sqlFile, StandardCharsets.UTF_8)) - .contains("CALL usp_ebean_drop_column('migtest_e_basic', 'status2');") - .contains("CALL usp_ebean_drop_column('migtest_e_basic', 'description');"); - - } -} diff --git a/ebean-test/src/test/java/misc/migration/mysql_v1_0/EBasic.java b/ebean-test/src/test/java/misc/migration/mysql_v1_0/EBasic.java deleted file mode 100644 index b11fb4a8c..000000000 --- a/ebean-test/src/test/java/misc/migration/mysql_v1_0/EBasic.java +++ /dev/null @@ -1,89 +0,0 @@ -package misc.migration.mysql_v1_0; - -import io.ebean.annotation.DbDefault; -import io.ebean.annotation.EnumValue; -import io.ebean.annotation.NotNull; - -import javax.persistence.Entity; -import javax.persistence.Id; -import javax.persistence.Table; -import javax.validation.constraints.Size; - -@Entity -@Table(name = "migtest_e_basic") -public class EBasic { - - public enum Status { - @EnumValue("N") - NEW, - - @EnumValue("A") - ACTIVE, - - @EnumValue("I") - INACTIVE, - } - - @Id - Integer id; - - Status status; - - @DbDefault("N") - @NotNull - Status status2; - - @Size(max=127) - String name; - - @Size(max=127) - String description; - - public EBasic() { - - } - - public EBasic(String name) { - this.name = name; - } - - public Integer getId() { - return id; - } - - public void setId(Integer id) { - this.id = id; - } - - public Status getStatus() { - return status; - } - - public void setStatus(Status status) { - this.status = status; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getDescription() { - return description; - } - - public void setDescription(String description) { - this.description = description; - } - - public Status getStatus2() { - return status2; - } - - public void setStatus2(final Status status2) { - this.status2 = status2; - } -} diff --git a/ebean-test/src/test/java/misc/migration/mysql_v1_1/EBasic.java b/ebean-test/src/test/java/misc/migration/mysql_v1_1/EBasic.java deleted file mode 100644 index 739332226..000000000 --- a/ebean-test/src/test/java/misc/migration/mysql_v1_1/EBasic.java +++ /dev/null @@ -1,64 +0,0 @@ -package misc.migration.mysql_v1_1; - -import io.ebean.annotation.EnumValue; - -import javax.persistence.Entity; -import javax.persistence.Id; -import javax.persistence.Table; -import javax.validation.constraints.Size; - -@Entity -@Table(name = "migtest_e_basic") -public class EBasic { - - public enum Status { - @EnumValue("N") - NEW, - - @EnumValue("A") - ACTIVE, - - @EnumValue("I") - INACTIVE, - } - - @Id - Integer id; - - Status status; - - @Size(max=127) - String name; - - public EBasic() { - - } - - public EBasic(String name) { - this.name = name; - } - - public Integer getId() { - return id; - } - - public void setId(Integer id) { - this.id = id; - } - - public Status getStatus() { - return status; - } - - public void setStatus(Status status) { - this.status = status; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } -} diff --git a/ebean-test/src/test/java/misc/migration/v1_1/EBasic.java b/ebean-test/src/test/java/misc/migration/v1_1/EBasic.java index 0c2e5cde1..72d67fff4 100644 --- a/ebean-test/src/test/java/misc/migration/v1_1/EBasic.java +++ b/ebean-test/src/test/java/misc/migration/v1_1/EBasic.java @@ -51,7 +51,8 @@ public class EBasic { @Size(max=127) String name; - + @DbMigration(preAlter = { "-- db2 does not support parial null indices :( - so we have to clean", + "update ${table} set status = 'N' where id = 1" }, platforms = Platform.DB2) @DbMigration(preAlter = "-- rename all collisions") @Column(unique = true) @Size(max=127) diff --git a/ebean-test/src/test/java/misc/migration/v1_1/EHistory2.java b/ebean-test/src/test/java/misc/migration/v1_1/EHistory2.java index 951173c5c..750ad4e62 100644 --- a/ebean-test/src/test/java/misc/migration/v1_1/EHistory2.java +++ b/ebean-test/src/test/java/misc/migration/v1_1/EHistory2.java @@ -2,9 +2,11 @@ package misc.migration.v1_1; import io.ebean.annotation.DbDefault; +import io.ebean.annotation.DbMigration; import io.ebean.annotation.History; import io.ebean.annotation.HistoryExclude; import io.ebean.annotation.NotNull; +import io.ebean.annotation.Platform; import javax.persistence.Entity; import javax.persistence.Id; @@ -20,6 +22,13 @@ public class EHistory2 { Integer id; @NotNull + // see: https://mariadb.com/de/resources/blog/use-cases-for-mariadb-data-versioning/ + @DbMigration(preAlter = { + "SET @@system_versioning_alter_history = 1", + "update ${table} set ${column} = 'unknown' where ${column} is null"}, platforms = Platform.MARIADB) + + // other platforms + @DbMigration(preAlter = "update ${table} set ${column} = 'unknown' where ${column} is null") @DbDefault("unknown") String testString; diff --git a/ebean-test/src/test/java/misc/migration/v1_1/MtmMaster.java b/ebean-test/src/test/java/misc/migration/v1_1/MtmMaster.java index ecc97bbe7..de0f3ffc9 100644 --- a/ebean-test/src/test/java/misc/migration/v1_1/MtmMaster.java +++ b/ebean-test/src/test/java/misc/migration/v1_1/MtmMaster.java @@ -1,5 +1,6 @@ package misc.migration.v1_1; +import javax.persistence.ElementCollection; import javax.persistence.Entity; import javax.persistence.Id; import javax.persistence.ManyToMany; @@ -18,6 +19,9 @@ public class MtmMaster { @ManyToMany List children; + @ElementCollection + List phoneNumbers; + public Long getId() { return id; } diff --git a/ebean-test/src/test/resources/dbmigration/migrationtest-history/1.0__initial.sql b/ebean-test/src/test/resources/dbmigration/migrationtest-history/1.0__initial.sql deleted file mode 100644 index c2e2019a7..000000000 --- a/ebean-test/src/test/resources/dbmigration/migrationtest-history/1.0__initial.sql +++ /dev/null @@ -1,17 +0,0 @@ --- Migrationscripts for ebean unittest DbMigrationDropHistoryTest --- apply changes -create table migtest_e_history7 ( - id integer generated by default as identity not null, - constraint pk_migtest_e_history7 primary key (id) -); - -alter table migtest_e_history7 add column sys_period_start timestamp default now(); -alter table migtest_e_history7 add column sys_period_end timestamp; -create table migtest_e_history7_history( - id integer, - sys_period_start timestamp, - sys_period_end timestamp -); -create view migtest_e_history7_with_history as select * from migtest_e_history7 union all select * from migtest_e_history7_history; - -create trigger migtest_e_history7_history_upd before update,delete on migtest_e_history7 for each row call "io.ebean.config.dbplatform.h2.H2HistoryTrigger"; diff --git a/ebean-test/src/test/resources/dbmigration/migrationtest-history/1.2__dropsFor_1.1.sql b/ebean-test/src/test/resources/dbmigration/migrationtest-history/1.2__dropsFor_1.1.sql deleted file mode 100644 index 692d93f76..000000000 --- a/ebean-test/src/test/resources/dbmigration/migrationtest-history/1.2__dropsFor_1.1.sql +++ /dev/null @@ -1,10 +0,0 @@ --- Migrationscripts for ebean unittest DbMigrationDropHistoryTest --- drop dependencies -drop trigger migtest_e_history7_history_upd; -drop view migtest_e_history7_with_history; -alter table migtest_e_history7 drop column sys_period_start; -alter table migtest_e_history7 drop column sys_period_end; -drop table migtest_e_history7_history; - - --- apply changes diff --git a/ebean-test/src/test/resources/dbmigration/migrationtest-history/model/1.0__initial.model.xml b/ebean-test/src/test/resources/dbmigration/migrationtest-history/model/1.0__initial.model.xml deleted file mode 100644 index 52d70c793..000000000 --- a/ebean-test/src/test/resources/dbmigration/migrationtest-history/model/1.0__initial.model.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/ebean-test/src/test/resources/dbmigration/migrationtest-history/model/1.1.model.xml b/ebean-test/src/test/resources/dbmigration/migrationtest-history/model/1.1.model.xml deleted file mode 100644 index 8c0a04b2b..000000000 --- a/ebean-test/src/test/resources/dbmigration/migrationtest-history/model/1.1.model.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/ebean-test/src/test/resources/dbmigration/migrationtest-history/model/1.2__dropsFor_1.1.model.xml b/ebean-test/src/test/resources/dbmigration/migrationtest-history/model/1.2__dropsFor_1.1.model.xml deleted file mode 100644 index 4cfc4672f..000000000 --- a/ebean-test/src/test/resources/dbmigration/migrationtest-history/model/1.2__dropsFor_1.1.model.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/ebean-test/src/test/resources/ebean.properties b/ebean-test/src/test/resources/ebean.properties index 6dbb4633d..7a59319a5 100644 --- a/ebean-test/src/test/resources/ebean.properties +++ b/ebean-test/src/test/resources/ebean.properties @@ -199,14 +199,16 @@ datasource.hana.url=jdbc:sap://hxehost:39013/?databaseName=HXE # parameters for migration test datasource.migrationtest.username=SA datasource.migrationtest.password=SA -datasource.migrationtest.url=jdbc:h2:mem:migration +datasource.migrationtest.url=jdbc:h2:mem:migration;NON_KEYWORDS=KEY,VALUE ebean.migrationtest.applyPrefix=V ebean.migrationtest.ddl.generate=false ebean.migrationtest.ddl.run=false ebean.migrationtest.ddl.header=-- Migrationscripts for ebean unittest ebean.migrationtest.migration.appName=migrationtest -ebean.migrationtest.migration.migrationPath=dbmigration/migrationtest +ebean.migrationtest.migration.migrationPath=migrationtest/dbmigration ebean.migrationtest.migration.strict=true +dbmigration.platform.mariadb.useMigrationStoredProcedures=true +dbmigration.platform.mysql.useMigrationStoredProcedures=true # parameters for migration test datasource.migrationtest-history.username=SA @@ -217,5 +219,5 @@ ebean.migrationtest-history.ddl.generate=false ebean.migrationtest-history.ddl.run=false ebean.migrationtest-history.ddl.header=-- Migrationscripts for ebean unittest DbMigrationDropHistoryTest ebean.migrationtest-history.migration.appName=migrationtest-history -ebean.migrationtest-history.migration.migrationPath=dbmigration/migrationtest-history +ebean.migrationtest-history.migration.migrationPath=migrationtest-history/dbmigration ebean.migrationtest-history.migration.strict=true diff --git a/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest-history/1.0__initial.sql b/ebean-test/src/test/resources/migrationtest-history/dbmigration/1.0__initial.sql similarity index 100% rename from ebean-ddl-generator/src/test/resources/dbmigration/migrationtest-history/1.0__initial.sql rename to ebean-test/src/test/resources/migrationtest-history/dbmigration/1.0__initial.sql diff --git a/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest-history/1.2__dropsFor_1.1.sql b/ebean-test/src/test/resources/migrationtest-history/dbmigration/1.2__dropsFor_1.1.sql similarity index 100% rename from ebean-ddl-generator/src/test/resources/dbmigration/migrationtest-history/1.2__dropsFor_1.1.sql rename to ebean-test/src/test/resources/migrationtest-history/dbmigration/1.2__dropsFor_1.1.sql diff --git a/ebean-test/src/test/resources/dbmigration/migrationtest-history/R__multi_comments.sql b/ebean-test/src/test/resources/migrationtest-history/dbmigration/R__multi_comments.sql similarity index 100% rename from ebean-test/src/test/resources/dbmigration/migrationtest-history/R__multi_comments.sql rename to ebean-test/src/test/resources/migrationtest-history/dbmigration/R__multi_comments.sql diff --git a/ebean-test/src/test/resources/dbmigration/migrationtest-history/R__order_views.sql b/ebean-test/src/test/resources/migrationtest-history/dbmigration/R__order_views.sql similarity index 100% rename from ebean-test/src/test/resources/dbmigration/migrationtest-history/R__order_views.sql rename to ebean-test/src/test/resources/migrationtest-history/dbmigration/R__order_views.sql diff --git a/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest-history/model/1.0__initial.model.xml b/ebean-test/src/test/resources/migrationtest-history/dbmigration/model/1.0__initial.model.xml similarity index 100% rename from ebean-ddl-generator/src/test/resources/dbmigration/migrationtest-history/model/1.0__initial.model.xml rename to ebean-test/src/test/resources/migrationtest-history/dbmigration/model/1.0__initial.model.xml diff --git a/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest-history/model/1.1.model.xml b/ebean-test/src/test/resources/migrationtest-history/dbmigration/model/1.1.model.xml similarity index 100% rename from ebean-ddl-generator/src/test/resources/dbmigration/migrationtest-history/model/1.1.model.xml rename to ebean-test/src/test/resources/migrationtest-history/dbmigration/model/1.1.model.xml diff --git a/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest-history/model/1.2__dropsFor_1.1.model.xml b/ebean-test/src/test/resources/migrationtest-history/dbmigration/model/1.2__dropsFor_1.1.model.xml similarity index 100% rename from ebean-ddl-generator/src/test/resources/dbmigration/migrationtest-history/model/1.2__dropsFor_1.1.model.xml rename to ebean-test/src/test/resources/migrationtest-history/dbmigration/model/1.2__dropsFor_1.1.model.xml diff --git a/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/hsqldb/1.0__initial.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb-noprocs/1.0__initial.sql similarity index 65% rename from ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/hsqldb/1.0__initial.sql rename to ebean-test/src/test/resources/migrationtest/dbmigration/mariadb-noprocs/1.0__initial.sql index 40616be0a..dd7505e20 100644 --- a/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/hsqldb/1.0__initial.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb-noprocs/1.0__initial.sql @@ -1,13 +1,13 @@ -- Migrationscripts for ebean unittest -- apply changes create table migtest_ckey_assoc ( - id integer generated by default as identity (start with 1) not null, + 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 generated by default as identity (start with 1) not null, + id integer auto_increment not null, something varchar(255), constraint pk_migtest_ckey_detail primary key (id) ); @@ -21,48 +21,48 @@ create table migtest_ckey_parent ( ); create table migtest_fk_cascade ( - id bigint generated by default as identity (start with 1) not null, + id bigint auto_increment not null, one_id bigint, constraint pk_migtest_fk_cascade primary key (id) ); create table migtest_fk_cascade_one ( - id bigint generated by default as identity (start with 1) not null, + id bigint auto_increment not null, constraint pk_migtest_fk_cascade_one primary key (id) ); create table migtest_fk_none ( - id bigint generated by default as identity (start with 1) not null, + id bigint auto_increment not null, one_id bigint, constraint pk_migtest_fk_none primary key (id) ); create table migtest_fk_none_via_join ( - id bigint generated by default as identity (start with 1) not null, + id bigint auto_increment not null, one_id bigint, constraint pk_migtest_fk_none_via_join primary key (id) ); create table migtest_fk_one ( - id bigint generated by default as identity (start with 1) not null, + id bigint auto_increment not null, constraint pk_migtest_fk_one primary key (id) ); create table migtest_fk_set_null ( - id bigint generated by default as identity (start with 1) not null, + id bigint auto_increment not null, one_id bigint, constraint pk_migtest_fk_set_null primary key (id) ); create table migtest_e_basic ( - id integer generated by default as identity (start with 1) not null, + id integer auto_increment not null, status varchar(1), status2 varchar(1) default 'N' not null, name varchar(127), description varchar(127), - some_date timestamp, - old_boolean boolean default false not null, - old_boolean2 boolean, + some_date datetime(6), + old_boolean tinyint(1) default 0 not null, + old_boolean2 tinyint(1), eref_id integer, indextest1 varchar(127), indextest2 varchar(127), @@ -71,28 +71,25 @@ create table migtest_e_basic ( indextest5 varchar(127), indextest6 varchar(127), user_id integer not null, - constraint ck_migtest_e_basic_status check ( status in ('N','A','I')), - constraint ck_migtest_e_basic_status2 check ( status2 in ('N','A','I')), constraint uq_migtest_e_basic_indextest2 unique (indextest2), constraint uq_migtest_e_basic_indextest6 unique (indextest6), constraint pk_migtest_e_basic primary key (id) ); create table migtest_e_enum ( - id integer generated by default as identity (start with 1) not null, + id integer auto_increment not null, test_status varchar(1), - constraint ck_migtest_e_enum_test_status check ( test_status in ('N','A','I')), constraint pk_migtest_e_enum primary key (id) ); create table migtest_e_history ( - id integer generated by default as identity (start with 1) not null, + id integer auto_increment not null, test_string varchar(255), constraint pk_migtest_e_history primary key (id) ); create table migtest_e_history2 ( - id integer generated by default as identity (start with 1) not null, + id integer auto_increment not null, test_string varchar(255), obsolete_string1 varchar(255), obsolete_string2 varchar(255), @@ -100,63 +97,63 @@ create table migtest_e_history2 ( ); create table migtest_e_history3 ( - id integer generated by default as identity (start with 1) not null, + id integer auto_increment not null, test_string varchar(255), constraint pk_migtest_e_history3 primary key (id) ); create table migtest_e_history4 ( - id integer generated by default as identity (start with 1) not null, + id integer auto_increment not null, test_number integer, constraint pk_migtest_e_history4 primary key (id) ); create table migtest_e_history5 ( - id integer generated by default as identity (start with 1) not null, + id integer auto_increment not null, test_number integer, constraint pk_migtest_e_history5 primary key (id) ); create table migtest_e_history6 ( - id integer generated by default as identity (start with 1) not null, + id integer auto_increment not null, test_number1 integer, test_number2 integer not null, constraint pk_migtest_e_history6 primary key (id) ); create table migtest_e_ref ( - id integer generated by default as identity (start with 1) not null, + 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) ); create table migtest_e_softdelete ( - id integer generated by default as identity (start with 1) not null, + id integer auto_increment not null, test_string varchar(255), 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, + id integer auto_increment 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, + id bigint auto_increment 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, + id integer auto_increment 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, + id bigint auto_increment not null, name varchar(255), constraint pk_migtest_oto_master primary key (id) ); @@ -172,3 +169,8 @@ alter table migtest_fk_set_null add constraint fk_migtest_fk_set_null_one_id for create index ix_migtest_e_basic_eref_id on migtest_e_basic (eref_id); alter table migtest_e_basic add constraint fk_migtest_e_basic_eref_id foreign key (eref_id) references migtest_e_ref (id) on delete restrict on update restrict; +alter table migtest_e_history2 add system versioning; +alter table migtest_e_history3 add system versioning; +alter table migtest_e_history4 add system versioning; +alter table migtest_e_history5 add system versioning; +alter table migtest_e_history6 add system versioning; diff --git a/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/hsqldb/1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb-noprocs/1.1.sql similarity index 69% rename from ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/hsqldb/1.1.sql rename to ebean-test/src/test/resources/migrationtest/dbmigration/mariadb-noprocs/1.1.sql index cebb8b994..1d15256d7 100644 --- a/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/hsqldb/1.1.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb-noprocs/1.1.sql @@ -1,7 +1,7 @@ -- Migrationscripts for ebean unittest -- apply changes create table migtest_e_user ( - id integer generated by default as identity (start with 1) not null, + id integer auto_increment not null, constraint pk_migtest_e_user primary key (id) ); @@ -23,74 +23,67 @@ 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 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; alter table migtest_fk_none_via_join add constraint fk_migtest_fk_none_via_join_one_id foreign key (one_id) references migtest_fk_one (id) on delete restrict on update restrict; -alter table migtest_fk_set_null drop constraint if exists fk_migtest_fk_set_null_one_id; +alter table migtest_fk_set_null drop foreign key fk_migtest_fk_set_null_one_id; alter table migtest_fk_set_null add constraint fk_migtest_fk_set_null_one_id foreign key (one_id) references migtest_fk_one (id) on delete restrict on update restrict; update migtest_e_basic set status = 'A' where status is null; -alter table migtest_e_basic drop constraint if exists ck_migtest_e_basic_status; -alter table migtest_e_basic alter column status set default 'A'; -alter table migtest_e_basic alter column status set not null; -alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I','?')); -alter table migtest_e_basic drop constraint if exists ck_migtest_e_basic_status2; -alter table migtest_e_basic alter column status2 varchar(127); -alter table migtest_e_basic alter column status2 drop default; -alter table migtest_e_basic alter column status2 set null; +alter table migtest_e_basic alter status set default 'A'; +alter table migtest_e_basic modify status varchar(1) not null; +alter table migtest_e_basic alter status2 drop default; +alter table migtest_e_basic modify status2 varchar(127); -- rename all collisions; alter table migtest_e_basic add constraint uq_migtest_e_basic_description unique (description); insert into migtest_e_user (id) select distinct user_id from migtest_e_basic; alter table migtest_e_basic add constraint fk_migtest_e_basic_user_id foreign key (user_id) references migtest_e_user (id) on delete restrict on update restrict; -alter table migtest_e_basic alter column user_id set null; +alter table migtest_e_basic modify user_id integer; alter table migtest_e_basic add column new_string_field varchar(255) default 'foo''bar' not null; -alter table migtest_e_basic add column new_boolean_field boolean default true not null; +alter table migtest_e_basic add column new_boolean_field tinyint(1) default 1 not null; update migtest_e_basic set new_boolean_field = old_boolean; -alter table migtest_e_basic add column new_boolean_field2 boolean default true not null; +alter table migtest_e_basic add column new_boolean_field2 tinyint(1) default 1 not null; alter table migtest_e_basic add column progress integer default 0 not null; -alter table migtest_e_basic add constraint ck_migtest_e_basic_progress check ( progress in (0,1,2)); 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 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); -alter table migtest_e_enum drop constraint if exists ck_migtest_e_enum_test_status; -comment on column migtest_e_history.test_string is 'Column altered to long now'; -alter table migtest_e_history alter column test_string bigint; -comment on table migtest_e_history is 'We have history now'; +alter table migtest_e_history modify test_string bigint; +alter table migtest_e_history comment = 'We have history now'; -- NOTE: table has @History - special migration may be necessary update migtest_e_history2 set test_string = 'unknown' where test_string is null; -alter table migtest_e_history2 alter column test_string set default 'unknown'; -alter table migtest_e_history2 alter column test_string set not null; +alter table migtest_e_history2 alter test_string set default 'unknown'; +alter table migtest_e_history2 modify test_string varchar(255) not null; alter table migtest_e_history2 add column test_string2 varchar(255); alter table migtest_e_history2 add column test_string3 varchar(255) default 'unknown' not null; alter table migtest_e_history2 add column new_column varchar(20); -alter table migtest_e_history4 alter column test_number bigint; -alter table migtest_e_history5 add column test_boolean boolean default false not null; +alter table migtest_e_history4 modify test_number bigint; +alter table migtest_e_history5 add column test_boolean tinyint(1) default 0 not null; -- NOTE: table has @History - special migration may be necessary update migtest_e_history6 set test_number1 = 42 where test_number1 is null; -alter table migtest_e_history6 alter column test_number1 set default 42; -alter table migtest_e_history6 alter column test_number1 set not null; -alter table migtest_e_history6 alter column test_number2 set null; -alter table migtest_e_softdelete add column deleted boolean default false not null; +alter table migtest_e_history6 alter test_number1 set default 42; +alter table migtest_e_history6 modify test_number1 integer not null; +alter table migtest_e_history6 modify test_number2 integer; +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 if exists ix_migtest_e_basic_indextest1; -drop index if exists ix_migtest_e_basic_indextest5; +drop index ix_migtest_e_basic_indextest1 on migtest_e_basic; +drop index ix_migtest_e_basic_indextest5 on migtest_e_basic; 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_c foreign key (migtest_mtm_c_id) references migtest_mtm_c (id) on delete restrict on update restrict; @@ -108,3 +101,6 @@ alter table migtest_ckey_parent add constraint fk_migtest_ckey_parent_assoc_id f 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 system versioning; +lock tables migtest_e_history3 write; +unlock tables; diff --git a/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/hsqldb/1.2__dropsFor_1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb-noprocs/1.2__dropsFor_1.1.sql similarity index 100% rename from ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/hsqldb/1.2__dropsFor_1.1.sql rename to ebean-test/src/test/resources/migrationtest/dbmigration/mariadb-noprocs/1.2__dropsFor_1.1.sql diff --git a/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/mysql/1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb-noprocs/1.3.sql similarity index 50% rename from ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/mysql/1.3.sql rename to ebean-test/src/test/resources/migrationtest/dbmigration/mariadb-noprocs/1.3.sql index 6953c06f5..5930c283a 100644 --- a/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/mysql/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb-noprocs/1.3.sql @@ -1,9 +1,4 @@ -- Migrationscripts for ebean unittest --- drop dependencies -drop view if exists migtest_e_history2_with_history; -drop view if exists migtest_e_history3_with_history; -drop view if exists migtest_e_history4_with_history; - -- apply changes create table migtest_e_ref ( id integer auto_increment not null, @@ -46,11 +41,8 @@ alter table migtest_e_history2 alter test_string drop default; alter table migtest_e_history2 modify test_string varchar(255); alter table migtest_e_history2 add column obsolete_string1 varchar(255); alter table migtest_e_history2 add column obsolete_string2 varchar(255); -alter table migtest_e_history2_history add column obsolete_string1 varchar(255); -alter table migtest_e_history2_history add column obsolete_string2 varchar(255); alter table migtest_e_history4 modify test_number integer; -alter table migtest_e_history4_history modify test_number integer; alter table migtest_e_history6 alter test_number1 drop default; alter table migtest_e_history6 modify test_number1 integer; @@ -58,58 +50,12 @@ alter table migtest_e_history6 modify test_number1 integer; update migtest_e_history6 set test_number2 = 7 where test_number2 is null; alter table migtest_e_history6 alter test_number2 set default 7; alter table migtest_e_history6 modify test_number2 integer not null; -alter table migtest_oto_child add constraint uq_m12_otoc72 unique (name); -alter table migtest_oto_master add constraint uq_migtest_oto_master_name unique (name); create index ix_migtest_e_basic_indextest1 on migtest_e_basic (indextest1); create index ix_migtest_e_basic_indextest5 on migtest_e_basic (indextest5); -create index ix_m12_otoc72 on migtest_oto_child (name); -create index ix_migtest_oto_master_name on migtest_oto_master (name); drop index ix_migtest_e_basic_indextest3 on migtest_e_basic; drop index ix_migtest_e_basic_indextest6 on migtest_e_basic; create index ix_migtest_e_basic_eref_id on migtest_e_basic (eref_id); alter table migtest_e_basic add constraint fk_migtest_e_basic_eref_id foreign key (eref_id) references migtest_e_ref (id) on delete restrict on update restrict; -create view migtest_e_history2_with_history as select * from migtest_e_history2 union all select * from migtest_e_history2_history; - -create view migtest_e_history3_with_history as select * from migtest_e_history3 union all select * from migtest_e_history3_history; - -create view migtest_e_history4_with_history as select * from migtest_e_history4 union all select * from migtest_e_history4_history; - -lock tables migtest_e_history2 write, migtest_e_history3 write, migtest_e_history4 write; --- changes: [add obsolete_string1, add obsolete_string2] -drop trigger migtest_e_history2_history_upd; -drop trigger migtest_e_history2_history_del; -delimiter $$ -create trigger migtest_e_history2_history_upd before update on migtest_e_history2 for each row begin - insert into migtest_e_history2_history (sys_period_start,sys_period_end,id, test_string, obsolete_string2, test_string2, test_string3, new_column) values (OLD.sys_period_start, now(6),OLD.id, OLD.test_string, OLD.obsolete_string2, OLD.test_string2, OLD.test_string3, OLD.new_column); - set NEW.sys_period_start = now(6); -end$$ -delimiter $$ -create trigger migtest_e_history2_history_del before delete on migtest_e_history2 for each row begin - insert into migtest_e_history2_history (sys_period_start,sys_period_end,id, test_string, obsolete_string2, test_string2, test_string3, new_column) values (OLD.sys_period_start, now(6),OLD.id, OLD.test_string, OLD.obsolete_string2, OLD.test_string2, OLD.test_string3, OLD.new_column); -end$$ --- changes: [include test_string] -drop trigger migtest_e_history3_history_upd; -drop trigger migtest_e_history3_history_del; -delimiter $$ -create trigger migtest_e_history3_history_upd before update on migtest_e_history3 for each row begin - insert into migtest_e_history3_history (sys_period_start,sys_period_end,id, test_string) values (OLD.sys_period_start, now(6),OLD.id, OLD.test_string); - set NEW.sys_period_start = now(6); -end$$ -delimiter $$ -create trigger migtest_e_history3_history_del before delete on migtest_e_history3 for each row begin - insert into migtest_e_history3_history (sys_period_start,sys_period_end,id, test_string) values (OLD.sys_period_start, now(6),OLD.id, OLD.test_string); -end$$ --- changes: [alter test_number] -drop trigger migtest_e_history4_history_upd; -drop trigger migtest_e_history4_history_del; -delimiter $$ -create trigger migtest_e_history4_history_upd before update on migtest_e_history4 for each row begin - insert into migtest_e_history4_history (sys_period_start,sys_period_end,id, test_number) values (OLD.sys_period_start, now(6),OLD.id, OLD.test_number); - set NEW.sys_period_start = now(6); -end$$ -delimiter $$ -create trigger migtest_e_history4_history_del before delete on migtest_e_history4 for each row begin - insert into migtest_e_history4_history (sys_period_start,sys_period_end,id, test_number) values (OLD.sys_period_start, now(6),OLD.id, OLD.test_number); -end$$ +lock tables migtest_e_history3 write; unlock tables; diff --git a/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/hsqldb/1.4__dropsFor_1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb-noprocs/1.4__dropsFor_1.3.sql similarity index 94% rename from ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/hsqldb/1.4__dropsFor_1.3.sql rename to ebean-test/src/test/resources/migrationtest/dbmigration/mariadb-noprocs/1.4__dropsFor_1.3.sql index c613e4a5a..89603a694 100644 --- a/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/hsqldb/1.4__dropsFor_1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb-noprocs/1.4__dropsFor_1.3.sql @@ -32,3 +32,4 @@ 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; +alter table migtest_e_history drop system versioning; diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb-noprocs/R__order_views.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb-noprocs/R__order_views.sql new file mode 100644 index 000000000..ccf30a2c6 --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb-noprocs/R__order_views.sql @@ -0,0 +1,7 @@ + + create or replace view order_agg_vw as + select d.order_id, sum(d.order_qty * d.unit_price) as order_total, + sum(d.ship_qty * d.unit_price) as ship_total + from o_order_detail d + group by d.order_id + \ No newline at end of file diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb-noprocs/idx_mariadb.migrations b/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb-noprocs/idx_mariadb.migrations new file mode 100644 index 000000000..68906e201 --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb-noprocs/idx_mariadb.migrations @@ -0,0 +1,7 @@ +1615386118, 1.0__initial.sql +1747697741, 1.1.sql +-1462014216, 1.2__dropsFor_1.1.sql +-1957738355, 1.3.sql +1081793242, 1.4__dropsFor_1.3.sql +561281075, R__order_views.sql + diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb/1.2__dropsFor_1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb/1.2__dropsFor_1.1.sql index 6fb11c3a4..a60e90858 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb/1.2__dropsFor_1.1.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb/1.2__dropsFor_1.1.sql @@ -1,14 +1,14 @@ -- Migrationscripts for ebean unittest -- apply changes -alter table migtest_e_basic drop column old_boolean; +CALL usp_ebean_drop_column('migtest_e_basic', 'old_boolean'); -alter table migtest_e_basic drop column old_boolean2; +CALL usp_ebean_drop_column('migtest_e_basic', 'old_boolean2'); -alter table migtest_e_basic drop column eref_id; +CALL usp_ebean_drop_column('migtest_e_basic', 'eref_id'); -alter table migtest_e_history2 drop column obsolete_string1; +CALL usp_ebean_drop_column('migtest_e_history2', 'obsolete_string1'); -alter table migtest_e_history2 drop column obsolete_string2; +CALL usp_ebean_drop_column('migtest_e_history2', 'obsolete_string2'); drop table if exists migtest_e_ref; drop sequence if exists migtest_e_ref_seq; diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb/1.4__dropsFor_1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb/1.4__dropsFor_1.3.sql index 89603a694..1d4e3c6dd 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb/1.4__dropsFor_1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb/1.4__dropsFor_1.3.sql @@ -1,32 +1,32 @@ -- Migrationscripts for ebean unittest -- apply changes -alter table migtest_ckey_detail drop column one_key; +CALL usp_ebean_drop_column('migtest_ckey_detail', 'one_key'); -alter table migtest_ckey_detail drop column two_key; +CALL usp_ebean_drop_column('migtest_ckey_detail', 'two_key'); -alter table migtest_ckey_parent drop column assoc_id; +CALL usp_ebean_drop_column('migtest_ckey_parent', 'assoc_id'); -alter table migtest_e_basic drop column new_string_field; +CALL usp_ebean_drop_column('migtest_e_basic', 'new_string_field'); -alter table migtest_e_basic drop column new_boolean_field; +CALL usp_ebean_drop_column('migtest_e_basic', 'new_boolean_field'); -alter table migtest_e_basic drop column new_boolean_field2; +CALL usp_ebean_drop_column('migtest_e_basic', 'new_boolean_field2'); -alter table migtest_e_basic drop column progress; +CALL usp_ebean_drop_column('migtest_e_basic', 'progress'); -alter table migtest_e_basic drop column new_integer; +CALL usp_ebean_drop_column('migtest_e_basic', 'new_integer'); -alter table migtest_e_history2 drop column test_string2; +CALL usp_ebean_drop_column('migtest_e_history2', 'test_string2'); -alter table migtest_e_history2 drop column test_string3; +CALL usp_ebean_drop_column('migtest_e_history2', 'test_string3'); -alter table migtest_e_history2 drop column new_column; +CALL usp_ebean_drop_column('migtest_e_history2', 'new_column'); -alter table migtest_e_history5 drop column test_boolean; +CALL usp_ebean_drop_column('migtest_e_history5', 'test_boolean'); -alter table migtest_e_softdelete drop column deleted; +CALL usp_ebean_drop_column('migtest_e_softdelete', 'deleted'); -alter table migtest_oto_child drop column master_id; +CALL usp_ebean_drop_column('migtest_oto_child', 'master_id'); drop table if exists migtest_e_user; drop sequence if exists migtest_e_user_seq; diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb/I__create_procs.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb/I__create_procs.sql new file mode 100644 index 000000000..d13ec2708 --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb/I__create_procs.sql @@ -0,0 +1,48 @@ +-- Inital script to create stored procedures etc for mysql platform +DROP PROCEDURE IF EXISTS usp_ebean_drop_foreign_keys; + +delimiter $$ +-- +-- PROCEDURE: usp_ebean_drop_foreign_keys TABLE, COLUMN +-- deletes all constraints and foreign keys referring to TABLE.COLUMN +-- +CREATE PROCEDURE usp_ebean_drop_foreign_keys(IN p_table_name VARCHAR(255), IN p_column_name VARCHAR(255)) +BEGIN +DECLARE done INT DEFAULT FALSE; +DECLARE c_fk_name CHAR(255); +DECLARE curs CURSOR FOR SELECT CONSTRAINT_NAME from information_schema.KEY_COLUMN_USAGE +WHERE TABLE_SCHEMA = DATABASE() and TABLE_NAME = p_table_name and COLUMN_NAME = p_column_name +AND REFERENCED_TABLE_NAME IS NOT NULL; +DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE; + +OPEN curs; + +read_loop: LOOP +FETCH curs INTO c_fk_name; +IF done THEN +LEAVE read_loop; +END IF; +SET @sql = CONCAT('ALTER TABLE ', p_table_name, ' DROP FOREIGN KEY ', c_fk_name); +PREPARE stmt FROM @sql; +EXECUTE stmt; +END LOOP; + +CLOSE curs; +END +$$ + +DROP PROCEDURE IF EXISTS usp_ebean_drop_column; + +delimiter $$ +-- +-- PROCEDURE: usp_ebean_drop_column TABLE, COLUMN +-- deletes the column and ensures that all indices and constraints are dropped first +-- +CREATE PROCEDURE usp_ebean_drop_column(IN p_table_name VARCHAR(255), IN p_column_name VARCHAR(255)) +BEGIN +CALL usp_ebean_drop_foreign_keys(p_table_name, p_column_name); +SET @sql = CONCAT('ALTER TABLE ', p_table_name, ' DROP COLUMN ', p_column_name); +PREPARE stmt FROM @sql; +EXECUTE stmt; +END +$$ diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb/idx_mariadb.migrations b/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb/idx_mariadb.migrations index 68906e201..edacb8d17 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb/idx_mariadb.migrations +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb/idx_mariadb.migrations @@ -1,7 +1,8 @@ +1835064798, I__create_procs.sql 1615386118, 1.0__initial.sql 1747697741, 1.1.sql --1462014216, 1.2__dropsFor_1.1.sql +-116088700, 1.2__dropsFor_1.1.sql -1957738355, 1.3.sql -1081793242, 1.4__dropsFor_1.3.sql +1065918589, 1.4__dropsFor_1.3.sql 561281075, R__order_views.sql diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/mysql/1.2__dropsFor_1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/mysql/1.2__dropsFor_1.1.sql index b3317f701..a22adf90b 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/mysql/1.2__dropsFor_1.1.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/mysql/1.2__dropsFor_1.1.sql @@ -3,17 +3,17 @@ drop view if exists migtest_e_history2_with_history; -- apply changes -alter table migtest_e_basic drop column old_boolean; +CALL usp_ebean_drop_column('migtest_e_basic', 'old_boolean'); -alter table migtest_e_basic drop column old_boolean2; +CALL usp_ebean_drop_column('migtest_e_basic', 'old_boolean2'); -alter table migtest_e_basic drop column eref_id; +CALL usp_ebean_drop_column('migtest_e_basic', 'eref_id'); -alter table migtest_e_history2 drop column obsolete_string1; -alter table migtest_e_history2_history drop column obsolete_string1; +CALL usp_ebean_drop_column('migtest_e_history2', 'obsolete_string1'); +CALL usp_ebean_drop_column('migtest_e_history2_history', 'obsolete_string1'); -alter table migtest_e_history2 drop column obsolete_string2; -alter table migtest_e_history2_history drop column obsolete_string2; +CALL usp_ebean_drop_column('migtest_e_history2', 'obsolete_string2'); +CALL usp_ebean_drop_column('migtest_e_history2_history', 'obsolete_string2'); drop table if exists migtest_e_ref; create view migtest_e_history2_with_history as select * from migtest_e_history2 union all select * from migtest_e_history2_history; diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/mysql/1.4__dropsFor_1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/mysql/1.4__dropsFor_1.3.sql index ff8fa50d0..efa0bbc8a 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/mysql/1.4__dropsFor_1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/mysql/1.4__dropsFor_1.3.sql @@ -3,45 +3,45 @@ drop trigger migtest_e_history_history_upd; drop trigger migtest_e_history_history_del; drop view migtest_e_history_with_history; -alter table migtest_e_history drop column sys_period_start; -alter table migtest_e_history drop column sys_period_end; +CALL usp_ebean_drop_column('migtest_e_history', 'sys_period_start'); +CALL usp_ebean_drop_column('migtest_e_history', 'sys_period_end'); drop table migtest_e_history_history; drop view if exists migtest_e_history2_with_history; drop view if exists migtest_e_history5_with_history; -- apply changes -alter table migtest_ckey_detail drop column one_key; +CALL usp_ebean_drop_column('migtest_ckey_detail', 'one_key'); -alter table migtest_ckey_detail drop column two_key; +CALL usp_ebean_drop_column('migtest_ckey_detail', 'two_key'); -alter table migtest_ckey_parent drop column assoc_id; +CALL usp_ebean_drop_column('migtest_ckey_parent', 'assoc_id'); -alter table migtest_e_basic drop column new_string_field; +CALL usp_ebean_drop_column('migtest_e_basic', 'new_string_field'); -alter table migtest_e_basic drop column new_boolean_field; +CALL usp_ebean_drop_column('migtest_e_basic', 'new_boolean_field'); -alter table migtest_e_basic drop column new_boolean_field2; +CALL usp_ebean_drop_column('migtest_e_basic', 'new_boolean_field2'); -alter table migtest_e_basic drop column progress; +CALL usp_ebean_drop_column('migtest_e_basic', 'progress'); -alter table migtest_e_basic drop column new_integer; +CALL usp_ebean_drop_column('migtest_e_basic', 'new_integer'); -alter table migtest_e_history2 drop column test_string2; -alter table migtest_e_history2_history drop column test_string2; +CALL usp_ebean_drop_column('migtest_e_history2', 'test_string2'); +CALL usp_ebean_drop_column('migtest_e_history2_history', 'test_string2'); -alter table migtest_e_history2 drop column test_string3; -alter table migtest_e_history2_history drop column test_string3; +CALL usp_ebean_drop_column('migtest_e_history2', 'test_string3'); +CALL usp_ebean_drop_column('migtest_e_history2_history', 'test_string3'); -alter table migtest_e_history2 drop column new_column; -alter table migtest_e_history2_history drop column new_column; +CALL usp_ebean_drop_column('migtest_e_history2', 'new_column'); +CALL usp_ebean_drop_column('migtest_e_history2_history', 'new_column'); -alter table migtest_e_history5 drop column test_boolean; -alter table migtest_e_history5_history drop column test_boolean; +CALL usp_ebean_drop_column('migtest_e_history5', 'test_boolean'); +CALL usp_ebean_drop_column('migtest_e_history5_history', 'test_boolean'); -alter table migtest_e_softdelete drop column deleted; +CALL usp_ebean_drop_column('migtest_e_softdelete', 'deleted'); -alter table migtest_oto_child drop column master_id; +CALL usp_ebean_drop_column('migtest_oto_child', 'master_id'); drop table if exists migtest_e_user; drop table if exists migtest_mtm_c_migtest_mtm_m; diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/mysql/I__create_procs.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/mysql/I__create_procs.sql new file mode 100644 index 000000000..d13ec2708 --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/mysql/I__create_procs.sql @@ -0,0 +1,48 @@ +-- Inital script to create stored procedures etc for mysql platform +DROP PROCEDURE IF EXISTS usp_ebean_drop_foreign_keys; + +delimiter $$ +-- +-- PROCEDURE: usp_ebean_drop_foreign_keys TABLE, COLUMN +-- deletes all constraints and foreign keys referring to TABLE.COLUMN +-- +CREATE PROCEDURE usp_ebean_drop_foreign_keys(IN p_table_name VARCHAR(255), IN p_column_name VARCHAR(255)) +BEGIN +DECLARE done INT DEFAULT FALSE; +DECLARE c_fk_name CHAR(255); +DECLARE curs CURSOR FOR SELECT CONSTRAINT_NAME from information_schema.KEY_COLUMN_USAGE +WHERE TABLE_SCHEMA = DATABASE() and TABLE_NAME = p_table_name and COLUMN_NAME = p_column_name +AND REFERENCED_TABLE_NAME IS NOT NULL; +DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE; + +OPEN curs; + +read_loop: LOOP +FETCH curs INTO c_fk_name; +IF done THEN +LEAVE read_loop; +END IF; +SET @sql = CONCAT('ALTER TABLE ', p_table_name, ' DROP FOREIGN KEY ', c_fk_name); +PREPARE stmt FROM @sql; +EXECUTE stmt; +END LOOP; + +CLOSE curs; +END +$$ + +DROP PROCEDURE IF EXISTS usp_ebean_drop_column; + +delimiter $$ +-- +-- PROCEDURE: usp_ebean_drop_column TABLE, COLUMN +-- deletes the column and ensures that all indices and constraints are dropped first +-- +CREATE PROCEDURE usp_ebean_drop_column(IN p_table_name VARCHAR(255), IN p_column_name VARCHAR(255)) +BEGIN +CALL usp_ebean_drop_foreign_keys(p_table_name, p_column_name); +SET @sql = CONCAT('ALTER TABLE ', p_table_name, ' DROP COLUMN ', p_column_name); +PREPARE stmt FROM @sql; +EXECUTE stmt; +END +$$ diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/mysql/idx_mysql.migrations b/ebean-test/src/test/resources/migrationtest/dbmigration/mysql/idx_mysql.migrations index 43fcfeacb..2c9e63da4 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/mysql/idx_mysql.migrations +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/mysql/idx_mysql.migrations @@ -1,7 +1,8 @@ +1835064798, I__create_procs.sql -1087663151, 1.0__initial.sql 880212944, 1.1.sql -1029390755, 1.2__dropsFor_1.1.sql +1922991807, 1.2__dropsFor_1.1.sql -380371830, 1.3.sql -1085680731, 1.4__dropsFor_1.3.sql +-1139228843, 1.4__dropsFor_1.3.sql 561281075, R__order_views.sql From 0ee153d6bc88ee475d594ab2ac2f85b891f4297e Mon Sep 17 00:00:00 2001 From: Roland Praml Date: Mon, 7 Feb 2022 14:08:26 +0100 Subject: [PATCH 3/6] Add: ElementCollection --- .../dbmigration/clickhouse/1.1.sql | 5 +++++ .../clickhouse/1.4__dropsFor_1.3.sql | 1 + .../clickhouse/idx_clickhouse.migrations | 4 ++-- .../dbmigration/cockroach/1.1.sql | 8 ++++++++ .../cockroach/1.4__dropsFor_1.3.sql | 1 + .../cockroach/idx_cockroach.migrations | 4 ++-- .../migrationtest/dbmigration/db2/1.1.sql | 11 ++++++++++- .../dbmigration/db2/1.4__dropsFor_1.3.sql | 1 + .../dbmigration/db2/idx_db2.migrations | 4 ++-- .../migrationtest/dbmigration/generic/1.1.sql | 8 ++++++++ .../dbmigration/generic/1.4__dropsFor_1.3.sql | 1 + .../dbmigration/generic/idx_generic.migrations | 4 ++-- .../migrationtest/dbmigration/h2/1.1.sql | 8 ++++++++ .../dbmigration/h2/1.4__dropsFor_1.3.sql | 1 + .../dbmigration/h2/idx_h2.migrations | 4 ++-- .../migrationtest/dbmigration/hana/1.1.sql | 8 ++++++++ .../dbmigration/hana/1.4__dropsFor_1.3.sql | 1 + .../dbmigration/hana/idx_hana.migrations | 4 ++-- .../migrationtest/dbmigration/hsqldb/1.1.sql | 8 ++++++++ .../dbmigration/hsqldb/1.4__dropsFor_1.3.sql | 1 + .../dbmigration/hsqldb/idx_hsqldb.migrations | 4 ++-- .../dbmigration/mariadb-noprocs/1.1.sql | 9 +++++++++ .../mariadb-noprocs/1.4__dropsFor_1.3.sql | 1 + .../mariadb-noprocs/idx_mariadb.migrations | 4 ++-- .../migrationtest/dbmigration/mariadb/1.1.sql | 9 +++++++++ .../dbmigration/mariadb/1.4__dropsFor_1.3.sql | 1 + .../dbmigration/mariadb/idx_mariadb.migrations | 4 ++-- .../dbmigration/model/1.1.model.xml | 18 +++++++++++++++++- .../dbmigration/model/1.3.model.xml | 1 + .../model/1.4__dropsFor_1.3.model.xml | 1 + .../migrationtest/dbmigration/mysql/1.1.sql | 8 ++++++++ .../dbmigration/mysql/1.4__dropsFor_1.3.sql | 1 + .../dbmigration/mysql/idx_mysql.migrations | 4 ++-- .../migrationtest/dbmigration/nuodb/1.1.sql | 8 ++++++++ .../dbmigration/nuodb/1.4__dropsFor_1.3.sql | 1 + .../dbmigration/nuodb/idx_nuodb.migrations | 4 ++-- .../migrationtest/dbmigration/oracle/1.1.sql | 8 ++++++++ .../dbmigration/oracle/1.4__dropsFor_1.3.sql | 1 + .../dbmigration/oracle/idx_oracle.migrations | 4 ++-- .../migrationtest/dbmigration/postgres/1.1.sql | 8 ++++++++ .../dbmigration/postgres/1.4__dropsFor_1.3.sql | 1 + .../postgres/idx_postgres.migrations | 4 ++-- .../dbmigration/sqlanywhere/1.1.sql | 8 ++++++++ .../sqlanywhere/1.4__dropsFor_1.3.sql | 1 + .../sqlanywhere/idx_sqlanywhere.migrations | 4 ++-- .../migrationtest/dbmigration/sqlite/1.1.sql | 6 ++++++ .../dbmigration/sqlite/1.4__dropsFor_1.3.sql | 1 + .../dbmigration/sqlite/idx_sqlite.migrations | 4 ++-- .../dbmigration/sqlserver/1.1.sql | 8 ++++++++ .../sqlserver/1.4__dropsFor_1.3.sql | 1 + .../sqlserver/idx_sqlserver.migrations | 4 ++-- .../migrationtest/dbmigration/yugabyte/1.1.sql | 8 ++++++++ .../dbmigration/yugabyte/1.4__dropsFor_1.3.sql | 1 + .../yugabyte/idx_yugabyte.migrations | 4 ++-- 54 files changed, 205 insertions(+), 36 deletions(-) diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/clickhouse/1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/clickhouse/1.1.sql index 844845a50..b7d677a4d 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/clickhouse/1.1.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/clickhouse/1.1.sql @@ -14,6 +14,11 @@ create table migtest_mtm_m_migtest_mtm_c ( migtest_mtm_c_id UInt32 ) ENGINE = Log(); +create table migtest_mtm_m_phone_numbers ( + migtest_mtm_m_id UInt64, + value String +) ENGINE = Log(); + alter table migtest_ckey_detail add column one_key UInt32; alter table migtest_ckey_detail add column two_key String; diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/clickhouse/1.4__dropsFor_1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/clickhouse/1.4__dropsFor_1.3.sql index 24e4e93ba..f45a36211 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/clickhouse/1.4__dropsFor_1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/clickhouse/1.4__dropsFor_1.3.sql @@ -31,3 +31,4 @@ 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; +drop table if exists migtest_mtm_m_phone_numbers; diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/clickhouse/idx_clickhouse.migrations b/ebean-test/src/test/resources/migrationtest/dbmigration/clickhouse/idx_clickhouse.migrations index c2f4378fb..965f25509 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/clickhouse/idx_clickhouse.migrations +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/clickhouse/idx_clickhouse.migrations @@ -1,6 +1,6 @@ 79609527, 1.0__initial.sql --779316787, 1.1.sql +1864520180, 1.1.sql 1359055889, 1.2__dropsFor_1.1.sql -715327671, 1.3.sql --1070218324, 1.4__dropsFor_1.3.sql +-1045594368, 1.4__dropsFor_1.3.sql diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/cockroach/1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/cockroach/1.1.sql index f57bbd6d1..8a0ddf08e 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/cockroach/1.1.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/cockroach/1.1.sql @@ -17,6 +17,11 @@ create table migtest_mtm_m_migtest_mtm_c ( constraint pk_migtest_mtm_m_migtest_mtm_c primary key (migtest_mtm_m_id,migtest_mtm_c_id) ); +create table migtest_mtm_m_phone_numbers ( + migtest_mtm_m_id bigint not null, + value varchar(255) not null +); + alter table migtest_ckey_detail add column one_key integer; alter table migtest_ckey_detail add column two_key varchar(127); @@ -106,6 +111,9 @@ alter table migtest_mtm_m_migtest_mtm_c add constraint fk_migtest_mtm_m_migtest_ 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_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_phone_numbers_migtest_mtm_m_id on migtest_mtm_m_phone_numbers (migtest_mtm_m_id); +alter table migtest_mtm_m_phone_numbers add constraint fk_migtest_mtm_m_phone_numbers_migtest_mtm_m_id foreign key (migtest_mtm_m_id) references migtest_mtm_m (id) on delete restrict on update restrict; + create index ix_migtest_ckey_parent_assoc_id on migtest_ckey_parent (assoc_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; diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/cockroach/1.4__dropsFor_1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/cockroach/1.4__dropsFor_1.3.sql index 9357602a1..985c8764a 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/cockroach/1.4__dropsFor_1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/cockroach/1.4__dropsFor_1.3.sql @@ -36,3 +36,4 @@ 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; +drop table if exists migtest_mtm_m_phone_numbers cascade; diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/cockroach/idx_cockroach.migrations b/ebean-test/src/test/resources/migrationtest/dbmigration/cockroach/idx_cockroach.migrations index 549742da7..1d35441b7 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/cockroach/idx_cockroach.migrations +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/cockroach/idx_cockroach.migrations @@ -1,7 +1,7 @@ -487576609, 1.0__initial.sql --889791572, 1.1.sql +-1108404951, 1.1.sql -91524786, 1.2__dropsFor_1.1.sql 735879716, 1.3.sql --807148201, 1.4__dropsFor_1.3.sql +676584941, 1.4__dropsFor_1.3.sql 561281075, R__order_views.sql diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/db2/1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/db2/1.1.sql index 769a12a7b..c56948302 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/db2/1.1.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2/1.1.sql @@ -17,6 +17,11 @@ create table migtest_mtm_m_migtest_mtm_c ( constraint pk_migtest_mtm_m_migtest_mtm_c primary key (migtest_mtm_m_id,migtest_mtm_c_id) ); +create table migtest_mtm_m_phone_numbers ( + migtest_mtm_m_id bigint not null, + value varchar(255) not null +); + alter table migtest_ckey_detail add column one_key integer; alter table migtest_ckey_detail add column two_key varchar(127); @@ -40,7 +45,8 @@ alter table migtest_e_basic alter column status2 set data type varchar(127); alter table migtest_e_basic alter column status2 drop default; alter table migtest_e_basic alter column status2 drop not null; --- rename all collisions; +-- db2 does not support parial null indices :( - so we have to clean; +update migtest_e_basic set status = 'N' where id = 1; create unique index uq_migtest_e_basic_description on migtest_e_basic(description) exclude null keys; insert into migtest_e_user (id) select distinct user_id from migtest_e_basic; @@ -103,6 +109,9 @@ alter table migtest_mtm_m_migtest_mtm_c add constraint fk_migtest_mtm_m_migtest_ 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_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_phone_numbers_migtest_mtm_m_id on migtest_mtm_m_phone_numbers (migtest_mtm_m_id); +alter table migtest_mtm_m_phone_numbers add constraint fk_migtest_mtm_m_phone_numbers_migtest_mtm_m_id foreign key (migtest_mtm_m_id) references migtest_mtm_m (id) on delete restrict; + create index ix_migtest_ckey_parent_assoc_id on migtest_ckey_parent (assoc_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; diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/db2/1.4__dropsFor_1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/db2/1.4__dropsFor_1.3.sql index 038f64f6a..bd6f31169 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/db2/1.4__dropsFor_1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2/1.4__dropsFor_1.3.sql @@ -32,3 +32,4 @@ 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; +drop table migtest_mtm_m_phone_numbers; diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/db2/idx_db2.migrations b/ebean-test/src/test/resources/migrationtest/dbmigration/db2/idx_db2.migrations index b872100d4..8622a8c4c 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/db2/idx_db2.migrations +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2/idx_db2.migrations @@ -1,7 +1,7 @@ 1580812656, 1.0__initial.sql -1011854984, 1.1.sql +1615151513, 1.1.sql 578073685, 1.2__dropsFor_1.1.sql -1206650320, 1.3.sql --1475628451, 1.4__dropsFor_1.3.sql +441227910, 1.4__dropsFor_1.3.sql 561281075, R__order_views.sql diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/generic/1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/generic/1.1.sql index dbbe731ba..5056799e7 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/generic/1.1.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/generic/1.1.sql @@ -17,6 +17,11 @@ create table migtest_mtm_m_migtest_mtm_c ( constraint pk_migtest_mtm_m_migtest_mtm_c primary key (migtest_mtm_m_id,migtest_mtm_c_id) ); +create table migtest_mtm_m_phone_numbers ( + migtest_mtm_m_id bigint not null, + value varchar(255) not null +); + alter table migtest_ckey_detail add column one_key integer; alter table migtest_ckey_detail add column two_key varchar(127); @@ -103,6 +108,9 @@ alter table migtest_mtm_m_migtest_mtm_c add constraint fk_migtest_mtm_m_migtest_ 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_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_phone_numbers_migtest_mtm_m_id on migtest_mtm_m_phone_numbers (migtest_mtm_m_id); +alter table migtest_mtm_m_phone_numbers add constraint fk_migtest_mtm_m_phone_numbers_migtest_mtm_m_id foreign key (migtest_mtm_m_id) references migtest_mtm_m (id) on delete restrict on update restrict; + create index ix_migtest_ckey_parent_assoc_id on migtest_ckey_parent (assoc_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; diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/generic/1.4__dropsFor_1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/generic/1.4__dropsFor_1.3.sql index 24e4e93ba..f45a36211 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/generic/1.4__dropsFor_1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/generic/1.4__dropsFor_1.3.sql @@ -31,3 +31,4 @@ 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; +drop table if exists migtest_mtm_m_phone_numbers; diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/generic/idx_generic.migrations b/ebean-test/src/test/resources/migrationtest/dbmigration/generic/idx_generic.migrations index dceb0bc58..0855fc2e1 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/generic/idx_generic.migrations +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/generic/idx_generic.migrations @@ -1,6 +1,6 @@ -1827577042, 1.0__initial.sql -350584020, 1.1.sql +-1825206641, 1.1.sql 1359055889, 1.2__dropsFor_1.1.sql 297569863, 1.3.sql --1070218324, 1.4__dropsFor_1.3.sql +-1045594368, 1.4__dropsFor_1.3.sql diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/h2/1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/h2/1.1.sql index b51d15d2e..f639a2e9b 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/h2/1.1.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/h2/1.1.sql @@ -23,6 +23,11 @@ create table migtest_mtm_m_migtest_mtm_c ( constraint pk_migtest_mtm_m_migtest_mtm_c primary key (migtest_mtm_m_id,migtest_mtm_c_id) ); +create table migtest_mtm_m_phone_numbers ( + migtest_mtm_m_id bigint not null, + value varchar(255) not null +); + alter table migtest_ckey_detail add column one_key integer; alter table migtest_ckey_detail add column two_key varchar(127); @@ -114,6 +119,9 @@ alter table migtest_mtm_m_migtest_mtm_c add constraint fk_migtest_mtm_m_migtest_ 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_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_phone_numbers_migtest_mtm_m_id on migtest_mtm_m_phone_numbers (migtest_mtm_m_id); +alter table migtest_mtm_m_phone_numbers add constraint fk_migtest_mtm_m_phone_numbers_migtest_mtm_m_id foreign key (migtest_mtm_m_id) references migtest_mtm_m (id) on delete restrict on update restrict; + create index ix_migtest_ckey_parent_assoc_id on migtest_ckey_parent (assoc_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; diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/h2/1.4__dropsFor_1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/h2/1.4__dropsFor_1.3.sql index 1776f5309..6574eb2db 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/h2/1.4__dropsFor_1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/h2/1.4__dropsFor_1.3.sql @@ -46,6 +46,7 @@ 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; +drop table if exists migtest_mtm_m_phone_numbers; create view migtest_e_history2_with_history as select * from migtest_e_history2 union all select * from migtest_e_history2_history; create view migtest_e_history5_with_history as select * from migtest_e_history5 union all select * from migtest_e_history5_history; diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/h2/idx_h2.migrations b/ebean-test/src/test/resources/migrationtest/dbmigration/h2/idx_h2.migrations index 88665985e..c5bafc1f6 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/h2/idx_h2.migrations +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/h2/idx_h2.migrations @@ -1,8 +1,8 @@ -745768926, 1.0__initial.sql -39858255, 1.1.sql +1409369419, 1.1.sql 1616986842, 1.2__dropsFor_1.1.sql -1513154593, 1.3.sql -374569329, 1.4__dropsFor_1.3.sql +1549130952, 1.4__dropsFor_1.3.sql 783227075, R__multi_comments.sql 561281075, R__order_views.sql diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/hana/1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/hana/1.1.sql index 7f92f6534..0379b11ee 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/hana/1.1.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/hana/1.1.sql @@ -17,6 +17,11 @@ create column table migtest_mtm_m_migtest_mtm_c ( constraint pk_migtest_mtm_m_migtest_mtm_c primary key (migtest_mtm_m_id,migtest_mtm_c_id) ); +create column table migtest_mtm_m_phone_numbers ( + migtest_mtm_m_id bigint not null, + value nvarchar(255) not null +); + alter table migtest_ckey_detail add ( one_key integer); alter table migtest_ckey_detail add ( two_key nvarchar(127)); @@ -162,6 +167,9 @@ alter table migtest_mtm_m_migtest_mtm_c add constraint fk_migtest_mtm_m_migtest_ -- explicit index "ix_migtest_mtm_m_migtest_mtm_c_migtest_mtm_c" for single column "migtest_mtm_c_id" of table "migtest_mtm_m_migtest_mtm_c" is not necessary; 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; +-- explicit index "ix_migtest_mtm_m_phone_numbers_migtest_mtm_m_id" for single column "migtest_mtm_m_id" of table "migtest_mtm_m_phone_numbers" is not necessary; +alter table migtest_mtm_m_phone_numbers add constraint fk_migtest_mtm_m_phone_numbers_migtest_mtm_m_id foreign key (migtest_mtm_m_id) references migtest_mtm_m (id) on delete restrict on update restrict; + -- explicit index "ix_migtest_ckey_parent_assoc_id" for single column "assoc_id" of table "migtest_ckey_parent" is not necessary; 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; diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/hana/1.4__dropsFor_1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/hana/1.4__dropsFor_1.3.sql index fe5d6371f..526dc7287 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/hana/1.4__dropsFor_1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/hana/1.4__dropsFor_1.3.sql @@ -49,3 +49,4 @@ CALL usp_ebean_drop_column('migtest_oto_child', 'master_id'); drop table migtest_e_user cascade; drop table migtest_mtm_c_migtest_mtm_m cascade; drop table migtest_mtm_m_migtest_mtm_c cascade; +drop table migtest_mtm_m_phone_numbers cascade; diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/hana/idx_hana.migrations b/ebean-test/src/test/resources/migrationtest/dbmigration/hana/idx_hana.migrations index 2f7b6ef51..521c0c0b7 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/hana/idx_hana.migrations +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/hana/idx_hana.migrations @@ -1,7 +1,7 @@ -1536923954, 1.0__initial.sql -1039838314, 1.1.sql +-1152055114, 1.1.sql 562867593, 1.2__dropsFor_1.1.sql 1566488731, 1.3.sql -1030652294, 1.4__dropsFor_1.3.sql +201970227, 1.4__dropsFor_1.3.sql 1906063401, R__order_views_hana.sql diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/hsqldb/1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/hsqldb/1.1.sql index cebb8b994..31569c927 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/hsqldb/1.1.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/hsqldb/1.1.sql @@ -17,6 +17,11 @@ create table migtest_mtm_m_migtest_mtm_c ( constraint pk_migtest_mtm_m_migtest_mtm_c primary key (migtest_mtm_m_id,migtest_mtm_c_id) ); +create table migtest_mtm_m_phone_numbers ( + migtest_mtm_m_id bigint not null, + value varchar(255) not null +); + alter table migtest_ckey_detail add column one_key integer; alter table migtest_ckey_detail add column two_key varchar(127); @@ -103,6 +108,9 @@ alter table migtest_mtm_m_migtest_mtm_c add constraint fk_migtest_mtm_m_migtest_ 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_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_phone_numbers_migtest_mtm_m_id on migtest_mtm_m_phone_numbers (migtest_mtm_m_id); +alter table migtest_mtm_m_phone_numbers add constraint fk_migtest_mtm_m_phone_numbers_migtest_mtm_m_id foreign key (migtest_mtm_m_id) references migtest_mtm_m (id) on delete restrict on update restrict; + create index ix_migtest_ckey_parent_assoc_id on migtest_ckey_parent (assoc_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; diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/hsqldb/1.4__dropsFor_1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/hsqldb/1.4__dropsFor_1.3.sql index c613e4a5a..706cd2892 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/hsqldb/1.4__dropsFor_1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/hsqldb/1.4__dropsFor_1.3.sql @@ -32,3 +32,4 @@ 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; +drop table if exists migtest_mtm_m_phone_numbers; diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/hsqldb/idx_hsqldb.migrations b/ebean-test/src/test/resources/migrationtest/dbmigration/hsqldb/idx_hsqldb.migrations index 3838db054..c754652e1 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/hsqldb/idx_hsqldb.migrations +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/hsqldb/idx_hsqldb.migrations @@ -1,7 +1,7 @@ 2097980375, 1.0__initial.sql -2086418403, 1.1.sql +-865579750, 1.1.sql -1462014216, 1.2__dropsFor_1.1.sql -2039573992, 1.3.sql -2106151405, 1.4__dropsFor_1.3.sql +-1763496614, 1.4__dropsFor_1.3.sql 861001272, R__order_views_hsqldb.sql diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb-noprocs/1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb-noprocs/1.1.sql index 1d15256d7..04603643f 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb-noprocs/1.1.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb-noprocs/1.1.sql @@ -17,6 +17,11 @@ create table migtest_mtm_m_migtest_mtm_c ( constraint pk_migtest_mtm_m_migtest_mtm_c primary key (migtest_mtm_m_id,migtest_mtm_c_id) ); +create table migtest_mtm_m_phone_numbers ( + migtest_mtm_m_id bigint not null, + value varchar(255) not null +); + alter table migtest_ckey_detail add column one_key integer; alter table migtest_ckey_detail add column two_key varchar(127); @@ -60,6 +65,7 @@ alter table migtest_e_history modify test_string bigint; alter table migtest_e_history comment = 'We have history now'; -- NOTE: table has @History - special migration may be necessary +SET @@system_versioning_alter_history = 1; update migtest_e_history2 set test_string = 'unknown' where test_string is null; alter table migtest_e_history2 alter test_string set default 'unknown'; alter table migtest_e_history2 modify test_string varchar(255) not null; @@ -96,6 +102,9 @@ alter table migtest_mtm_m_migtest_mtm_c add constraint fk_migtest_mtm_m_migtest_ 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_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_phone_numbers_migtest_mtm_m_id on migtest_mtm_m_phone_numbers (migtest_mtm_m_id); +alter table migtest_mtm_m_phone_numbers add constraint fk_migtest_mtm_m_phone_numbers_migtest_mtm_m_id foreign key (migtest_mtm_m_id) references migtest_mtm_m (id) on delete restrict on update restrict; + create index ix_migtest_ckey_parent_assoc_id on migtest_ckey_parent (assoc_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; diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb-noprocs/1.4__dropsFor_1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb-noprocs/1.4__dropsFor_1.3.sql index 89603a694..1e2df9b4e 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb-noprocs/1.4__dropsFor_1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb-noprocs/1.4__dropsFor_1.3.sql @@ -32,4 +32,5 @@ 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; +drop table if exists migtest_mtm_m_phone_numbers; alter table migtest_e_history drop system versioning; diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb-noprocs/idx_mariadb.migrations b/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb-noprocs/idx_mariadb.migrations index 68906e201..f862900c1 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb-noprocs/idx_mariadb.migrations +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb-noprocs/idx_mariadb.migrations @@ -1,7 +1,7 @@ 1615386118, 1.0__initial.sql -1747697741, 1.1.sql +128637084, 1.1.sql -1462014216, 1.2__dropsFor_1.1.sql -1957738355, 1.3.sql -1081793242, 1.4__dropsFor_1.3.sql +89701608, 1.4__dropsFor_1.3.sql 561281075, R__order_views.sql diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb/1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb/1.1.sql index 1d15256d7..04603643f 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb/1.1.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb/1.1.sql @@ -17,6 +17,11 @@ create table migtest_mtm_m_migtest_mtm_c ( constraint pk_migtest_mtm_m_migtest_mtm_c primary key (migtest_mtm_m_id,migtest_mtm_c_id) ); +create table migtest_mtm_m_phone_numbers ( + migtest_mtm_m_id bigint not null, + value varchar(255) not null +); + alter table migtest_ckey_detail add column one_key integer; alter table migtest_ckey_detail add column two_key varchar(127); @@ -60,6 +65,7 @@ alter table migtest_e_history modify test_string bigint; alter table migtest_e_history comment = 'We have history now'; -- NOTE: table has @History - special migration may be necessary +SET @@system_versioning_alter_history = 1; update migtest_e_history2 set test_string = 'unknown' where test_string is null; alter table migtest_e_history2 alter test_string set default 'unknown'; alter table migtest_e_history2 modify test_string varchar(255) not null; @@ -96,6 +102,9 @@ alter table migtest_mtm_m_migtest_mtm_c add constraint fk_migtest_mtm_m_migtest_ 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_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_phone_numbers_migtest_mtm_m_id on migtest_mtm_m_phone_numbers (migtest_mtm_m_id); +alter table migtest_mtm_m_phone_numbers add constraint fk_migtest_mtm_m_phone_numbers_migtest_mtm_m_id foreign key (migtest_mtm_m_id) references migtest_mtm_m (id) on delete restrict on update restrict; + create index ix_migtest_ckey_parent_assoc_id on migtest_ckey_parent (assoc_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; diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb/1.4__dropsFor_1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb/1.4__dropsFor_1.3.sql index 1d4e3c6dd..60767659b 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb/1.4__dropsFor_1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb/1.4__dropsFor_1.3.sql @@ -32,4 +32,5 @@ 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; +drop table if exists migtest_mtm_m_phone_numbers; alter table migtest_e_history drop system versioning; diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb/idx_mariadb.migrations b/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb/idx_mariadb.migrations index edacb8d17..4ba501e5d 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb/idx_mariadb.migrations +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb/idx_mariadb.migrations @@ -1,8 +1,8 @@ 1835064798, I__create_procs.sql 1615386118, 1.0__initial.sql -1747697741, 1.1.sql +128637084, 1.1.sql -116088700, 1.2__dropsFor_1.1.sql -1957738355, 1.3.sql -1065918589, 1.4__dropsFor_1.3.sql +930722740, 1.4__dropsFor_1.3.sql 561281075, R__order_views.sql diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/model/1.1.model.xml b/ebean-test/src/test/resources/migrationtest/dbmigration/model/1.1.model.xml index e165e05d8..7754adc51 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/model/1.1.model.xml +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/model/1.1.model.xml @@ -16,6 +16,10 @@ + + -- db2 does not support parial null indices :( - so we have to clean + update ${table} set status = 'N' where id = 1 + -- rename all collisions @@ -50,7 +54,15 @@ - + + + SET @@system_versioning_alter_history = 1 + update ${table} set ${column} = 'unknown' where ${column} is null + + + update ${table} set ${column} = 'unknown' where ${column} is null + + @@ -81,6 +93,10 @@ + + + + diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/model/1.3.model.xml b/ebean-test/src/test/resources/migrationtest/dbmigration/model/1.3.model.xml index 77171547d..296b101b0 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/model/1.3.model.xml +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/model/1.3.model.xml @@ -69,5 +69,6 @@ + \ No newline at end of file diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/model/1.4__dropsFor_1.3.model.xml b/ebean-test/src/test/resources/migrationtest/dbmigration/model/1.4__dropsFor_1.3.model.xml index a1cc6616a..19dce6648 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/model/1.4__dropsFor_1.3.model.xml +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/model/1.4__dropsFor_1.3.model.xml @@ -19,5 +19,6 @@ + \ No newline at end of file diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/mysql/1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/mysql/1.1.sql index e3e5bf26a..16d54565f 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/mysql/1.1.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/mysql/1.1.sql @@ -23,6 +23,11 @@ create table migtest_mtm_m_migtest_mtm_c ( constraint pk_migtest_mtm_m_migtest_mtm_c primary key (migtest_mtm_m_id,migtest_mtm_c_id) ); +create table migtest_mtm_m_phone_numbers ( + migtest_mtm_m_id bigint not null, + value varchar(255) not null +); + alter table migtest_ckey_detail add column one_key integer; alter table migtest_ckey_detail add column two_key varchar(127); @@ -107,6 +112,9 @@ alter table migtest_mtm_m_migtest_mtm_c add constraint fk_migtest_mtm_m_migtest_ 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_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_phone_numbers_migtest_mtm_m_id on migtest_mtm_m_phone_numbers (migtest_mtm_m_id); +alter table migtest_mtm_m_phone_numbers add constraint fk_migtest_mtm_m_phone_numbers_migtest_mtm_m_id foreign key (migtest_mtm_m_id) references migtest_mtm_m (id) on delete restrict on update restrict; + create index ix_migtest_ckey_parent_assoc_id on migtest_ckey_parent (assoc_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; diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/mysql/1.4__dropsFor_1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/mysql/1.4__dropsFor_1.3.sql index efa0bbc8a..ff2e34d44 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/mysql/1.4__dropsFor_1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/mysql/1.4__dropsFor_1.3.sql @@ -46,6 +46,7 @@ CALL usp_ebean_drop_column('migtest_oto_child', '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; +drop table if exists migtest_mtm_m_phone_numbers; create view migtest_e_history2_with_history as select * from migtest_e_history2 union all select * from migtest_e_history2_history; create view migtest_e_history5_with_history as select * from migtest_e_history5 union all select * from migtest_e_history5_history; diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/mysql/idx_mysql.migrations b/ebean-test/src/test/resources/migrationtest/dbmigration/mysql/idx_mysql.migrations index 2c9e63da4..4ed25ce12 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/mysql/idx_mysql.migrations +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/mysql/idx_mysql.migrations @@ -1,8 +1,8 @@ 1835064798, I__create_procs.sql -1087663151, 1.0__initial.sql -880212944, 1.1.sql +-1627573867, 1.1.sql 1922991807, 1.2__dropsFor_1.1.sql -380371830, 1.3.sql --1139228843, 1.4__dropsFor_1.3.sql +-1373040825, 1.4__dropsFor_1.3.sql 561281075, R__order_views.sql diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/nuodb/1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/nuodb/1.1.sql index a294d7106..503833010 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/nuodb/1.1.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/nuodb/1.1.sql @@ -23,6 +23,11 @@ create table migtest_mtm_m_migtest_mtm_c ( constraint pk_migtest_mtm_m_migtest_mtm_c primary key (migtest_mtm_m_id,migtest_mtm_c_id) ); +create table migtest_mtm_m_phone_numbers ( + migtest_mtm_m_id bigint not null, + value varchar(255) not null +); + alter table migtest_ckey_detail add column one_key integer; alter table migtest_ckey_detail add column two_key varchar(127); @@ -112,6 +117,9 @@ alter table migtest_mtm_m_migtest_mtm_c add constraint fk_migtest_mtm_m_migtest_ 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_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_phone_numbers_migtest_mtm_m_id on migtest_mtm_m_phone_numbers (migtest_mtm_m_id); +alter table migtest_mtm_m_phone_numbers add constraint fk_migtest_mtm_m_phone_numbers_migtest_mtm_m_id foreign key (migtest_mtm_m_id) references migtest_mtm_m (id); + create index ix_migtest_ckey_parent_assoc_id on migtest_ckey_parent (assoc_id); alter table migtest_ckey_parent add constraint fk_migtest_ckey_parent_assoc_id foreign key (assoc_id) references migtest_ckey_assoc (id); diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/nuodb/1.4__dropsFor_1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/nuodb/1.4__dropsFor_1.3.sql index ea4a15720..d7e3eaf34 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/nuodb/1.4__dropsFor_1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/nuodb/1.4__dropsFor_1.3.sql @@ -47,6 +47,7 @@ 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; +drop table if exists migtest_mtm_m_phone_numbers; create view migtest_e_history2_with_history as select * from migtest_e_history2 union all select * from migtest_e_history2_history; create view migtest_e_history5_with_history as select * from migtest_e_history5 union all select * from migtest_e_history5_history; diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/nuodb/idx_nuodb.migrations b/ebean-test/src/test/resources/migrationtest/dbmigration/nuodb/idx_nuodb.migrations index e9f64b6a8..a16275206 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/nuodb/idx_nuodb.migrations +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/nuodb/idx_nuodb.migrations @@ -1,7 +1,7 @@ -600390912, 1.0__initial.sql -85177147, 1.1.sql +667708916, 1.1.sql -1171866240, 1.2__dropsFor_1.1.sql 870952105, 1.3.sql -560246183, 1.4__dropsFor_1.3.sql +473283202, 1.4__dropsFor_1.3.sql 561281075, R__order_views.sql diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/oracle/1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/oracle/1.1.sql index d3a951da4..b6de2b755 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/oracle/1.1.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/oracle/1.1.sql @@ -18,6 +18,11 @@ create table migtest_mtm_m_migtest_mtm_c ( constraint pk_migtest_mtm_m_migtest_mtm_c primary key (migtest_mtm_m_id,migtest_mtm_c_id) ); +create table migtest_mtm_m_phone_numbers ( + migtest_mtm_m_id number(19) not null, + value varchar2(255) not null +); + alter table migtest_ckey_detail add one_key number(10); alter table migtest_ckey_detail add two_key varchar2(127); @@ -104,6 +109,9 @@ alter table migtest_mtm_m_migtest_mtm_c add constraint fk_mgtst_mtm_m_mgtst_mt_g create index ix_mgtst_mtm_m_mgtst_mt_b7nbck on migtest_mtm_m_migtest_mtm_c (migtest_mtm_c_id); alter table migtest_mtm_m_migtest_mtm_c add constraint fk_mgtst_mtm_m_mgtst_mt_ggi34a foreign key (migtest_mtm_c_id) references migtest_mtm_c (id); +create index ix_mgtst_mtm_m_phn_nmbr_do9ma3 on migtest_mtm_m_phone_numbers (migtest_mtm_m_id); +alter table migtest_mtm_m_phone_numbers add constraint fk_mgtst_mtm_m_phn_nmbr_s8neid foreign key (migtest_mtm_m_id) references migtest_mtm_m (id); + create index ix_mgtst_cky_prnt_ssc_d on migtest_ckey_parent (assoc_id); alter table migtest_ckey_parent add constraint fk_mgtst_cky_prnt_ssc_d foreign key (assoc_id) references migtest_ckey_assoc (id); diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/oracle/1.4__dropsFor_1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/oracle/1.4__dropsFor_1.3.sql index 52c81411a..34fe0bed4 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/oracle/1.4__dropsFor_1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/oracle/1.4__dropsFor_1.3.sql @@ -32,3 +32,4 @@ 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; +drop table migtest_mtm_m_phone_numbers cascade constraints purge; diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/oracle/idx_oracle.migrations b/ebean-test/src/test/resources/migrationtest/dbmigration/oracle/idx_oracle.migrations index 5612d75f3..0d92c64be 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/oracle/idx_oracle.migrations +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/oracle/idx_oracle.migrations @@ -1,8 +1,8 @@ 1839897438, 1.0__initial.sql -1699280801, 1.1.sql +1927010726, 1.1.sql 238598298, 1.2__dropsFor_1.1.sql 1543053715, 1.3.sql -1213528478, 1.4__dropsFor_1.3.sql +-629809805, 1.4__dropsFor_1.3.sql 1357801733, R__oracle_only_views.sql 561281075, R__order_views.sql diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/postgres/1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/postgres/1.1.sql index 5a3df8b8f..82fc83f2b 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/postgres/1.1.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/postgres/1.1.sql @@ -23,6 +23,11 @@ create table migtest_mtm_m_migtest_mtm_c ( constraint pk_migtest_mtm_m_migtest_mtm_c primary key (migtest_mtm_m_id,migtest_mtm_c_id) ); +create table migtest_mtm_m_phone_numbers ( + migtest_mtm_m_id bigint not null, + value varchar(255) not null +); + alter table migtest_ckey_detail add column one_key integer; alter table migtest_ckey_detail add column two_key varchar(127); @@ -120,6 +125,9 @@ alter table migtest_mtm_m_migtest_mtm_c add constraint fk_migtest_mtm_m_migtest_ 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_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_phone_numbers_migtest_mtm_m_id on migtest_mtm_m_phone_numbers (migtest_mtm_m_id); +alter table migtest_mtm_m_phone_numbers add constraint fk_migtest_mtm_m_phone_numbers_migtest_mtm_m_id foreign key (migtest_mtm_m_id) references migtest_mtm_m (id) on delete restrict on update restrict; + create index ix_migtest_ckey_parent_assoc_id on migtest_ckey_parent (assoc_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; diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/postgres/1.4__dropsFor_1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/postgres/1.4__dropsFor_1.3.sql index 748ee959b..4524d4a40 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/postgres/1.4__dropsFor_1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/postgres/1.4__dropsFor_1.3.sql @@ -47,6 +47,7 @@ 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; +drop table if exists migtest_mtm_m_phone_numbers cascade; create view migtest_e_history2_with_history as select * from migtest_e_history2 union all select * from migtest_e_history2_history; create view migtest_e_history5_with_history as select * from migtest_e_history5 union all select * from migtest_e_history5_history; diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/postgres/idx_postgres.migrations b/ebean-test/src/test/resources/migrationtest/dbmigration/postgres/idx_postgres.migrations index 847f2ddca..370c64f13 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/postgres/idx_postgres.migrations +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/postgres/idx_postgres.migrations @@ -1,8 +1,8 @@ 1428934272, 1.0__initial.sql --1309302980, 1.1.sql +1253246780, 1.1.sql -1861367028, 1.2__dropsFor_1.1.sql 326342179, 1.3.sql -1959776888, 1.4__dropsFor_1.3.sql +-1991941691, 1.4__dropsFor_1.3.sql 783227075, R__multi_comments.sql 561281075, R__order_views.sql 283077354, R__pg_indexes.sql diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlanywhere/1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlanywhere/1.1.sql index ba632c339..957136815 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlanywhere/1.1.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlanywhere/1.1.sql @@ -17,6 +17,11 @@ create table migtest_mtm_m_migtest_mtm_c ( constraint pk_migtest_mtm_m_migtest_mtm_c primary key (migtest_mtm_m_id,migtest_mtm_c_id) ); +create table migtest_mtm_m_phone_numbers ( + migtest_mtm_m_id numeric(19) not null, + value varchar(255) not null +); + alter table migtest_ckey_detail add column one_key integer; alter table migtest_ckey_detail add column two_key varchar(127); @@ -103,6 +108,9 @@ alter table migtest_mtm_m_migtest_mtm_c add constraint fk_migtest_mtm_m_migtest_ 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_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_phone_numbers_migtest_mtm_m_id on migtest_mtm_m_phone_numbers (migtest_mtm_m_id); +alter table migtest_mtm_m_phone_numbers add constraint fk_migtest_mtm_m_phone_numbers_migtest_mtm_m_id foreign key (migtest_mtm_m_id) references migtest_mtm_m (id) on delete restrict on update restrict; + create index ix_migtest_ckey_parent_assoc_id on migtest_ckey_parent (assoc_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; diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlanywhere/1.4__dropsFor_1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlanywhere/1.4__dropsFor_1.3.sql index 24e4e93ba..f45a36211 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlanywhere/1.4__dropsFor_1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlanywhere/1.4__dropsFor_1.3.sql @@ -31,3 +31,4 @@ 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; +drop table if exists migtest_mtm_m_phone_numbers; diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlanywhere/idx_sqlanywhere.migrations b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlanywhere/idx_sqlanywhere.migrations index 7573b93ff..684ce1c07 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlanywhere/idx_sqlanywhere.migrations +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlanywhere/idx_sqlanywhere.migrations @@ -1,6 +1,6 @@ 471098770, 1.0__initial.sql --1404654186, 1.1.sql +776493598, 1.1.sql 1359055889, 1.2__dropsFor_1.1.sql -1656705954, 1.3.sql --1070218324, 1.4__dropsFor_1.3.sql +-1045594368, 1.4__dropsFor_1.3.sql diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlite/1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlite/1.1.sql index a762b673e..888db9989 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlite/1.1.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlite/1.1.sql @@ -21,6 +21,12 @@ create table migtest_mtm_m_migtest_mtm_c ( foreign key (migtest_mtm_c_id) references migtest_mtm_c (id) on delete restrict on update restrict ); +create table migtest_mtm_m_phone_numbers ( + migtest_mtm_m_id integer not null, + value varchar(255) not null, + foreign key (migtest_mtm_m_id) references migtest_mtm_m (id) on delete restrict on update restrict +); + alter table migtest_ckey_detail add column one_key integer; alter table migtest_ckey_detail add column two_key varchar(127); diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlite/1.4__dropsFor_1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlite/1.4__dropsFor_1.3.sql index 24e4e93ba..f45a36211 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlite/1.4__dropsFor_1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlite/1.4__dropsFor_1.3.sql @@ -31,3 +31,4 @@ 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; +drop table if exists migtest_mtm_m_phone_numbers; diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlite/idx_sqlite.migrations b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlite/idx_sqlite.migrations index 8dc515327..25e367a67 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlite/idx_sqlite.migrations +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlite/idx_sqlite.migrations @@ -1,7 +1,7 @@ 1429491518, 1.0__initial.sql --347121868, 1.1.sql +-1974335860, 1.1.sql 1359055889, 1.2__dropsFor_1.1.sql -1764531063, 1.3.sql --1070218324, 1.4__dropsFor_1.3.sql +-1045594368, 1.4__dropsFor_1.3.sql 2034589659, R__order_views_sqlite.sql diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver/1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver/1.1.sql index f8ba67fe0..9090ca711 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver/1.1.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver/1.1.sql @@ -18,6 +18,11 @@ create table migtest_mtm_m_migtest_mtm_c ( constraint pk_migtest_mtm_m_migtest_mtm_c primary key (migtest_mtm_m_id,migtest_mtm_c_id) ); +create table migtest_mtm_m_phone_numbers ( + migtest_mtm_m_id numeric(19) not null, + value nvarchar(255) not null +); + alter table migtest_ckey_detail add one_key integer; alter table migtest_ckey_detail add two_key nvarchar(127); @@ -103,6 +108,9 @@ alter table migtest_mtm_m_migtest_mtm_c add constraint fk_migtest_mtm_m_migtest_ 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_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_phone_numbers_migtest_mtm_m_id on migtest_mtm_m_phone_numbers (migtest_mtm_m_id); +alter table migtest_mtm_m_phone_numbers add constraint fk_migtest_mtm_m_phone_numbers_migtest_mtm_m_id foreign key (migtest_mtm_m_id) references migtest_mtm_m (id); + create index ix_migtest_ckey_parent_assoc_id on migtest_ckey_parent (assoc_id); alter table migtest_ckey_parent add constraint fk_migtest_ckey_parent_assoc_id foreign key (assoc_id) references migtest_ckey_assoc (id); diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver/1.4__dropsFor_1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver/1.4__dropsFor_1.3.sql index 4cc7ad30b..3f465ec78 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver/1.4__dropsFor_1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver/1.4__dropsFor_1.3.sql @@ -32,6 +32,7 @@ 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; +IF OBJECT_ID('migtest_mtm_m_phone_numbers', 'U') IS NOT NULL drop table migtest_mtm_m_phone_numbers; -- dropping history support for migtest_e_history; EXEC usp_ebean_drop_default_constraint migtest_e_history, sys_periodFrom; EXEC usp_ebean_drop_default_constraint migtest_e_history, sys_periodTo; diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver/idx_sqlserver.migrations b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver/idx_sqlserver.migrations index f78f12855..388adffc2 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver/idx_sqlserver.migrations +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver/idx_sqlserver.migrations @@ -1,8 +1,8 @@ -2122378240, I__create_procs.sql -1048913407, 1.0__initial.sql -615613536, 1.1.sql +-898063858, 1.1.sql -1805601919, 1.2__dropsFor_1.1.sql -1791137342, 1.3.sql -460536923, 1.4__dropsFor_1.3.sql +-1335541264, 1.4__dropsFor_1.3.sql 1607822082, R__order_views_mssql.sql diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/yugabyte/1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/yugabyte/1.1.sql index e4698ca62..7a911b54c 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/yugabyte/1.1.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/yugabyte/1.1.sql @@ -23,6 +23,11 @@ create table migtest_mtm_m_migtest_mtm_c ( constraint pk_migtest_mtm_m_migtest_mtm_c primary key (migtest_mtm_m_id,migtest_mtm_c_id) ); +create table migtest_mtm_m_phone_numbers ( + migtest_mtm_m_id bigint not null, + value varchar(255) not null +); + alter table migtest_ckey_detail add column one_key integer; alter table migtest_ckey_detail add column two_key varchar(127); @@ -114,6 +119,9 @@ alter table migtest_mtm_m_migtest_mtm_c add constraint fk_migtest_mtm_m_migtest_ 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_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_phone_numbers_migtest_mtm_m_id on migtest_mtm_m_phone_numbers (migtest_mtm_m_id); +alter table migtest_mtm_m_phone_numbers add constraint fk_migtest_mtm_m_phone_numbers_migtest_mtm_m_id foreign key (migtest_mtm_m_id) references migtest_mtm_m (id) on delete restrict on update restrict; + create index ix_migtest_ckey_parent_assoc_id on migtest_ckey_parent (assoc_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; diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/yugabyte/1.4__dropsFor_1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/yugabyte/1.4__dropsFor_1.3.sql index 748ee959b..4524d4a40 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/yugabyte/1.4__dropsFor_1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/yugabyte/1.4__dropsFor_1.3.sql @@ -47,6 +47,7 @@ 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; +drop table if exists migtest_mtm_m_phone_numbers cascade; create view migtest_e_history2_with_history as select * from migtest_e_history2 union all select * from migtest_e_history2_history; create view migtest_e_history5_with_history as select * from migtest_e_history5 union all select * from migtest_e_history5_history; diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/yugabyte/idx_yugabyte.migrations b/ebean-test/src/test/resources/migrationtest/dbmigration/yugabyte/idx_yugabyte.migrations index c1d90b411..4dd2bc71e 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/yugabyte/idx_yugabyte.migrations +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/yugabyte/idx_yugabyte.migrations @@ -1,7 +1,7 @@ -1449071956, 1.0__initial.sql -1483502951, 1.1.sql +1985413053, 1.1.sql -1861367028, 1.2__dropsFor_1.1.sql 2034977550, 1.3.sql -1959776888, 1.4__dropsFor_1.3.sql +-1991941691, 1.4__dropsFor_1.3.sql 561281075, R__order_views.sql From a731bfdfafc6029eca0c31b59148cd458829124d Mon Sep 17 00:00:00 2001 From: Roland Praml Date: Mon, 7 Feb 2022 16:04:59 +0100 Subject: [PATCH 4/6] Multi-platform tests --- .../platform/ClickHouseDbArray.java | 1 + .../dbmigration/DbMigrationGenerateTest.java | 19 +- .../dbmigration/DbMigrationTest.java | 26 +- .../src/test/resources/ebean.properties | 3 +- .../dbmigration/db2fori/1.0__initial.sql | 174 ++++++++++ .../migrationtest/dbmigration/db2fori/1.1.sql | 119 +++++++ .../{db2 => db2fori}/1.2__dropsFor_1.1.sql | 0 .../migrationtest/dbmigration/db2fori/1.3.sql | 67 ++++ .../{db2 => db2fori}/1.4__dropsFor_1.3.sql | 0 .../{db2 => db2fori}/R__order_views.sql | 0 .../dbmigration/db2fori/idx_db2.migrations | 7 + .../dbmigration/db2legacy/1.0__initial.sql | 174 ++++++++++ .../dbmigration/db2legacy/1.1.sql | 119 +++++++ .../db2legacy/1.2__dropsFor_1.1.sql | 14 + .../dbmigration/db2legacy/1.3.sql | 67 ++++ .../db2legacy/1.4__dropsFor_1.3.sql | 35 ++ .../dbmigration/db2legacy/R__order_views.sql | 7 + .../dbmigration/db2legacy/idx_db2.migrations | 7 + .../{db2 => db2luw}/1.0__initial.sql | 0 .../dbmigration/{db2 => db2luw}/1.1.sql | 0 .../dbmigration/db2luw/1.2__dropsFor_1.1.sql | 14 + .../dbmigration/{db2 => db2luw}/1.3.sql | 0 .../dbmigration/db2luw/1.4__dropsFor_1.3.sql | 35 ++ .../dbmigration/db2luw/R__order_views.sql | 7 + .../{db2 => db2luw}/idx_db2.migrations | 0 .../dbmigration/db2zos/1.0__initial.sql | 174 ++++++++++ .../migrationtest/dbmigration/db2zos/1.1.sql | 119 +++++++ .../dbmigration/db2zos/1.2__dropsFor_1.1.sql | 14 + .../migrationtest/dbmigration/db2zos/1.3.sql | 67 ++++ .../dbmigration/db2zos/1.4__dropsFor_1.3.sql | 35 ++ .../dbmigration/db2zos/R__order_views.sql | 7 + .../dbmigration/db2zos/idx_db2.migrations | 7 + .../dbmigration/mysql/1.0__initial.sql | 2 +- .../dbmigration/mysql/idx_mysql.migrations | 2 +- .../dbmigration/mysql55/1.0__initial.sql | 269 +++++++++++++++ .../migrationtest/dbmigration/mysql55/1.1.sql | 199 ++++++++++++ .../dbmigration/mysql55/1.2__dropsFor_1.1.sql | 34 ++ .../migrationtest/dbmigration/mysql55/1.3.sql | 115 +++++++ .../dbmigration/mysql55/1.4__dropsFor_1.3.sql | 79 +++++ .../dbmigration/mysql55/I__create_procs.sql | 48 +++ .../dbmigration/mysql55/R__order_views.sql | 7 + .../dbmigration/mysql55/idx_mysql.migrations | 8 + .../dbmigration/oracle/1.0__initial.sql | 66 ++-- .../migrationtest/dbmigration/oracle/1.1.sql | 3 +- .../migrationtest/dbmigration/oracle/1.3.sql | 3 +- .../dbmigration/oracle/idx_oracle.migrations | 6 +- .../dbmigration/oracle11/1.0__initial.sql | 196 +++++++++++ .../dbmigration/oracle11/1.1.sql | 119 +++++++ .../oracle11/1.2__dropsFor_1.1.sql | 14 + .../dbmigration/oracle11/1.3.sql | 68 ++++ .../oracle11/1.4__dropsFor_1.3.sql | 35 ++ .../oracle11/R__oracle_only_views.sql | 4 + .../dbmigration/oracle11/R__order_views.sql | 7 + .../oracle11/idx_oracle.migrations | 8 + .../dbmigration/postgres/1.0__initial.sql | 44 +-- .../dbmigration/postgres/1.1.sql | 2 +- .../dbmigration/postgres/1.3.sql | 2 +- .../postgres/idx_postgres.migrations | 6 +- .../dbmigration/postgres9/1.0__initial.sql | 307 ++++++++++++++++++ .../dbmigration/postgres9/1.1.sql | 245 ++++++++++++++ .../postgres9/1.2__dropsFor_1.1.sql | 40 +++ .../dbmigration/postgres9/1.3.sql | 141 ++++++++ .../postgres9/1.4__dropsFor_1.3.sql | 92 ++++++ .../postgres9/R__multi_comments.sql | 3 + .../dbmigration/postgres9/R__order_views.sql | 7 + .../dbmigration/postgres9/R__pg_indexes.sql | 4 + .../postgres9/idx_postgres.migrations | 9 + .../dbmigration/sqlserver16/1.0__initial.sql | 199 ++++++++++++ .../dbmigration/sqlserver16/1.1.sql | 125 +++++++ .../1.2__dropsFor_1.1.sql | 0 .../dbmigration/sqlserver16/1.3.sql | 72 ++++ .../1.4__dropsFor_1.3.sql | 0 .../I__create_procs.sql | 0 .../R__order_views_mssql.sql | 0 .../sqlserver16/idx_sqlserver.migrations | 8 + .../1.0__initial.sql | 0 .../{sqlserver => sqlserver17}/1.1.sql | 0 .../sqlserver17/1.2__dropsFor_1.1.sql | 14 + .../{sqlserver => sqlserver17}/1.3.sql | 0 .../sqlserver17/1.4__dropsFor_1.3.sql | 44 +++ .../sqlserver17/I__create_procs.sql | 110 +++++++ .../sqlserver17/R__order_views_mssql.sql | 10 + .../idx_sqlserver.migrations | 0 83 files changed, 4001 insertions(+), 93 deletions(-) create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/db2fori/1.0__initial.sql create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/db2fori/1.1.sql rename ebean-test/src/test/resources/migrationtest/dbmigration/{db2 => db2fori}/1.2__dropsFor_1.1.sql (100%) create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/db2fori/1.3.sql rename ebean-test/src/test/resources/migrationtest/dbmigration/{db2 => db2fori}/1.4__dropsFor_1.3.sql (100%) rename ebean-test/src/test/resources/migrationtest/dbmigration/{db2 => db2fori}/R__order_views.sql (100%) create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/db2fori/idx_db2.migrations create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/db2legacy/1.0__initial.sql create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/db2legacy/1.1.sql create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/db2legacy/1.2__dropsFor_1.1.sql create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/db2legacy/1.3.sql create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/db2legacy/1.4__dropsFor_1.3.sql create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/db2legacy/R__order_views.sql create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/db2legacy/idx_db2.migrations rename ebean-test/src/test/resources/migrationtest/dbmigration/{db2 => db2luw}/1.0__initial.sql (100%) rename ebean-test/src/test/resources/migrationtest/dbmigration/{db2 => db2luw}/1.1.sql (100%) create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/db2luw/1.2__dropsFor_1.1.sql rename ebean-test/src/test/resources/migrationtest/dbmigration/{db2 => db2luw}/1.3.sql (100%) create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/db2luw/1.4__dropsFor_1.3.sql create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/db2luw/R__order_views.sql rename ebean-test/src/test/resources/migrationtest/dbmigration/{db2 => db2luw}/idx_db2.migrations (100%) create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/db2zos/1.0__initial.sql create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/db2zos/1.1.sql create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/db2zos/1.2__dropsFor_1.1.sql create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/db2zos/1.3.sql create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/db2zos/1.4__dropsFor_1.3.sql create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/db2zos/R__order_views.sql create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/db2zos/idx_db2.migrations create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/mysql55/1.0__initial.sql create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/mysql55/1.1.sql create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/mysql55/1.2__dropsFor_1.1.sql create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/mysql55/1.3.sql create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/mysql55/1.4__dropsFor_1.3.sql create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/mysql55/I__create_procs.sql create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/mysql55/R__order_views.sql create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/mysql55/idx_mysql.migrations create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/oracle11/1.0__initial.sql create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/oracle11/1.1.sql create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/oracle11/1.2__dropsFor_1.1.sql create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/oracle11/1.3.sql create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/oracle11/1.4__dropsFor_1.3.sql create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/oracle11/R__oracle_only_views.sql create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/oracle11/R__order_views.sql create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/oracle11/idx_oracle.migrations create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/postgres9/1.0__initial.sql create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/postgres9/1.1.sql create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/postgres9/1.2__dropsFor_1.1.sql create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/postgres9/1.3.sql create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/postgres9/1.4__dropsFor_1.3.sql create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/postgres9/R__multi_comments.sql create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/postgres9/R__order_views.sql create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/postgres9/R__pg_indexes.sql create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/postgres9/idx_postgres.migrations create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/1.0__initial.sql create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/1.1.sql rename ebean-test/src/test/resources/migrationtest/dbmigration/{sqlserver => sqlserver16}/1.2__dropsFor_1.1.sql (100%) create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/1.3.sql rename ebean-test/src/test/resources/migrationtest/dbmigration/{sqlserver => sqlserver16}/1.4__dropsFor_1.3.sql (100%) rename ebean-test/src/test/resources/migrationtest/dbmigration/{sqlserver => sqlserver16}/I__create_procs.sql (100%) rename ebean-test/src/test/resources/migrationtest/dbmigration/{sqlserver => sqlserver16}/R__order_views_mssql.sql (100%) create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/idx_sqlserver.migrations rename ebean-test/src/test/resources/migrationtest/dbmigration/{sqlserver => sqlserver17}/1.0__initial.sql (100%) rename ebean-test/src/test/resources/migrationtest/dbmigration/{sqlserver => sqlserver17}/1.1.sql (100%) create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/1.2__dropsFor_1.1.sql rename ebean-test/src/test/resources/migrationtest/dbmigration/{sqlserver => sqlserver17}/1.3.sql (100%) create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/1.4__dropsFor_1.3.sql create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/I__create_procs.sql create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/R__order_views_mssql.sql rename ebean-test/src/test/resources/migrationtest/dbmigration/{sqlserver => sqlserver17}/idx_sqlserver.migrations (100%) diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/ClickHouseDbArray.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/ClickHouseDbArray.java index 0bb2f7895..469e58420 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/ClickHouseDbArray.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/ClickHouseDbArray.java @@ -15,6 +15,7 @@ class ClickHouseDbArray { mapping.put("integer[]", "Array(UInt32)"); mapping.put("bigint[]", "Array(UInt64)"); mapping.put("float[]", "Array(Float32)"); + mapping.put("decimal[]", "Array(Decimal)"); } /** diff --git a/ebean-test/src/test/java/io/ebeaninternal/dbmigration/DbMigrationGenerateTest.java b/ebean-test/src/test/java/io/ebeaninternal/dbmigration/DbMigrationGenerateTest.java index 2e0824efb..4f9d3539a 100644 --- a/ebean-test/src/test/java/io/ebeaninternal/dbmigration/DbMigrationGenerateTest.java +++ b/ebean-test/src/test/java/io/ebeaninternal/dbmigration/DbMigrationGenerateTest.java @@ -52,9 +52,12 @@ public class DbMigrationGenerateTest { migration.addPlatform(Platform.CLICKHOUSE); migration.addPlatform(Platform.COCKROACH); - migration.addPlatform(Platform.DB2FORI); - migration.addPlatform(Platform.DB2LUW); - migration.addPlatform(Platform.DB2ZOS); + // for platforms like DB2-LUW, we specify the exact platform in the migration path + // see https://github.com/ebean-orm/ebean-migration/issues/102 + migration.addPlatform(Platform.DB2LUW, "db2luw"); + migration.addPlatform(Platform.DB2FORI, "db2fori"); + migration.addPlatform(Platform.DB2ZOS, "db2zos"); + migration.addPlatform(Platform.DB2, "db2legacy"); migration.addPlatform(Platform.GENERIC); migration.addPlatform(Platform.H2); migration.addPlatform(Platform.HANA); @@ -62,16 +65,16 @@ public class DbMigrationGenerateTest { migration.addPlatform(Platform.MARIADB); migration.addPlatform(Platform.MARIADB, "mariadb-noprocs"); migration.addPlatform(Platform.MYSQL); - migration.addPlatform(Platform.MYSQL55); + migration.addPlatform(Platform.MYSQL55, "mysql55"); migration.addPlatform(Platform.NUODB); migration.addPlatform(Platform.ORACLE); - migration.addPlatform(Platform.ORACLE11); + migration.addPlatform(Platform.ORACLE11, "oracle11"); // uses sequences migration.addPlatform(Platform.POSTGRES); - migration.addPlatform(Platform.POSTGRES9); + migration.addPlatform(Platform.POSTGRES9, "postgres9"); // different DDL as base! migration.addPlatform(Platform.SQLANYWHERE); migration.addPlatform(Platform.SQLITE); - migration.addPlatform(Platform.SQLSERVER16); - migration.addPlatform(Platform.SQLSERVER17); + migration.addPlatform(Platform.SQLSERVER16, "sqlserver16"); + migration.addPlatform(Platform.SQLSERVER17, "sqlserver17"); migration.addPlatform(Platform.YUGABYTE); diff --git a/ebean-test/src/test/java/io/ebeaninternal/dbmigration/DbMigrationTest.java b/ebean-test/src/test/java/io/ebeaninternal/dbmigration/DbMigrationTest.java index b85e1b227..0bd81fe63 100644 --- a/ebean-test/src/test/java/io/ebeaninternal/dbmigration/DbMigrationTest.java +++ b/ebean-test/src/test/java/io/ebeaninternal/dbmigration/DbMigrationTest.java @@ -5,15 +5,23 @@ import io.ebean.SqlRow; import io.ebean.SqlUpdate; import io.ebean.annotation.IgnorePlatform; import io.ebean.annotation.Platform; +import io.ebean.datasource.pool.ConnectionPool; + import org.junit.jupiter.api.Test; import java.io.File; import java.io.IOException; import java.net.URL; +import java.sql.SQLException; import java.util.List; import static org.assertj.core.api.Assertions.assertThat; +/** + * This testcase tries to apply the migrationtests that are genearated by {@link DbMigrationGenerateTest}. + * @author Roland Praml, FOCONIS AG + * + */ public class DbMigrationTest extends BaseTestCase { private void runScript(String scriptName) throws IOException { @@ -30,12 +38,20 @@ public class DbMigrationTest extends BaseTestCase { assertThat(LastMigration.nextVersion(d, null, true)).isEqualTo("1.4"); } - @IgnorePlatform({Platform.ORACLE, Platform.NUODB, Platform.POSTGRES, Platform.YUGABYTE}) + @IgnorePlatform({ + Platform.DB2, // currently does not work due missing reorg feature + //Platform.CLICKHOUSE, // test(s) do not start at all + //Platform.COCKROACH, // does not see applied DDL? commit missing? + // Platform.NUODB nuodb container does not start + }) + //Platform.ORACLE, Platform.NUODB, Platform.POSTGRES, Platform.YUGABYTE}) // Note: Postgres locks up on build server // Note: YUGABYTE complains on "alter table migtest_e_basic alter column status set not null;" @Test - public void testRunMigration() throws IOException { - // first clean up previously created objects + public void testRunMigration() throws IOException, SQLException { + // Shutdown and reconnect - this prevents postgres from lock up + ((ConnectionPool)server().dataSource()).offline(); + ((ConnectionPool)server().dataSource()).online(); cleanup("migtest_ckey_assoc", "migtest_ckey_detail", "migtest_ckey_parent", @@ -63,7 +79,9 @@ public class DbMigrationTest extends BaseTestCase { "migtest_mtm_m_migtest_mtm_c", "migtest_oto_child", "migtest_oto_master"); - + ((ConnectionPool)server().dataSource()).offline(); + ((ConnectionPool)server().dataSource()).online(); + if (isSqlServer() || isMariaDB()) { // || isMySql() runScript("I__create_procs.sql"); } diff --git a/ebean-test/src/test/resources/ebean.properties b/ebean-test/src/test/resources/ebean.properties index 7a59319a5..544fd08d4 100644 --- a/ebean-test/src/test/resources/ebean.properties +++ b/ebean-test/src/test/resources/ebean.properties @@ -207,14 +207,15 @@ ebean.migrationtest.ddl.header=-- Migrationscripts for ebean unittest ebean.migrationtest.migration.appName=migrationtest ebean.migrationtest.migration.migrationPath=migrationtest/dbmigration ebean.migrationtest.migration.strict=true +# enable stored procedures f dbmigration.platform.mariadb.useMigrationStoredProcedures=true dbmigration.platform.mysql.useMigrationStoredProcedures=true +dbmigration.platform.mysql55.useMigrationStoredProcedures=true # parameters for migration test datasource.migrationtest-history.username=SA datasource.migrationtest-history.password=SA datasource.migrationtest-history.url=jdbc:h2:mem:migration -ebean.migrationtest-history.applyPrefix=V ebean.migrationtest-history.ddl.generate=false ebean.migrationtest-history.ddl.run=false ebean.migrationtest-history.ddl.header=-- Migrationscripts for ebean unittest DbMigrationDropHistoryTest diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/db2fori/1.0__initial.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/db2fori/1.0__initial.sql new file mode 100644 index 000000000..c24736673 --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2fori/1.0__initial.sql @@ -0,0 +1,174 @@ +-- 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, + constraint pk_migtest_fk_cascade primary key (id) +); + +create table migtest_fk_cascade_one ( + id bigint generated by default as identity not null, + constraint pk_migtest_fk_cascade_one primary key (id) +); + +create table migtest_fk_none ( + id bigint generated by default as identity not null, + one_id bigint, + constraint pk_migtest_fk_none primary key (id) +); + +create table migtest_fk_none_via_join ( + id bigint generated by default as identity not null, + one_id bigint, + constraint pk_migtest_fk_none_via_join primary key (id) +); + +create table migtest_fk_one ( + id bigint generated by default as identity not null, + constraint pk_migtest_fk_one primary key (id) +); + +create table migtest_fk_set_null ( + id bigint generated by default as identity not null, + one_id bigint, + constraint pk_migtest_fk_set_null primary key (id) +); + +create table migtest_e_basic ( + id integer generated by default as identity not null, + status varchar(1), + status2 varchar(1) default 'N' not null, + name varchar(127), + description varchar(127), + some_date timestamp, + old_boolean smallint default 0 default false not null, + old_boolean2 smallint default 0, + eref_id integer, + indextest1 varchar(127), + indextest2 varchar(127), + indextest3 varchar(127), + indextest4 varchar(127), + indextest5 varchar(127), + indextest6 varchar(127), + user_id integer not null, + constraint ck_migtest_e_basic_status check ( status in ('N','A','I')), + constraint ck_migtest_e_basic_status2 check ( status2 in ('N','A','I')), + constraint pk_migtest_e_basic primary key (id) +); +create unique index uq_migtest_e_basic_indextest2 on migtest_e_basic(indextest2) exclude null keys; +create unique index uq_migtest_e_basic_indextest6 on migtest_e_basic(indextest6) exclude null keys; + +create table migtest_e_enum ( + id integer generated by default as identity not null, + test_status varchar(1), + constraint ck_migtest_e_enum_test_status check ( test_status in ('N','A','I')), + constraint pk_migtest_e_enum primary key (id) +); + +create table migtest_e_history ( + id integer generated by default as identity not null, + test_string varchar(255), + constraint pk_migtest_e_history primary key (id) +); + +create table migtest_e_history2 ( + id integer generated by default as identity not null, + test_string varchar(255), + obsolete_string1 varchar(255), + obsolete_string2 varchar(255), + constraint pk_migtest_e_history2 primary key (id) +); + +create table migtest_e_history3 ( + id integer generated by default as identity not null, + test_string varchar(255), + constraint pk_migtest_e_history3 primary key (id) +); + +create table migtest_e_history4 ( + id integer generated by default as identity not null, + test_number integer, + constraint pk_migtest_e_history4 primary key (id) +); + +create table migtest_e_history5 ( + id integer generated by default as identity not null, + test_number integer, + constraint pk_migtest_e_history5 primary key (id) +); + +create table migtest_e_history6 ( + id integer generated by default as identity not null, + test_number1 integer, + test_number2 integer not null, + constraint pk_migtest_e_history6 primary key (id) +); + +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, + test_string varchar(255), + 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); +create index ix_migtest_fk_cascade_one_id on 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; + +create index ix_migtest_fk_set_null_one_id on migtest_fk_set_null (one_id); +alter table migtest_fk_set_null add constraint fk_migtest_fk_set_null_one_id foreign key (one_id) references migtest_fk_one (id) on delete set null; + +create index ix_migtest_e_basic_eref_id on migtest_e_basic (eref_id); +alter table migtest_e_basic add constraint fk_migtest_e_basic_eref_id foreign key (eref_id) references migtest_e_ref (id) on delete restrict; + diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/db2fori/1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/db2fori/1.1.sql new file mode 100644 index 000000000..cfed3e3ef --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2fori/1.1.sql @@ -0,0 +1,119 @@ +-- Migrationscripts for ebean unittest +-- apply changes +create table migtest_e_user ( + id integer generated by default as identity not null, + 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) +); + +create table migtest_mtm_m_phone_numbers ( + migtest_mtm_m_id bigint not null, + value varchar(255) not null +); + +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; +alter table migtest_fk_none_via_join add constraint fk_migtest_fk_none_via_join_one_id foreign key (one_id) references migtest_fk_one (id) on delete restrict; +alter table migtest_fk_set_null drop constraint fk_migtest_fk_set_null_one_id; +alter table migtest_fk_set_null add constraint fk_migtest_fk_set_null_one_id foreign key (one_id) references migtest_fk_one (id) on delete restrict; + +update migtest_e_basic set status = 'A' where status is null; +alter table migtest_e_basic drop constraint ck_migtest_e_basic_status; +alter table migtest_e_basic alter column status set default 'A'; +alter table migtest_e_basic alter column status set not null; +alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I','?')); +alter table migtest_e_basic drop constraint ck_migtest_e_basic_status2; +alter table migtest_e_basic alter column status2 set data type varchar(127); +alter table migtest_e_basic alter column status2 drop default; +alter table migtest_e_basic alter column status2 drop not null; + +-- db2 does not support parial null indices :( - so we have to clean; +update migtest_e_basic set status = 'N' where id = 1; +create unique index uq_migtest_e_basic_description on migtest_e_basic(description) exclude null keys; + +insert into migtest_e_user (id) select distinct user_id from migtest_e_basic; +alter table migtest_e_basic add constraint fk_migtest_e_basic_user_id foreign key (user_id) references migtest_e_user (id) on delete restrict; +alter table migtest_e_basic alter column user_id drop not null; +alter table migtest_e_basic add column new_string_field varchar(255) default 'foo''bar' not null; +alter table migtest_e_basic add column new_boolean_field smallint default 0 default true not null; +update migtest_e_basic set new_boolean_field = old_boolean; + +alter table migtest_e_basic add column new_boolean_field2 smallint default 0 default true not null; +alter table migtest_e_basic add column progress integer default 0 not null; +alter table migtest_e_basic add constraint ck_migtest_e_basic_progress check ( progress in (0,1,2)); +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; +create unique index uq_migtest_e_basic_status_indextest1 on migtest_e_basic(status,indextest1) exclude null keys; +create unique index uq_migtest_e_basic_name on migtest_e_basic(name) exclude null keys; +create unique index uq_migtest_e_basic_indextest4 on migtest_e_basic(indextest4) exclude null keys; +create unique index uq_migtest_e_basic_indextest5 on migtest_e_basic(indextest5) exclude null keys; +alter table migtest_e_enum drop constraint ck_migtest_e_enum_test_status; +comment on column migtest_e_history.test_string is 'Column altered to long now'; +alter table migtest_e_history alter column test_string set data type bigint; +comment on table migtest_e_history is 'We have history now'; + +-- NOTE: table has @History - special migration may be necessary +update migtest_e_history2 set test_string = 'unknown' where test_string is null; +alter table migtest_e_history2 alter column test_string set default 'unknown'; +alter table migtest_e_history2 alter column test_string set not null; +alter table migtest_e_history2 add column test_string2 varchar(255); +alter table migtest_e_history2 add column test_string3 varchar(255) default 'unknown' not null; +alter table migtest_e_history2 add column new_column varchar(20); + +alter table migtest_e_history4 alter column test_number set data type bigint; +alter table migtest_e_history5 add column test_boolean smallint default 0 default false not null; + + +-- NOTE: table has @History - special migration may be necessary +update migtest_e_history6 set test_number1 = 42 where test_number1 is null; +alter table migtest_e_history6 alter column test_number1 set default 42; +alter table migtest_e_history6 alter column test_number1 set not null; +alter table migtest_e_history6 alter column test_number2 drop not null; +alter table migtest_e_softdelete add column deleted smallint default 0 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; +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_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_m on migtest_mtm_c_migtest_mtm_m (migtest_mtm_m_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_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_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_c on migtest_mtm_m_migtest_mtm_c (migtest_mtm_c_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_phone_numbers_migtest_mtm_m_id on migtest_mtm_m_phone_numbers (migtest_mtm_m_id); +alter table migtest_mtm_m_phone_numbers add constraint fk_migtest_mtm_m_phone_numbers_migtest_mtm_m_id foreign key (migtest_mtm_m_id) references migtest_mtm_m (id) on delete restrict; + +create index ix_migtest_ckey_parent_assoc_id on migtest_ckey_parent (assoc_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; + +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/ebean-test/src/test/resources/migrationtest/dbmigration/db2/1.2__dropsFor_1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/db2fori/1.2__dropsFor_1.1.sql similarity index 100% rename from ebean-test/src/test/resources/migrationtest/dbmigration/db2/1.2__dropsFor_1.1.sql rename to ebean-test/src/test/resources/migrationtest/dbmigration/db2fori/1.2__dropsFor_1.1.sql diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/db2fori/1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/db2fori/1.3.sql new file mode 100644 index 000000000..c791cef2d --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2fori/1.3.sql @@ -0,0 +1,67 @@ +-- Migrationscripts for ebean unittest +-- 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; +alter table migtest_fk_none_via_join drop constraint fk_migtest_fk_none_via_join_one_id; +alter table migtest_fk_set_null drop constraint fk_migtest_fk_set_null_one_id; +alter table migtest_fk_set_null add constraint fk_migtest_fk_set_null_one_id foreign key (one_id) references migtest_fk_one (id) on delete set null; +alter table migtest_e_basic drop constraint ck_migtest_e_basic_status; +alter table migtest_e_basic alter column status drop default; +alter table migtest_e_basic alter column status drop not null; +alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I')); + +update migtest_e_basic set status2 = 'N' where status2 is null; +alter table migtest_e_basic drop constraint ck_migtest_e_basic_status2; +alter table migtest_e_basic alter column status2 set data type varchar(1); +alter table migtest_e_basic alter column status2 set default 'N'; +alter table migtest_e_basic alter column status2 set not null; +alter table migtest_e_basic add constraint ck_migtest_e_basic_status2 check ( status2 in ('N','A','I')); +alter table migtest_e_basic drop constraint uq_migtest_e_basic_description; + +update migtest_e_basic set user_id = 23 where user_id is null; +alter table migtest_e_basic drop constraint fk_migtest_e_basic_user_id; +alter table migtest_e_basic alter column user_id set default 23; +alter table migtest_e_basic alter column user_id set not null; +alter table migtest_e_basic add column old_boolean smallint default 0 default false not null; +alter table migtest_e_basic add column old_boolean2 smallint default 0; +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; +create unique index uq_migtest_e_basic_indextest2 on migtest_e_basic(indextest2) exclude null keys; +create unique index uq_migtest_e_basic_indextest6 on migtest_e_basic(indextest6) exclude null keys; +alter table migtest_e_enum drop constraint ck_migtest_e_enum_test_status; +alter table migtest_e_enum add constraint ck_migtest_e_enum_test_status check ( test_status in ('N','A','I')); +comment on column migtest_e_history.test_string is ''; +comment on table migtest_e_history is ''; +alter table migtest_e_history2 alter column test_string drop default; +alter table migtest_e_history2 alter column test_string drop not null; +alter table migtest_e_history2 add column obsolete_string1 varchar(255); +alter table migtest_e_history2 add column obsolete_string2 varchar(255); + +alter table migtest_e_history4 alter column test_number set data type integer; +alter table migtest_e_history6 alter column test_number1 drop default; +alter table migtest_e_history6 alter column test_number1 drop not null; + +-- NOTE: table has @History - special migration may be necessary +update migtest_e_history6 set test_number2 = 7 where test_number2 is null; +alter table migtest_e_history6 alter column test_number2 set default 7; +alter table migtest_e_history6 alter column test_number2 set not null; +create index ix_migtest_e_basic_indextest1 on migtest_e_basic (indextest1); +create index ix_migtest_e_basic_indextest5 on migtest_e_basic (indextest5); +drop index ix_migtest_e_basic_indextest3; +drop index ix_migtest_e_basic_indextest6; +create index ix_migtest_e_basic_eref_id on migtest_e_basic (eref_id); +alter table migtest_e_basic add constraint fk_migtest_e_basic_eref_id foreign key (eref_id) references migtest_e_ref (id) on delete restrict; + diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/db2/1.4__dropsFor_1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/db2fori/1.4__dropsFor_1.3.sql similarity index 100% rename from ebean-test/src/test/resources/migrationtest/dbmigration/db2/1.4__dropsFor_1.3.sql rename to ebean-test/src/test/resources/migrationtest/dbmigration/db2fori/1.4__dropsFor_1.3.sql diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/db2/R__order_views.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/db2fori/R__order_views.sql similarity index 100% rename from ebean-test/src/test/resources/migrationtest/dbmigration/db2/R__order_views.sql rename to ebean-test/src/test/resources/migrationtest/dbmigration/db2fori/R__order_views.sql diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/db2fori/idx_db2.migrations b/ebean-test/src/test/resources/migrationtest/dbmigration/db2fori/idx_db2.migrations new file mode 100644 index 000000000..2e0020c0b --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2fori/idx_db2.migrations @@ -0,0 +1,7 @@ +545908658, 1.0__initial.sql +-1594597621, 1.1.sql +578073685, 1.2__dropsFor_1.1.sql +99025497, 1.3.sql +441227910, 1.4__dropsFor_1.3.sql +561281075, R__order_views.sql + diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/db2legacy/1.0__initial.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/db2legacy/1.0__initial.sql new file mode 100644 index 000000000..049e2affc --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2legacy/1.0__initial.sql @@ -0,0 +1,174 @@ +-- 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, + constraint pk_migtest_fk_cascade primary key (id) +); + +create table migtest_fk_cascade_one ( + id bigint generated by default as identity not null, + constraint pk_migtest_fk_cascade_one primary key (id) +); + +create table migtest_fk_none ( + id bigint generated by default as identity not null, + one_id bigint, + constraint pk_migtest_fk_none primary key (id) +); + +create table migtest_fk_none_via_join ( + id bigint generated by default as identity not null, + one_id bigint, + constraint pk_migtest_fk_none_via_join primary key (id) +); + +create table migtest_fk_one ( + id bigint generated by default as identity not null, + constraint pk_migtest_fk_one primary key (id) +); + +create table migtest_fk_set_null ( + id bigint generated by default as identity not null, + one_id bigint, + constraint pk_migtest_fk_set_null primary key (id) +); + +create table migtest_e_basic ( + id integer generated by default as identity not null, + status varchar(1), + status2 varchar(1) default 'N' not null, + name varchar(127), + description varchar(127), + some_date timestamp, + old_boolean boolean default false not null, + old_boolean2 boolean, + eref_id integer, + indextest1 varchar(127), + indextest2 varchar(127), + indextest3 varchar(127), + indextest4 varchar(127), + indextest5 varchar(127), + indextest6 varchar(127), + user_id integer not null, + constraint ck_mgtst__bsc_stts check ( status in ('N','A','I')), + constraint ck_mgtst__b_z543fg check ( status2 in ('N','A','I')), + constraint pk_migtest_e_basic primary key (id) +); +create unique index uq_migtest_e_basic_indextest2 on migtest_e_basic(indextest2) exclude null keys; +create unique index uq_migtest_e_basic_indextest6 on migtest_e_basic(indextest6) exclude null keys; + +create table migtest_e_enum ( + id integer generated by default as identity not null, + test_status varchar(1), + constraint ck_mgtst__n_773sok check ( test_status in ('N','A','I')), + constraint pk_migtest_e_enum primary key (id) +); + +create table migtest_e_history ( + id integer generated by default as identity not null, + test_string varchar(255), + constraint pk_migtest_e_history primary key (id) +); + +create table migtest_e_history2 ( + id integer generated by default as identity not null, + test_string varchar(255), + obsolete_string1 varchar(255), + obsolete_string2 varchar(255), + constraint pk_migtest_e_history2 primary key (id) +); + +create table migtest_e_history3 ( + id integer generated by default as identity not null, + test_string varchar(255), + constraint pk_migtest_e_history3 primary key (id) +); + +create table migtest_e_history4 ( + id integer generated by default as identity not null, + test_number integer, + constraint pk_migtest_e_history4 primary key (id) +); + +create table migtest_e_history5 ( + id integer generated by default as identity not null, + test_number integer, + constraint pk_migtest_e_history5 primary key (id) +); + +create table migtest_e_history6 ( + id integer generated by default as identity not null, + test_number1 integer, + test_number2 integer not null, + constraint pk_migtest_e_history6 primary key (id) +); + +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_mgtst__rf_nm unique (name); + +create table migtest_e_softdelete ( + id integer generated by default as identity not null, + test_string varchar(255), + 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_mgtst__b_eu8csq on migtest_e_basic (indextest1); +create index ix_mgtst__b_eu8csu on migtest_e_basic (indextest5); +create index ix_mgtst_fk_mok1xj on migtest_fk_cascade (one_id); +alter table migtest_fk_cascade add constraint fk_mgtst_fk_65kf6l foreign key (one_id) references migtest_fk_cascade_one (id) on delete cascade; + +create index ix_mgtst_fk_c4p3mv on migtest_fk_set_null (one_id); +alter table migtest_fk_set_null add constraint fk_mgtst_fk_wicx8x foreign key (one_id) references migtest_fk_one (id) on delete set null; + +create index ix_mgtst__bsc_rf_d on migtest_e_basic (eref_id); +alter table migtest_e_basic add constraint fk_mgtst__bsc_rf_d foreign key (eref_id) references migtest_e_ref (id) on delete restrict; + diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/db2legacy/1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/db2legacy/1.1.sql new file mode 100644 index 000000000..eb81e66e0 --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2legacy/1.1.sql @@ -0,0 +1,119 @@ +-- Migrationscripts for ebean unittest +-- apply changes +create table migtest_e_user ( + id integer generated by default as identity not null, + 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) +); + +create table migtest_mtm_m_phone_numbers ( + migtest_mtm_m_id bigint not null, + value varchar(255) not null +); + +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_mgtst_ck_e1qkb5 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_mgtst_fk_65kf6l; +alter table migtest_fk_cascade add constraint fk_mgtst_fk_65kf6l foreign key (one_id) references migtest_fk_cascade_one (id) on delete restrict; +alter table migtest_fk_none add constraint fk_mgtst_fk_nn_n_d foreign key (one_id) references migtest_fk_one (id) on delete restrict; +alter table migtest_fk_none_via_join add constraint fk_mgtst_fk_9tknzj foreign key (one_id) references migtest_fk_one (id) on delete restrict; +alter table migtest_fk_set_null drop constraint fk_mgtst_fk_wicx8x; +alter table migtest_fk_set_null add constraint fk_mgtst_fk_wicx8x foreign key (one_id) references migtest_fk_one (id) on delete restrict; + +update migtest_e_basic set status = 'A' where status is null; +alter table migtest_e_basic drop constraint ck_mgtst__bsc_stts; +alter table migtest_e_basic alter column status set default 'A'; +alter table migtest_e_basic alter column status set not null; +alter table migtest_e_basic add constraint ck_mgtst__bsc_stts check ( status in ('N','A','I','?')); +alter table migtest_e_basic drop constraint ck_mgtst__b_z543fg; +alter table migtest_e_basic alter column status2 set data type varchar(127); +alter table migtest_e_basic alter column status2 drop default; +alter table migtest_e_basic alter column status2 drop not null; + +-- db2 does not support parial null indices :( - so we have to clean; +update migtest_e_basic set status = 'N' where id = 1; +create unique index uq_migtest_e_basic_description on migtest_e_basic(description) exclude null keys; + +insert into migtest_e_user (id) select distinct user_id from migtest_e_basic; +alter table migtest_e_basic add constraint fk_mgtst__bsc_sr_d foreign key (user_id) references migtest_e_user (id) on delete restrict; +alter table migtest_e_basic alter column user_id drop not null; +alter table migtest_e_basic add column new_string_field varchar(255) default 'foo''bar' not null; +alter table migtest_e_basic add column new_boolean_field boolean default true not null; +update migtest_e_basic set new_boolean_field = old_boolean; + +alter table migtest_e_basic add column new_boolean_field2 boolean default true not null; +alter table migtest_e_basic add column progress integer default 0 not null; +alter table migtest_e_basic add constraint ck_mgtst__b_l39g41 check ( progress in (0,1,2)); +alter table migtest_e_basic add column new_integer integer default 42 not null; + +alter table migtest_e_basic drop constraint uq_mgtst__b_4aybzy; +alter table migtest_e_basic drop constraint uq_mgtst__b_4ayc02; +create unique index uq_migtest_e_basic_status_indextest1 on migtest_e_basic(status,indextest1) exclude null keys; +create unique index uq_migtest_e_basic_name on migtest_e_basic(name) exclude null keys; +create unique index uq_migtest_e_basic_indextest4 on migtest_e_basic(indextest4) exclude null keys; +create unique index uq_migtest_e_basic_indextest5 on migtest_e_basic(indextest5) exclude null keys; +alter table migtest_e_enum drop constraint ck_mgtst__n_773sok; +comment on column migtest_e_history.test_string is 'Column altered to long now'; +alter table migtest_e_history alter column test_string set data type bigint; +comment on table migtest_e_history is 'We have history now'; + +-- NOTE: table has @History - special migration may be necessary +update migtest_e_history2 set test_string = 'unknown' where test_string is null; +alter table migtest_e_history2 alter column test_string set default 'unknown'; +alter table migtest_e_history2 alter column test_string set not null; +alter table migtest_e_history2 add column test_string2 varchar(255); +alter table migtest_e_history2 add column test_string3 varchar(255) default 'unknown' not null; +alter table migtest_e_history2 add column new_column varchar(20); + +alter table migtest_e_history4 alter column test_number set data type bigint; +alter table migtest_e_history5 add column test_boolean boolean default false not null; + + +-- NOTE: table has @History - special migration may be necessary +update migtest_e_history6 set test_number1 = 42 where test_number1 is null; +alter table migtest_e_history6 alter column test_number1 set default 42; +alter table migtest_e_history6 alter column test_number1 set not null; +alter table migtest_e_history6 alter column test_number2 drop not null; +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_mgtst__b_eu8css on migtest_e_basic (indextest3); +create index ix_mgtst__b_eu8csv on migtest_e_basic (indextest6); +drop index ix_mgtst__b_eu8csq; +drop index ix_mgtst__b_eu8csu; +create index ix_mgtst_mt_3ug4ok on migtest_mtm_c_migtest_mtm_m (migtest_mtm_c_id); +alter table migtest_mtm_c_migtest_mtm_m add constraint fk_mgtst_mt_93awga foreign key (migtest_mtm_c_id) references migtest_mtm_c (id) on delete restrict; + +create index ix_mgtst_mt_3ug4ou on migtest_mtm_c_migtest_mtm_m (migtest_mtm_m_id); +alter table migtest_mtm_c_migtest_mtm_m add constraint fk_mgtst_mt_93awgk foreign key (migtest_mtm_m_id) references migtest_mtm_m (id) on delete restrict; + +create index ix_mgtst_mt_b7nbcu on migtest_mtm_m_migtest_mtm_c (migtest_mtm_m_id); +alter table migtest_mtm_m_migtest_mtm_c add constraint fk_mgtst_mt_ggi34k foreign key (migtest_mtm_m_id) references migtest_mtm_m (id) on delete restrict; + +create index ix_mgtst_mt_b7nbck on migtest_mtm_m_migtest_mtm_c (migtest_mtm_c_id); +alter table migtest_mtm_m_migtest_mtm_c add constraint fk_mgtst_mt_ggi34a foreign key (migtest_mtm_c_id) references migtest_mtm_c (id) on delete restrict; + +create index ix_mgtst_mt_do9ma3 on migtest_mtm_m_phone_numbers (migtest_mtm_m_id); +alter table migtest_mtm_m_phone_numbers add constraint fk_mgtst_mt_s8neid foreign key (migtest_mtm_m_id) references migtest_mtm_m (id) on delete restrict; + +create index ix_mgtst_ck_x45o21 on migtest_ckey_parent (assoc_id); +alter table migtest_ckey_parent add constraint fk_mgtst_ck_da00mr foreign key (assoc_id) references migtest_ckey_assoc (id) on delete restrict; + +alter table migtest_oto_child add constraint fk_mgtst_t__csyl38 foreign key (master_id) references migtest_oto_master (id) on delete restrict; + diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/db2legacy/1.2__dropsFor_1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/db2legacy/1.2__dropsFor_1.1.sql new file mode 100644 index 000000000..f7ff8b135 --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2legacy/1.2__dropsFor_1.1.sql @@ -0,0 +1,14 @@ +-- Migrationscripts for ebean unittest +-- apply changes +alter table migtest_e_basic drop column old_boolean; + +alter table migtest_e_basic drop column old_boolean2; + +alter table migtest_e_basic drop column eref_id; + +alter table migtest_e_history2 drop column obsolete_string1; + +alter table migtest_e_history2 drop column obsolete_string2; + +drop table migtest_e_ref; +drop sequence migtest_e_ref_seq; diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/db2legacy/1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/db2legacy/1.3.sql new file mode 100644 index 000000000..ab2148795 --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2legacy/1.3.sql @@ -0,0 +1,67 @@ +-- Migrationscripts for ebean unittest +-- 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_mgtst__rf_nm unique (name); + +alter table migtest_ckey_detail drop constraint fk_mgtst_ck_e1qkb5; +alter table migtest_fk_cascade drop constraint fk_mgtst_fk_65kf6l; +alter table migtest_fk_cascade add constraint fk_mgtst_fk_65kf6l foreign key (one_id) references migtest_fk_cascade_one (id) on delete cascade; +alter table migtest_fk_none drop constraint fk_mgtst_fk_nn_n_d; +alter table migtest_fk_none_via_join drop constraint fk_mgtst_fk_9tknzj; +alter table migtest_fk_set_null drop constraint fk_mgtst_fk_wicx8x; +alter table migtest_fk_set_null add constraint fk_mgtst_fk_wicx8x foreign key (one_id) references migtest_fk_one (id) on delete set null; +alter table migtest_e_basic drop constraint ck_mgtst__bsc_stts; +alter table migtest_e_basic alter column status drop default; +alter table migtest_e_basic alter column status drop not null; +alter table migtest_e_basic add constraint ck_mgtst__bsc_stts check ( status in ('N','A','I')); + +update migtest_e_basic set status2 = 'N' where status2 is null; +alter table migtest_e_basic drop constraint ck_mgtst__b_z543fg; +alter table migtest_e_basic alter column status2 set data type varchar(1); +alter table migtest_e_basic alter column status2 set default 'N'; +alter table migtest_e_basic alter column status2 set not null; +alter table migtest_e_basic add constraint ck_mgtst__b_z543fg check ( status2 in ('N','A','I')); +alter table migtest_e_basic drop constraint uq_mgtst__b_vs45xo; + +update migtest_e_basic set user_id = 23 where user_id is null; +alter table migtest_e_basic drop constraint fk_mgtst__bsc_sr_d; +alter table migtest_e_basic alter column user_id set default 23; +alter table migtest_e_basic alter column user_id set not null; +alter table migtest_e_basic add column old_boolean boolean default false not null; +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_mgtst__b_ucfcne; +alter table migtest_e_basic drop constraint uq_mgtst__bsc_nm; +alter table migtest_e_basic drop constraint uq_mgtst__b_4ayc00; +alter table migtest_e_basic drop constraint uq_mgtst__b_4ayc01; +create unique index uq_migtest_e_basic_indextest2 on migtest_e_basic(indextest2) exclude null keys; +create unique index uq_migtest_e_basic_indextest6 on migtest_e_basic(indextest6) exclude null keys; +alter table migtest_e_enum drop constraint ck_mgtst__n_773sok; +alter table migtest_e_enum add constraint ck_mgtst__n_773sok check ( test_status in ('N','A','I')); +comment on column migtest_e_history.test_string is ''; +comment on table migtest_e_history is ''; +alter table migtest_e_history2 alter column test_string drop default; +alter table migtest_e_history2 alter column test_string drop not null; +alter table migtest_e_history2 add column obsolete_string1 varchar(255); +alter table migtest_e_history2 add column obsolete_string2 varchar(255); + +alter table migtest_e_history4 alter column test_number set data type integer; +alter table migtest_e_history6 alter column test_number1 drop default; +alter table migtest_e_history6 alter column test_number1 drop not null; + +-- NOTE: table has @History - special migration may be necessary +update migtest_e_history6 set test_number2 = 7 where test_number2 is null; +alter table migtest_e_history6 alter column test_number2 set default 7; +alter table migtest_e_history6 alter column test_number2 set not null; +create index ix_mgtst__b_eu8csq on migtest_e_basic (indextest1); +create index ix_mgtst__b_eu8csu on migtest_e_basic (indextest5); +drop index ix_mgtst__b_eu8css; +drop index ix_mgtst__b_eu8csv; +create index ix_mgtst__bsc_rf_d on migtest_e_basic (eref_id); +alter table migtest_e_basic add constraint fk_mgtst__bsc_rf_d foreign key (eref_id) references migtest_e_ref (id) on delete restrict; + diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/db2legacy/1.4__dropsFor_1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/db2legacy/1.4__dropsFor_1.3.sql new file mode 100644 index 000000000..bd6f31169 --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2legacy/1.4__dropsFor_1.3.sql @@ -0,0 +1,35 @@ +-- 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; + +alter table migtest_e_basic drop column new_boolean_field2; + +alter table migtest_e_basic drop column progress; + +alter table migtest_e_basic drop column new_integer; + +alter table migtest_e_history2 drop column test_string2; + +alter table migtest_e_history2 drop column test_string3; + +alter table migtest_e_history2 drop column new_column; + +alter table migtest_e_history5 drop column test_boolean; + +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; +drop table migtest_mtm_m_phone_numbers; diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/db2legacy/R__order_views.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/db2legacy/R__order_views.sql new file mode 100644 index 000000000..ccf30a2c6 --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2legacy/R__order_views.sql @@ -0,0 +1,7 @@ + + create or replace view order_agg_vw as + select d.order_id, sum(d.order_qty * d.unit_price) as order_total, + sum(d.ship_qty * d.unit_price) as ship_total + from o_order_detail d + group by d.order_id + \ No newline at end of file diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/db2legacy/idx_db2.migrations b/ebean-test/src/test/resources/migrationtest/dbmigration/db2legacy/idx_db2.migrations new file mode 100644 index 000000000..dfc85e553 --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2legacy/idx_db2.migrations @@ -0,0 +1,7 @@ +-1494430232, 1.0__initial.sql +-1126979163, 1.1.sql +578073685, 1.2__dropsFor_1.1.sql +-183167227, 1.3.sql +441227910, 1.4__dropsFor_1.3.sql +561281075, R__order_views.sql + diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/db2/1.0__initial.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/db2luw/1.0__initial.sql similarity index 100% rename from ebean-test/src/test/resources/migrationtest/dbmigration/db2/1.0__initial.sql rename to ebean-test/src/test/resources/migrationtest/dbmigration/db2luw/1.0__initial.sql diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/db2/1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/db2luw/1.1.sql similarity index 100% rename from ebean-test/src/test/resources/migrationtest/dbmigration/db2/1.1.sql rename to ebean-test/src/test/resources/migrationtest/dbmigration/db2luw/1.1.sql diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/db2luw/1.2__dropsFor_1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/db2luw/1.2__dropsFor_1.1.sql new file mode 100644 index 000000000..f7ff8b135 --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2luw/1.2__dropsFor_1.1.sql @@ -0,0 +1,14 @@ +-- Migrationscripts for ebean unittest +-- apply changes +alter table migtest_e_basic drop column old_boolean; + +alter table migtest_e_basic drop column old_boolean2; + +alter table migtest_e_basic drop column eref_id; + +alter table migtest_e_history2 drop column obsolete_string1; + +alter table migtest_e_history2 drop column obsolete_string2; + +drop table migtest_e_ref; +drop sequence migtest_e_ref_seq; diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/db2/1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/db2luw/1.3.sql similarity index 100% rename from ebean-test/src/test/resources/migrationtest/dbmigration/db2/1.3.sql rename to ebean-test/src/test/resources/migrationtest/dbmigration/db2luw/1.3.sql diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/db2luw/1.4__dropsFor_1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/db2luw/1.4__dropsFor_1.3.sql new file mode 100644 index 000000000..bd6f31169 --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2luw/1.4__dropsFor_1.3.sql @@ -0,0 +1,35 @@ +-- 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; + +alter table migtest_e_basic drop column new_boolean_field2; + +alter table migtest_e_basic drop column progress; + +alter table migtest_e_basic drop column new_integer; + +alter table migtest_e_history2 drop column test_string2; + +alter table migtest_e_history2 drop column test_string3; + +alter table migtest_e_history2 drop column new_column; + +alter table migtest_e_history5 drop column test_boolean; + +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; +drop table migtest_mtm_m_phone_numbers; diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/db2luw/R__order_views.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/db2luw/R__order_views.sql new file mode 100644 index 000000000..ccf30a2c6 --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2luw/R__order_views.sql @@ -0,0 +1,7 @@ + + create or replace view order_agg_vw as + select d.order_id, sum(d.order_qty * d.unit_price) as order_total, + sum(d.ship_qty * d.unit_price) as ship_total + from o_order_detail d + group by d.order_id + \ No newline at end of file diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/db2/idx_db2.migrations b/ebean-test/src/test/resources/migrationtest/dbmigration/db2luw/idx_db2.migrations similarity index 100% rename from ebean-test/src/test/resources/migrationtest/dbmigration/db2/idx_db2.migrations rename to ebean-test/src/test/resources/migrationtest/dbmigration/db2luw/idx_db2.migrations diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/db2zos/1.0__initial.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/db2zos/1.0__initial.sql new file mode 100644 index 000000000..5d4113a24 --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2zos/1.0__initial.sql @@ -0,0 +1,174 @@ +-- 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, + constraint pk_migtest_fk_cascade primary key (id) +); + +create table migtest_fk_cascade_one ( + id bigint generated by default as identity not null, + constraint pk_migtest_fk_cascade_one primary key (id) +); + +create table migtest_fk_none ( + id bigint generated by default as identity not null, + one_id bigint, + constraint pk_migtest_fk_none primary key (id) +); + +create table migtest_fk_none_via_join ( + id bigint generated by default as identity not null, + one_id bigint, + constraint pk_migtest_fk_none_via_join primary key (id) +); + +create table migtest_fk_one ( + id bigint generated by default as identity not null, + constraint pk_migtest_fk_one primary key (id) +); + +create table migtest_fk_set_null ( + id bigint generated by default as identity not null, + one_id bigint, + constraint pk_migtest_fk_set_null primary key (id) +); + +create table migtest_e_basic ( + id integer generated by default as identity not null, + status varchar(1), + status2 varchar(1) default 'N' not null, + name varchar(127), + description varchar(127), + some_date timestamp, + old_boolean boolean default false not null, + old_boolean2 boolean, + eref_id integer, + indextest1 varchar(127), + indextest2 varchar(127), + indextest3 varchar(127), + indextest4 varchar(127), + indextest5 varchar(127), + indextest6 varchar(127), + user_id integer not null, + constraint ck_migtest_e_basic_status check ( status in ('N','A','I')), + constraint ck_migtest_e_basic_status2 check ( status2 in ('N','A','I')), + constraint pk_migtest_e_basic primary key (id) +); +create unique index uq_migtest_e_basic_indextest2 on migtest_e_basic(indextest2) exclude null keys; +create unique index uq_migtest_e_basic_indextest6 on migtest_e_basic(indextest6) exclude null keys; + +create table migtest_e_enum ( + id integer generated by default as identity not null, + test_status varchar(1), + constraint ck_migtest_e_enum_test_status check ( test_status in ('N','A','I')), + constraint pk_migtest_e_enum primary key (id) +); + +create table migtest_e_history ( + id integer generated by default as identity not null, + test_string varchar(255), + constraint pk_migtest_e_history primary key (id) +); + +create table migtest_e_history2 ( + id integer generated by default as identity not null, + test_string varchar(255), + obsolete_string1 varchar(255), + obsolete_string2 varchar(255), + constraint pk_migtest_e_history2 primary key (id) +); + +create table migtest_e_history3 ( + id integer generated by default as identity not null, + test_string varchar(255), + constraint pk_migtest_e_history3 primary key (id) +); + +create table migtest_e_history4 ( + id integer generated by default as identity not null, + test_number integer, + constraint pk_migtest_e_history4 primary key (id) +); + +create table migtest_e_history5 ( + id integer generated by default as identity not null, + test_number integer, + constraint pk_migtest_e_history5 primary key (id) +); + +create table migtest_e_history6 ( + id integer generated by default as identity not null, + test_number1 integer, + test_number2 integer not null, + constraint pk_migtest_e_history6 primary key (id) +); + +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, + test_string varchar(255), + 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); +create index ix_migtest_fk_cascade_one_id on 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; + +create index ix_migtest_fk_set_null_one_id on migtest_fk_set_null (one_id); +alter table migtest_fk_set_null add constraint fk_migtest_fk_set_null_one_id foreign key (one_id) references migtest_fk_one (id) on delete set null; + +create index ix_migtest_e_basic_eref_id on migtest_e_basic (eref_id); +alter table migtest_e_basic add constraint fk_migtest_e_basic_eref_id foreign key (eref_id) references migtest_e_ref (id) on delete restrict; + diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/db2zos/1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/db2zos/1.1.sql new file mode 100644 index 000000000..c56948302 --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2zos/1.1.sql @@ -0,0 +1,119 @@ +-- Migrationscripts for ebean unittest +-- apply changes +create table migtest_e_user ( + id integer generated by default as identity not null, + 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) +); + +create table migtest_mtm_m_phone_numbers ( + migtest_mtm_m_id bigint not null, + value varchar(255) not null +); + +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; +alter table migtest_fk_none_via_join add constraint fk_migtest_fk_none_via_join_one_id foreign key (one_id) references migtest_fk_one (id) on delete restrict; +alter table migtest_fk_set_null drop constraint fk_migtest_fk_set_null_one_id; +alter table migtest_fk_set_null add constraint fk_migtest_fk_set_null_one_id foreign key (one_id) references migtest_fk_one (id) on delete restrict; + +update migtest_e_basic set status = 'A' where status is null; +alter table migtest_e_basic drop constraint ck_migtest_e_basic_status; +alter table migtest_e_basic alter column status set default 'A'; +alter table migtest_e_basic alter column status set not null; +alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I','?')); +alter table migtest_e_basic drop constraint ck_migtest_e_basic_status2; +alter table migtest_e_basic alter column status2 set data type varchar(127); +alter table migtest_e_basic alter column status2 drop default; +alter table migtest_e_basic alter column status2 drop not null; + +-- db2 does not support parial null indices :( - so we have to clean; +update migtest_e_basic set status = 'N' where id = 1; +create unique index uq_migtest_e_basic_description on migtest_e_basic(description) exclude null keys; + +insert into migtest_e_user (id) select distinct user_id from migtest_e_basic; +alter table migtest_e_basic add constraint fk_migtest_e_basic_user_id foreign key (user_id) references migtest_e_user (id) on delete restrict; +alter table migtest_e_basic alter column user_id drop not null; +alter table migtest_e_basic add column new_string_field varchar(255) default 'foo''bar' not null; +alter table migtest_e_basic add column new_boolean_field boolean default true not null; +update migtest_e_basic set new_boolean_field = old_boolean; + +alter table migtest_e_basic add column new_boolean_field2 boolean default true not null; +alter table migtest_e_basic add column progress integer default 0 not null; +alter table migtest_e_basic add constraint ck_migtest_e_basic_progress check ( progress in (0,1,2)); +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; +create unique index uq_migtest_e_basic_status_indextest1 on migtest_e_basic(status,indextest1) exclude null keys; +create unique index uq_migtest_e_basic_name on migtest_e_basic(name) exclude null keys; +create unique index uq_migtest_e_basic_indextest4 on migtest_e_basic(indextest4) exclude null keys; +create unique index uq_migtest_e_basic_indextest5 on migtest_e_basic(indextest5) exclude null keys; +alter table migtest_e_enum drop constraint ck_migtest_e_enum_test_status; +comment on column migtest_e_history.test_string is 'Column altered to long now'; +alter table migtest_e_history alter column test_string set data type bigint; +comment on table migtest_e_history is 'We have history now'; + +-- NOTE: table has @History - special migration may be necessary +update migtest_e_history2 set test_string = 'unknown' where test_string is null; +alter table migtest_e_history2 alter column test_string set default 'unknown'; +alter table migtest_e_history2 alter column test_string set not null; +alter table migtest_e_history2 add column test_string2 varchar(255); +alter table migtest_e_history2 add column test_string3 varchar(255) default 'unknown' not null; +alter table migtest_e_history2 add column new_column varchar(20); + +alter table migtest_e_history4 alter column test_number set data type bigint; +alter table migtest_e_history5 add column test_boolean boolean default false not null; + + +-- NOTE: table has @History - special migration may be necessary +update migtest_e_history6 set test_number1 = 42 where test_number1 is null; +alter table migtest_e_history6 alter column test_number1 set default 42; +alter table migtest_e_history6 alter column test_number1 set not null; +alter table migtest_e_history6 alter column test_number2 drop not null; +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; +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_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_m on migtest_mtm_c_migtest_mtm_m (migtest_mtm_m_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_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_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_c on migtest_mtm_m_migtest_mtm_c (migtest_mtm_c_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_phone_numbers_migtest_mtm_m_id on migtest_mtm_m_phone_numbers (migtest_mtm_m_id); +alter table migtest_mtm_m_phone_numbers add constraint fk_migtest_mtm_m_phone_numbers_migtest_mtm_m_id foreign key (migtest_mtm_m_id) references migtest_mtm_m (id) on delete restrict; + +create index ix_migtest_ckey_parent_assoc_id on migtest_ckey_parent (assoc_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; + +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/ebean-test/src/test/resources/migrationtest/dbmigration/db2zos/1.2__dropsFor_1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/db2zos/1.2__dropsFor_1.1.sql new file mode 100644 index 000000000..f7ff8b135 --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2zos/1.2__dropsFor_1.1.sql @@ -0,0 +1,14 @@ +-- Migrationscripts for ebean unittest +-- apply changes +alter table migtest_e_basic drop column old_boolean; + +alter table migtest_e_basic drop column old_boolean2; + +alter table migtest_e_basic drop column eref_id; + +alter table migtest_e_history2 drop column obsolete_string1; + +alter table migtest_e_history2 drop column obsolete_string2; + +drop table migtest_e_ref; +drop sequence migtest_e_ref_seq; diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/db2zos/1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/db2zos/1.3.sql new file mode 100644 index 000000000..e6dd4b34a --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2zos/1.3.sql @@ -0,0 +1,67 @@ +-- Migrationscripts for ebean unittest +-- 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; +alter table migtest_fk_none_via_join drop constraint fk_migtest_fk_none_via_join_one_id; +alter table migtest_fk_set_null drop constraint fk_migtest_fk_set_null_one_id; +alter table migtest_fk_set_null add constraint fk_migtest_fk_set_null_one_id foreign key (one_id) references migtest_fk_one (id) on delete set null; +alter table migtest_e_basic drop constraint ck_migtest_e_basic_status; +alter table migtest_e_basic alter column status drop default; +alter table migtest_e_basic alter column status drop not null; +alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I')); + +update migtest_e_basic set status2 = 'N' where status2 is null; +alter table migtest_e_basic drop constraint ck_migtest_e_basic_status2; +alter table migtest_e_basic alter column status2 set data type varchar(1); +alter table migtest_e_basic alter column status2 set default 'N'; +alter table migtest_e_basic alter column status2 set not null; +alter table migtest_e_basic add constraint ck_migtest_e_basic_status2 check ( status2 in ('N','A','I')); +alter table migtest_e_basic drop constraint uq_migtest_e_basic_description; + +update migtest_e_basic set user_id = 23 where user_id is null; +alter table migtest_e_basic drop constraint fk_migtest_e_basic_user_id; +alter table migtest_e_basic alter column user_id set default 23; +alter table migtest_e_basic alter column user_id set not null; +alter table migtest_e_basic add column old_boolean boolean default false not null; +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; +create unique index uq_migtest_e_basic_indextest2 on migtest_e_basic(indextest2) exclude null keys; +create unique index uq_migtest_e_basic_indextest6 on migtest_e_basic(indextest6) exclude null keys; +alter table migtest_e_enum drop constraint ck_migtest_e_enum_test_status; +alter table migtest_e_enum add constraint ck_migtest_e_enum_test_status check ( test_status in ('N','A','I')); +comment on column migtest_e_history.test_string is ''; +comment on table migtest_e_history is ''; +alter table migtest_e_history2 alter column test_string drop default; +alter table migtest_e_history2 alter column test_string drop not null; +alter table migtest_e_history2 add column obsolete_string1 varchar(255); +alter table migtest_e_history2 add column obsolete_string2 varchar(255); + +alter table migtest_e_history4 alter column test_number set data type integer; +alter table migtest_e_history6 alter column test_number1 drop default; +alter table migtest_e_history6 alter column test_number1 drop not null; + +-- NOTE: table has @History - special migration may be necessary +update migtest_e_history6 set test_number2 = 7 where test_number2 is null; +alter table migtest_e_history6 alter column test_number2 set default 7; +alter table migtest_e_history6 alter column test_number2 set not null; +create index ix_migtest_e_basic_indextest1 on migtest_e_basic (indextest1); +create index ix_migtest_e_basic_indextest5 on migtest_e_basic (indextest5); +drop index ix_migtest_e_basic_indextest3; +drop index ix_migtest_e_basic_indextest6; +create index ix_migtest_e_basic_eref_id on migtest_e_basic (eref_id); +alter table migtest_e_basic add constraint fk_migtest_e_basic_eref_id foreign key (eref_id) references migtest_e_ref (id) on delete restrict; + diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/db2zos/1.4__dropsFor_1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/db2zos/1.4__dropsFor_1.3.sql new file mode 100644 index 000000000..bd6f31169 --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2zos/1.4__dropsFor_1.3.sql @@ -0,0 +1,35 @@ +-- 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; + +alter table migtest_e_basic drop column new_boolean_field2; + +alter table migtest_e_basic drop column progress; + +alter table migtest_e_basic drop column new_integer; + +alter table migtest_e_history2 drop column test_string2; + +alter table migtest_e_history2 drop column test_string3; + +alter table migtest_e_history2 drop column new_column; + +alter table migtest_e_history5 drop column test_boolean; + +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; +drop table migtest_mtm_m_phone_numbers; diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/db2zos/R__order_views.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/db2zos/R__order_views.sql new file mode 100644 index 000000000..ccf30a2c6 --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2zos/R__order_views.sql @@ -0,0 +1,7 @@ + + create or replace view order_agg_vw as + select d.order_id, sum(d.order_qty * d.unit_price) as order_total, + sum(d.ship_qty * d.unit_price) as ship_total + from o_order_detail d + group by d.order_id + \ No newline at end of file diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/db2zos/idx_db2.migrations b/ebean-test/src/test/resources/migrationtest/dbmigration/db2zos/idx_db2.migrations new file mode 100644 index 000000000..8622a8c4c --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2zos/idx_db2.migrations @@ -0,0 +1,7 @@ +1580812656, 1.0__initial.sql +1615151513, 1.1.sql +578073685, 1.2__dropsFor_1.1.sql +-1206650320, 1.3.sql +441227910, 1.4__dropsFor_1.3.sql +561281075, R__order_views.sql + diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/mysql/1.0__initial.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/mysql/1.0__initial.sql index 0a76ab174..ce464c473 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/mysql/1.0__initial.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/mysql/1.0__initial.sql @@ -60,7 +60,7 @@ create table migtest_e_basic ( status2 varchar(1) default 'N' not null, name varchar(127), description varchar(127), - some_date datetime, + some_date datetime(6), old_boolean tinyint(1) default 0 not null, old_boolean2 tinyint(1), eref_id integer, diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/mysql/idx_mysql.migrations b/ebean-test/src/test/resources/migrationtest/dbmigration/mysql/idx_mysql.migrations index 4ed25ce12..4bb99f9cb 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/mysql/idx_mysql.migrations +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/mysql/idx_mysql.migrations @@ -1,5 +1,5 @@ 1835064798, I__create_procs.sql --1087663151, 1.0__initial.sql +1075178692, 1.0__initial.sql -1627573867, 1.1.sql 1922991807, 1.2__dropsFor_1.1.sql -380371830, 1.3.sql diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/mysql55/1.0__initial.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/mysql55/1.0__initial.sql new file mode 100644 index 000000000..0a76ab174 --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/mysql55/1.0__initial.sql @@ -0,0 +1,269 @@ +-- 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 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, + constraint pk_migtest_fk_cascade primary key (id) +); + +create table migtest_fk_cascade_one ( + id bigint auto_increment not null, + constraint pk_migtest_fk_cascade_one primary key (id) +); + +create table migtest_fk_none ( + id bigint auto_increment not null, + one_id bigint, + constraint pk_migtest_fk_none primary key (id) +); + +create table migtest_fk_none_via_join ( + id bigint auto_increment not null, + one_id bigint, + constraint pk_migtest_fk_none_via_join primary key (id) +); + +create table migtest_fk_one ( + id bigint auto_increment not null, + constraint pk_migtest_fk_one primary key (id) +); + +create table migtest_fk_set_null ( + id bigint auto_increment not null, + one_id bigint, + constraint pk_migtest_fk_set_null primary key (id) +); + +create table migtest_e_basic ( + id integer auto_increment not null, + status varchar(1), + status2 varchar(1) default 'N' not null, + name varchar(127), + description varchar(127), + some_date datetime, + old_boolean tinyint(1) default 0 not null, + old_boolean2 tinyint(1), + eref_id integer, + indextest1 varchar(127), + indextest2 varchar(127), + indextest3 varchar(127), + indextest4 varchar(127), + indextest5 varchar(127), + indextest6 varchar(127), + user_id integer not null, + constraint uq_migtest_e_basic_indextest2 unique (indextest2), + constraint uq_migtest_e_basic_indextest6 unique (indextest6), + constraint pk_migtest_e_basic primary key (id) +); + +create table migtest_e_enum ( + id integer auto_increment not null, + test_status varchar(1), + constraint pk_migtest_e_enum primary key (id) +); + +create table migtest_e_history ( + id integer auto_increment not null, + test_string varchar(255), + constraint pk_migtest_e_history primary key (id) +); + +create table migtest_e_history2 ( + id integer auto_increment not null, + test_string varchar(255), + obsolete_string1 varchar(255), + obsolete_string2 varchar(255), + constraint pk_migtest_e_history2 primary key (id) +); + +create table migtest_e_history3 ( + id integer auto_increment not null, + test_string varchar(255), + constraint pk_migtest_e_history3 primary key (id) +); + +create table migtest_e_history4 ( + id integer auto_increment not null, + test_number integer, + constraint pk_migtest_e_history4 primary key (id) +); + +create table migtest_e_history5 ( + id integer auto_increment not null, + test_number integer, + constraint pk_migtest_e_history5 primary key (id) +); + +create table migtest_e_history6 ( + id integer auto_increment not null, + test_number1 integer, + test_number2 integer not null, + constraint pk_migtest_e_history6 primary key (id) +); + +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) +); + +create table migtest_e_softdelete ( + id integer auto_increment not null, + test_string varchar(255), + 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); +create index ix_migtest_fk_cascade_one_id on 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 restrict; + +create index ix_migtest_fk_set_null_one_id on migtest_fk_set_null (one_id); +alter table migtest_fk_set_null add constraint fk_migtest_fk_set_null_one_id foreign key (one_id) references migtest_fk_one (id) on delete set null on update restrict; + +create index ix_migtest_e_basic_eref_id on migtest_e_basic (eref_id); +alter table migtest_e_basic add constraint fk_migtest_e_basic_eref_id foreign key (eref_id) references migtest_e_ref (id) on delete restrict on update restrict; + +alter table migtest_e_history2 add column sys_period_start datetime(6) default now(6); +alter table migtest_e_history2 add column sys_period_end datetime(6); +create table migtest_e_history2_history( + id integer, + test_string varchar(255), + obsolete_string1 varchar(255), + obsolete_string2 varchar(255), + sys_period_start datetime(6), + sys_period_end datetime(6) +); +create view migtest_e_history2_with_history as select * from migtest_e_history2 union all select * from migtest_e_history2_history; + +alter table migtest_e_history3 add column sys_period_start datetime(6) default now(6); +alter table migtest_e_history3 add column sys_period_end datetime(6); +create table migtest_e_history3_history( + id integer, + test_string varchar(255), + sys_period_start datetime(6), + sys_period_end datetime(6) +); +create view migtest_e_history3_with_history as select * from migtest_e_history3 union all select * from migtest_e_history3_history; + +alter table migtest_e_history4 add column sys_period_start datetime(6) default now(6); +alter table migtest_e_history4 add column sys_period_end datetime(6); +create table migtest_e_history4_history( + id integer, + test_number integer, + sys_period_start datetime(6), + sys_period_end datetime(6) +); +create view migtest_e_history4_with_history as select * from migtest_e_history4 union all select * from migtest_e_history4_history; + +alter table migtest_e_history5 add column sys_period_start datetime(6) default now(6); +alter table migtest_e_history5 add column sys_period_end datetime(6); +create table migtest_e_history5_history( + id integer, + test_number integer, + sys_period_start datetime(6), + sys_period_end datetime(6) +); +create view migtest_e_history5_with_history as select * from migtest_e_history5 union all select * from migtest_e_history5_history; + +alter table migtest_e_history6 add column sys_period_start datetime(6) default now(6); +alter table migtest_e_history6 add column sys_period_end datetime(6); +create table migtest_e_history6_history( + id integer, + test_number1 integer, + test_number2 integer, + sys_period_start datetime(6), + sys_period_end datetime(6) +); +create view migtest_e_history6_with_history as select * from migtest_e_history6 union all select * from migtest_e_history6_history; + +delimiter $$ +create trigger migtest_e_history2_history_upd before update on migtest_e_history2 for each row begin + insert into migtest_e_history2_history (sys_period_start,sys_period_end,id, test_string, obsolete_string2) values (OLD.sys_period_start, now(6),OLD.id, OLD.test_string, OLD.obsolete_string2); + set NEW.sys_period_start = now(6); +end$$ +delimiter $$ +create trigger migtest_e_history2_history_del before delete on migtest_e_history2 for each row begin + insert into migtest_e_history2_history (sys_period_start,sys_period_end,id, test_string, obsolete_string2) values (OLD.sys_period_start, now(6),OLD.id, OLD.test_string, OLD.obsolete_string2); +end$$ +delimiter $$ +create trigger migtest_e_history3_history_upd before update on migtest_e_history3 for each row begin + insert into migtest_e_history3_history (sys_period_start,sys_period_end,id, test_string) values (OLD.sys_period_start, now(6),OLD.id, OLD.test_string); + set NEW.sys_period_start = now(6); +end$$ +delimiter $$ +create trigger migtest_e_history3_history_del before delete on migtest_e_history3 for each row begin + insert into migtest_e_history3_history (sys_period_start,sys_period_end,id, test_string) values (OLD.sys_period_start, now(6),OLD.id, OLD.test_string); +end$$ +delimiter $$ +create trigger migtest_e_history4_history_upd before update on migtest_e_history4 for each row begin + insert into migtest_e_history4_history (sys_period_start,sys_period_end,id, test_number) values (OLD.sys_period_start, now(6),OLD.id, OLD.test_number); + set NEW.sys_period_start = now(6); +end$$ +delimiter $$ +create trigger migtest_e_history4_history_del before delete on migtest_e_history4 for each row begin + insert into migtest_e_history4_history (sys_period_start,sys_period_end,id, test_number) values (OLD.sys_period_start, now(6),OLD.id, OLD.test_number); +end$$ +delimiter $$ +create trigger migtest_e_history5_history_upd before update on migtest_e_history5 for each row begin + insert into migtest_e_history5_history (sys_period_start,sys_period_end,id, test_number) values (OLD.sys_period_start, now(6),OLD.id, OLD.test_number); + set NEW.sys_period_start = now(6); +end$$ +delimiter $$ +create trigger migtest_e_history5_history_del before delete on migtest_e_history5 for each row begin + insert into migtest_e_history5_history (sys_period_start,sys_period_end,id, test_number) values (OLD.sys_period_start, now(6),OLD.id, OLD.test_number); +end$$ +delimiter $$ +create trigger migtest_e_history6_history_upd before update on migtest_e_history6 for each row begin + insert into migtest_e_history6_history (sys_period_start,sys_period_end,id, test_number1, test_number2) values (OLD.sys_period_start, now(6),OLD.id, OLD.test_number1, OLD.test_number2); + set NEW.sys_period_start = now(6); +end$$ +delimiter $$ +create trigger migtest_e_history6_history_del before delete on migtest_e_history6 for each row begin + insert into migtest_e_history6_history (sys_period_start,sys_period_end,id, test_number1, test_number2) values (OLD.sys_period_start, now(6),OLD.id, OLD.test_number1, OLD.test_number2); +end$$ diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/mysql55/1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/mysql55/1.1.sql new file mode 100644 index 000000000..16d54565f --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/mysql55/1.1.sql @@ -0,0 +1,199 @@ +-- Migrationscripts for ebean unittest +-- drop dependencies +drop view if exists migtest_e_history2_with_history; +drop view if exists migtest_e_history3_with_history; +drop view if exists migtest_e_history4_with_history; +drop view if exists migtest_e_history5_with_history; + +-- apply changes +create table migtest_e_user ( + id integer auto_increment not null, + 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) +); + +create table migtest_mtm_m_phone_numbers ( + migtest_mtm_m_id bigint not null, + value varchar(255) not null +); + +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 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; +alter table migtest_fk_none_via_join add constraint fk_migtest_fk_none_via_join_one_id foreign key (one_id) references migtest_fk_one (id) on delete restrict on update restrict; +alter table migtest_fk_set_null drop foreign key fk_migtest_fk_set_null_one_id; +alter table migtest_fk_set_null add constraint fk_migtest_fk_set_null_one_id foreign key (one_id) references migtest_fk_one (id) on delete restrict on update restrict; + +update migtest_e_basic set status = 'A' where status is null; +alter table migtest_e_basic alter status set default 'A'; +alter table migtest_e_basic modify status varchar(1) not null; +alter table migtest_e_basic alter status2 drop default; +alter table migtest_e_basic modify status2 varchar(127); + +-- rename all collisions; +alter table migtest_e_basic add constraint uq_migtest_e_basic_description unique (description); + +insert into migtest_e_user (id) select distinct user_id from migtest_e_basic; +alter table migtest_e_basic add constraint fk_migtest_e_basic_user_id foreign key (user_id) references migtest_e_user (id) on delete restrict on update restrict; +alter table migtest_e_basic modify user_id integer; +alter table migtest_e_basic add column new_string_field varchar(255) default 'foo''bar' not null; +alter table migtest_e_basic add column new_boolean_field tinyint(1) default 1 not null; +update migtest_e_basic set new_boolean_field = old_boolean; + +alter table migtest_e_basic add column new_boolean_field2 tinyint(1) default 1 not null; +alter table migtest_e_basic add column progress integer default 0 not null; +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); +alter table migtest_e_history modify test_string bigint; +alter table migtest_e_history comment = 'We have history now'; + +-- NOTE: table has @History - special migration may be necessary +update migtest_e_history2 set test_string = 'unknown' where test_string is null; +alter table migtest_e_history2 alter test_string set default 'unknown'; +alter table migtest_e_history2 modify test_string varchar(255) not null; +alter table migtest_e_history2 add column test_string2 varchar(255); +alter table migtest_e_history2 add column test_string3 varchar(255) default 'unknown' not null; +alter table migtest_e_history2 add column new_column varchar(20); +alter table migtest_e_history2_history add column test_string2 varchar(255); +alter table migtest_e_history2_history add column test_string3 varchar(255) default 'unknown'; +alter table migtest_e_history2_history add column new_column varchar(20); + +alter table migtest_e_history4 modify test_number bigint; +alter table migtest_e_history4_history modify test_number bigint; +alter table migtest_e_history5 add column test_boolean tinyint(1) default 0 not null; +alter table migtest_e_history5_history add column test_boolean tinyint(1) default 0; + + +-- NOTE: table has @History - special migration may be necessary +update migtest_e_history6 set test_number1 = 42 where test_number1 is null; +alter table migtest_e_history6 alter test_number1 set default 42; +alter table migtest_e_history6 modify test_number1 integer not null; +alter table migtest_e_history6 modify test_number2 integer; +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; +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_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_m on migtest_mtm_c_migtest_mtm_m (migtest_mtm_m_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_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_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_c on migtest_mtm_m_migtest_mtm_c (migtest_mtm_c_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_phone_numbers_migtest_mtm_m_id on migtest_mtm_m_phone_numbers (migtest_mtm_m_id); +alter table migtest_mtm_m_phone_numbers add constraint fk_migtest_mtm_m_phone_numbers_migtest_mtm_m_id foreign key (migtest_mtm_m_id) references migtest_mtm_m (id) on delete restrict on update restrict; + +create index ix_migtest_ckey_parent_assoc_id on migtest_ckey_parent (assoc_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; + +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( + id integer, + test_string bigint, + sys_period_start datetime(6), + sys_period_end datetime(6) +); +create view migtest_e_history_with_history as select * from migtest_e_history union all select * from migtest_e_history_history; + +create view migtest_e_history2_with_history as select * from migtest_e_history2 union all select * from migtest_e_history2_history; + +create view migtest_e_history3_with_history as select * from migtest_e_history3 union all select * from migtest_e_history3_history; + +create view migtest_e_history4_with_history as select * from migtest_e_history4 union all select * from migtest_e_history4_history; + +create view migtest_e_history5_with_history as select * from migtest_e_history5 union all select * from migtest_e_history5_history; + +delimiter $$ +create trigger migtest_e_history_history_upd before update on migtest_e_history for each row begin + insert into migtest_e_history_history (sys_period_start,sys_period_end,id, test_string) values (OLD.sys_period_start, now(6),OLD.id, OLD.test_string); + set NEW.sys_period_start = now(6); +end$$ +delimiter $$ +create trigger migtest_e_history_history_del before delete on migtest_e_history for each row begin + insert into migtest_e_history_history (sys_period_start,sys_period_end,id, test_string) values (OLD.sys_period_start, now(6),OLD.id, OLD.test_string); +end$$ +lock tables migtest_e_history2 write, migtest_e_history3 write, migtest_e_history4 write, migtest_e_history5 write; +-- changes: [add test_string2, add test_string3, add new_column] +drop trigger migtest_e_history2_history_upd; +drop trigger migtest_e_history2_history_del; +delimiter $$ +create trigger migtest_e_history2_history_upd before update on migtest_e_history2 for each row begin + insert into migtest_e_history2_history (sys_period_start,sys_period_end,id, test_string, test_string3, new_column, obsolete_string1, obsolete_string2) values (OLD.sys_period_start, now(6),OLD.id, OLD.test_string, OLD.test_string3, OLD.new_column, OLD.obsolete_string1, OLD.obsolete_string2); + set NEW.sys_period_start = now(6); +end$$ +delimiter $$ +create trigger migtest_e_history2_history_del before delete on migtest_e_history2 for each row begin + insert into migtest_e_history2_history (sys_period_start,sys_period_end,id, test_string, test_string3, new_column, obsolete_string1, obsolete_string2) values (OLD.sys_period_start, now(6),OLD.id, OLD.test_string, OLD.test_string3, OLD.new_column, OLD.obsolete_string1, OLD.obsolete_string2); +end$$ +-- changes: [exclude test_string] +drop trigger migtest_e_history3_history_upd; +drop trigger migtest_e_history3_history_del; +delimiter $$ +create trigger migtest_e_history3_history_upd before update on migtest_e_history3 for each row begin + insert into migtest_e_history3_history (sys_period_start,sys_period_end,id) values (OLD.sys_period_start, now(6),OLD.id); + set NEW.sys_period_start = now(6); +end$$ +delimiter $$ +create trigger migtest_e_history3_history_del before delete on migtest_e_history3 for each row begin + insert into migtest_e_history3_history (sys_period_start,sys_period_end,id) values (OLD.sys_period_start, now(6),OLD.id); +end$$ +-- changes: [alter test_number] +drop trigger migtest_e_history4_history_upd; +drop trigger migtest_e_history4_history_del; +delimiter $$ +create trigger migtest_e_history4_history_upd before update on migtest_e_history4 for each row begin + insert into migtest_e_history4_history (sys_period_start,sys_period_end,id, test_number) values (OLD.sys_period_start, now(6),OLD.id, OLD.test_number); + set NEW.sys_period_start = now(6); +end$$ +delimiter $$ +create trigger migtest_e_history4_history_del before delete on migtest_e_history4 for each row begin + insert into migtest_e_history4_history (sys_period_start,sys_period_end,id, test_number) values (OLD.sys_period_start, now(6),OLD.id, OLD.test_number); +end$$ +-- changes: [add test_boolean] +drop trigger migtest_e_history5_history_upd; +drop trigger migtest_e_history5_history_del; +delimiter $$ +create trigger migtest_e_history5_history_upd before update on migtest_e_history5 for each row begin + insert into migtest_e_history5_history (sys_period_start,sys_period_end,id, test_number, test_boolean) values (OLD.sys_period_start, now(6),OLD.id, OLD.test_number, OLD.test_boolean); + set NEW.sys_period_start = now(6); +end$$ +delimiter $$ +create trigger migtest_e_history5_history_del before delete on migtest_e_history5 for each row begin + insert into migtest_e_history5_history (sys_period_start,sys_period_end,id, test_number, test_boolean) values (OLD.sys_period_start, now(6),OLD.id, OLD.test_number, OLD.test_boolean); +end$$ +unlock tables; diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/mysql55/1.2__dropsFor_1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/mysql55/1.2__dropsFor_1.1.sql new file mode 100644 index 000000000..a22adf90b --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/mysql55/1.2__dropsFor_1.1.sql @@ -0,0 +1,34 @@ +-- Migrationscripts for ebean unittest +-- drop dependencies +drop view if exists migtest_e_history2_with_history; + +-- apply changes +CALL usp_ebean_drop_column('migtest_e_basic', 'old_boolean'); + +CALL usp_ebean_drop_column('migtest_e_basic', 'old_boolean2'); + +CALL usp_ebean_drop_column('migtest_e_basic', 'eref_id'); + +CALL usp_ebean_drop_column('migtest_e_history2', 'obsolete_string1'); +CALL usp_ebean_drop_column('migtest_e_history2_history', 'obsolete_string1'); + +CALL usp_ebean_drop_column('migtest_e_history2', 'obsolete_string2'); +CALL usp_ebean_drop_column('migtest_e_history2_history', 'obsolete_string2'); + +drop table if exists migtest_e_ref; +create view migtest_e_history2_with_history as select * from migtest_e_history2 union all select * from migtest_e_history2_history; + +lock tables migtest_e_history2 write; +-- changes: [drop obsolete_string1, drop obsolete_string2] +drop trigger migtest_e_history2_history_upd; +drop trigger migtest_e_history2_history_del; +delimiter $$ +create trigger migtest_e_history2_history_upd before update on migtest_e_history2 for each row begin + insert into migtest_e_history2_history (sys_period_start,sys_period_end,id, test_string, test_string3, new_column) values (OLD.sys_period_start, now(6),OLD.id, OLD.test_string, OLD.test_string3, OLD.new_column); + set NEW.sys_period_start = now(6); +end$$ +delimiter $$ +create trigger migtest_e_history2_history_del before delete on migtest_e_history2 for each row begin + insert into migtest_e_history2_history (sys_period_start,sys_period_end,id, test_string, test_string3, new_column) values (OLD.sys_period_start, now(6),OLD.id, OLD.test_string, OLD.test_string3, OLD.new_column); +end$$ +unlock tables; diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/mysql55/1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/mysql55/1.3.sql new file mode 100644 index 000000000..6953c06f5 --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/mysql55/1.3.sql @@ -0,0 +1,115 @@ +-- Migrationscripts for ebean unittest +-- drop dependencies +drop view if exists migtest_e_history2_with_history; +drop view if exists migtest_e_history3_with_history; +drop view if exists migtest_e_history4_with_history; + +-- 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 restrict; +alter table migtest_fk_none drop foreign key fk_migtest_fk_none_one_id; +alter table migtest_fk_none_via_join drop foreign key fk_migtest_fk_none_via_join_one_id; +alter table migtest_fk_set_null drop foreign key fk_migtest_fk_set_null_one_id; +alter table migtest_fk_set_null add constraint fk_migtest_fk_set_null_one_id foreign key (one_id) references migtest_fk_one (id) on delete set null on update restrict; +alter table migtest_e_basic alter status drop default; +alter table migtest_e_basic modify status varchar(1); + +update migtest_e_basic set status2 = 'N' where status2 is null; +alter table migtest_e_basic alter status2 set default 'N'; +alter table migtest_e_basic modify status2 varchar(1) not null; +alter table migtest_e_basic drop index uq_migtest_e_basic_description; + +update migtest_e_basic set user_id = 23 where user_id is null; +alter table migtest_e_basic drop foreign key fk_migtest_e_basic_user_id; +alter table migtest_e_basic alter user_id set default 23; +alter table migtest_e_basic modify user_id integer not null; +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; +alter table migtest_e_basic add constraint uq_migtest_e_basic_indextest2 unique (indextest2); +alter table migtest_e_basic add constraint uq_migtest_e_basic_indextest6 unique (indextest6); +alter table migtest_e_history comment = ''; +alter table migtest_e_history2 alter test_string drop default; +alter table migtest_e_history2 modify test_string varchar(255); +alter table migtest_e_history2 add column obsolete_string1 varchar(255); +alter table migtest_e_history2 add column obsolete_string2 varchar(255); +alter table migtest_e_history2_history add column obsolete_string1 varchar(255); +alter table migtest_e_history2_history add column obsolete_string2 varchar(255); + +alter table migtest_e_history4 modify test_number integer; +alter table migtest_e_history4_history modify test_number integer; +alter table migtest_e_history6 alter test_number1 drop default; +alter table migtest_e_history6 modify test_number1 integer; + +-- NOTE: table has @History - special migration may be necessary +update migtest_e_history6 set test_number2 = 7 where test_number2 is null; +alter table migtest_e_history6 alter test_number2 set default 7; +alter table migtest_e_history6 modify test_number2 integer not null; +alter table migtest_oto_child add constraint uq_m12_otoc72 unique (name); +alter table migtest_oto_master add constraint uq_migtest_oto_master_name unique (name); +create index ix_migtest_e_basic_indextest1 on migtest_e_basic (indextest1); +create index ix_migtest_e_basic_indextest5 on migtest_e_basic (indextest5); +create index ix_m12_otoc72 on migtest_oto_child (name); +create index ix_migtest_oto_master_name on migtest_oto_master (name); +drop index ix_migtest_e_basic_indextest3 on migtest_e_basic; +drop index ix_migtest_e_basic_indextest6 on migtest_e_basic; +create index ix_migtest_e_basic_eref_id on migtest_e_basic (eref_id); +alter table migtest_e_basic add constraint fk_migtest_e_basic_eref_id foreign key (eref_id) references migtest_e_ref (id) on delete restrict on update restrict; + +create view migtest_e_history2_with_history as select * from migtest_e_history2 union all select * from migtest_e_history2_history; + +create view migtest_e_history3_with_history as select * from migtest_e_history3 union all select * from migtest_e_history3_history; + +create view migtest_e_history4_with_history as select * from migtest_e_history4 union all select * from migtest_e_history4_history; + +lock tables migtest_e_history2 write, migtest_e_history3 write, migtest_e_history4 write; +-- changes: [add obsolete_string1, add obsolete_string2] +drop trigger migtest_e_history2_history_upd; +drop trigger migtest_e_history2_history_del; +delimiter $$ +create trigger migtest_e_history2_history_upd before update on migtest_e_history2 for each row begin + insert into migtest_e_history2_history (sys_period_start,sys_period_end,id, test_string, obsolete_string2, test_string2, test_string3, new_column) values (OLD.sys_period_start, now(6),OLD.id, OLD.test_string, OLD.obsolete_string2, OLD.test_string2, OLD.test_string3, OLD.new_column); + set NEW.sys_period_start = now(6); +end$$ +delimiter $$ +create trigger migtest_e_history2_history_del before delete on migtest_e_history2 for each row begin + insert into migtest_e_history2_history (sys_period_start,sys_period_end,id, test_string, obsolete_string2, test_string2, test_string3, new_column) values (OLD.sys_period_start, now(6),OLD.id, OLD.test_string, OLD.obsolete_string2, OLD.test_string2, OLD.test_string3, OLD.new_column); +end$$ +-- changes: [include test_string] +drop trigger migtest_e_history3_history_upd; +drop trigger migtest_e_history3_history_del; +delimiter $$ +create trigger migtest_e_history3_history_upd before update on migtest_e_history3 for each row begin + insert into migtest_e_history3_history (sys_period_start,sys_period_end,id, test_string) values (OLD.sys_period_start, now(6),OLD.id, OLD.test_string); + set NEW.sys_period_start = now(6); +end$$ +delimiter $$ +create trigger migtest_e_history3_history_del before delete on migtest_e_history3 for each row begin + insert into migtest_e_history3_history (sys_period_start,sys_period_end,id, test_string) values (OLD.sys_period_start, now(6),OLD.id, OLD.test_string); +end$$ +-- changes: [alter test_number] +drop trigger migtest_e_history4_history_upd; +drop trigger migtest_e_history4_history_del; +delimiter $$ +create trigger migtest_e_history4_history_upd before update on migtest_e_history4 for each row begin + insert into migtest_e_history4_history (sys_period_start,sys_period_end,id, test_number) values (OLD.sys_period_start, now(6),OLD.id, OLD.test_number); + set NEW.sys_period_start = now(6); +end$$ +delimiter $$ +create trigger migtest_e_history4_history_del before delete on migtest_e_history4 for each row begin + insert into migtest_e_history4_history (sys_period_start,sys_period_end,id, test_number) values (OLD.sys_period_start, now(6),OLD.id, OLD.test_number); +end$$ +unlock tables; diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/mysql55/1.4__dropsFor_1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/mysql55/1.4__dropsFor_1.3.sql new file mode 100644 index 000000000..ff2e34d44 --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/mysql55/1.4__dropsFor_1.3.sql @@ -0,0 +1,79 @@ +-- Migrationscripts for ebean unittest +-- drop dependencies +drop trigger migtest_e_history_history_upd; +drop trigger migtest_e_history_history_del; +drop view migtest_e_history_with_history; +CALL usp_ebean_drop_column('migtest_e_history', 'sys_period_start'); +CALL usp_ebean_drop_column('migtest_e_history', 'sys_period_end'); +drop table migtest_e_history_history; + +drop view if exists migtest_e_history2_with_history; +drop view if exists migtest_e_history5_with_history; + +-- apply changes +CALL usp_ebean_drop_column('migtest_ckey_detail', 'one_key'); + +CALL usp_ebean_drop_column('migtest_ckey_detail', 'two_key'); + +CALL usp_ebean_drop_column('migtest_ckey_parent', 'assoc_id'); + +CALL usp_ebean_drop_column('migtest_e_basic', 'new_string_field'); + +CALL usp_ebean_drop_column('migtest_e_basic', 'new_boolean_field'); + +CALL usp_ebean_drop_column('migtest_e_basic', 'new_boolean_field2'); + +CALL usp_ebean_drop_column('migtest_e_basic', 'progress'); + +CALL usp_ebean_drop_column('migtest_e_basic', 'new_integer'); + +CALL usp_ebean_drop_column('migtest_e_history2', 'test_string2'); +CALL usp_ebean_drop_column('migtest_e_history2_history', 'test_string2'); + +CALL usp_ebean_drop_column('migtest_e_history2', 'test_string3'); +CALL usp_ebean_drop_column('migtest_e_history2_history', 'test_string3'); + +CALL usp_ebean_drop_column('migtest_e_history2', 'new_column'); +CALL usp_ebean_drop_column('migtest_e_history2_history', 'new_column'); + +CALL usp_ebean_drop_column('migtest_e_history5', 'test_boolean'); +CALL usp_ebean_drop_column('migtest_e_history5_history', 'test_boolean'); + +CALL usp_ebean_drop_column('migtest_e_softdelete', 'deleted'); + +CALL usp_ebean_drop_column('migtest_oto_child', '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; +drop table if exists migtest_mtm_m_phone_numbers; +create view migtest_e_history2_with_history as select * from migtest_e_history2 union all select * from migtest_e_history2_history; + +create view migtest_e_history5_with_history as select * from migtest_e_history5 union all select * from migtest_e_history5_history; + +lock tables migtest_e_history2 write, migtest_e_history5 write; +-- changes: [drop test_string2, drop test_string3, drop new_column] +drop trigger migtest_e_history2_history_upd; +drop trigger migtest_e_history2_history_del; +delimiter $$ +create trigger migtest_e_history2_history_upd before update on migtest_e_history2 for each row begin + insert into migtest_e_history2_history (sys_period_start,sys_period_end,id, test_string, obsolete_string2) values (OLD.sys_period_start, now(6),OLD.id, OLD.test_string, OLD.obsolete_string2); + set NEW.sys_period_start = now(6); +end$$ +delimiter $$ +create trigger migtest_e_history2_history_del before delete on migtest_e_history2 for each row begin + insert into migtest_e_history2_history (sys_period_start,sys_period_end,id, test_string, obsolete_string2) values (OLD.sys_period_start, now(6),OLD.id, OLD.test_string, OLD.obsolete_string2); +end$$ +-- changes: [drop test_boolean] +drop trigger migtest_e_history5_history_upd; +drop trigger migtest_e_history5_history_del; +delimiter $$ +create trigger migtest_e_history5_history_upd before update on migtest_e_history5 for each row begin + insert into migtest_e_history5_history (sys_period_start,sys_period_end,id, test_number) values (OLD.sys_period_start, now(6),OLD.id, OLD.test_number); + set NEW.sys_period_start = now(6); +end$$ +delimiter $$ +create trigger migtest_e_history5_history_del before delete on migtest_e_history5 for each row begin + insert into migtest_e_history5_history (sys_period_start,sys_period_end,id, test_number) values (OLD.sys_period_start, now(6),OLD.id, OLD.test_number); +end$$ +unlock tables; diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/mysql55/I__create_procs.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/mysql55/I__create_procs.sql new file mode 100644 index 000000000..d13ec2708 --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/mysql55/I__create_procs.sql @@ -0,0 +1,48 @@ +-- Inital script to create stored procedures etc for mysql platform +DROP PROCEDURE IF EXISTS usp_ebean_drop_foreign_keys; + +delimiter $$ +-- +-- PROCEDURE: usp_ebean_drop_foreign_keys TABLE, COLUMN +-- deletes all constraints and foreign keys referring to TABLE.COLUMN +-- +CREATE PROCEDURE usp_ebean_drop_foreign_keys(IN p_table_name VARCHAR(255), IN p_column_name VARCHAR(255)) +BEGIN +DECLARE done INT DEFAULT FALSE; +DECLARE c_fk_name CHAR(255); +DECLARE curs CURSOR FOR SELECT CONSTRAINT_NAME from information_schema.KEY_COLUMN_USAGE +WHERE TABLE_SCHEMA = DATABASE() and TABLE_NAME = p_table_name and COLUMN_NAME = p_column_name +AND REFERENCED_TABLE_NAME IS NOT NULL; +DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE; + +OPEN curs; + +read_loop: LOOP +FETCH curs INTO c_fk_name; +IF done THEN +LEAVE read_loop; +END IF; +SET @sql = CONCAT('ALTER TABLE ', p_table_name, ' DROP FOREIGN KEY ', c_fk_name); +PREPARE stmt FROM @sql; +EXECUTE stmt; +END LOOP; + +CLOSE curs; +END +$$ + +DROP PROCEDURE IF EXISTS usp_ebean_drop_column; + +delimiter $$ +-- +-- PROCEDURE: usp_ebean_drop_column TABLE, COLUMN +-- deletes the column and ensures that all indices and constraints are dropped first +-- +CREATE PROCEDURE usp_ebean_drop_column(IN p_table_name VARCHAR(255), IN p_column_name VARCHAR(255)) +BEGIN +CALL usp_ebean_drop_foreign_keys(p_table_name, p_column_name); +SET @sql = CONCAT('ALTER TABLE ', p_table_name, ' DROP COLUMN ', p_column_name); +PREPARE stmt FROM @sql; +EXECUTE stmt; +END +$$ diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/mysql55/R__order_views.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/mysql55/R__order_views.sql new file mode 100644 index 000000000..ccf30a2c6 --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/mysql55/R__order_views.sql @@ -0,0 +1,7 @@ + + create or replace view order_agg_vw as + select d.order_id, sum(d.order_qty * d.unit_price) as order_total, + sum(d.ship_qty * d.unit_price) as ship_total + from o_order_detail d + group by d.order_id + \ No newline at end of file diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/mysql55/idx_mysql.migrations b/ebean-test/src/test/resources/migrationtest/dbmigration/mysql55/idx_mysql.migrations new file mode 100644 index 000000000..4ed25ce12 --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/mysql55/idx_mysql.migrations @@ -0,0 +1,8 @@ +1835064798, I__create_procs.sql +-1087663151, 1.0__initial.sql +-1627573867, 1.1.sql +1922991807, 1.2__dropsFor_1.1.sql +-380371830, 1.3.sql +-1373040825, 1.4__dropsFor_1.3.sql +561281075, R__order_views.sql + diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/oracle/1.0__initial.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/oracle/1.0__initial.sql index 8c9b8aefb..09a800c07 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/oracle/1.0__initial.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/oracle/1.0__initial.sql @@ -1,18 +1,16 @@ -- Migrationscripts for ebean unittest -- apply changes create table migtest_ckey_assoc ( - id number(10) not null, + id number(10) generated by default as identity 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, + id number(10) generated by default as identity 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(10) not null, @@ -23,47 +21,41 @@ create table migtest_ckey_parent ( ); create table migtest_fk_cascade ( - id number(19) not null, + id number(19) generated by default as identity not null, one_id number(19), constraint pk_migtest_fk_cascade primary key (id) ); -create sequence migtest_fk_cascade_seq; create table migtest_fk_cascade_one ( - id number(19) not null, + id number(19) generated by default as identity not null, constraint pk_migtest_fk_cascade_one primary key (id) ); -create sequence migtest_fk_cascade_one_seq; create table migtest_fk_none ( - id number(19) not null, + id number(19) generated by default as identity not null, one_id number(19), constraint pk_migtest_fk_none primary key (id) ); -create sequence migtest_fk_none_seq; create table migtest_fk_none_via_join ( - id number(19) not null, + id number(19) generated by default as identity not null, one_id number(19), constraint pk_migtest_fk_none_via_join primary key (id) ); -create sequence migtest_fk_none_via_join_seq; create table migtest_fk_one ( - id number(19) not null, + id number(19) generated by default as identity not null, constraint pk_migtest_fk_one primary key (id) ); -create sequence migtest_fk_one_seq; create table migtest_fk_set_null ( - id number(19) not null, + id number(19) generated by default as identity not null, one_id number(19), constraint pk_migtest_fk_set_null primary key (id) ); -create sequence migtest_fk_set_null_seq; create table migtest_e_basic ( - id number(10) not null, + id number(10) generated by default as identity not null, status varchar2(1), status2 varchar2(1) default 'N' not null, name varchar2(127), @@ -85,103 +77,89 @@ create table migtest_e_basic ( constraint uq_migtest_e_basic_indextest6 unique (indextest6), constraint pk_migtest_e_basic primary key (id) ); -create sequence migtest_e_basic_seq; create table migtest_e_enum ( - id number(10) not null, + id number(10) generated by default as identity not null, test_status varchar2(1), constraint ck_migtest_e_enum_test_status check ( test_status in ('N','A','I')), constraint pk_migtest_e_enum primary key (id) ); -create sequence migtest_e_enum_seq; create table migtest_e_history ( - id number(10) not null, + id number(10) generated by default as identity not null, test_string varchar2(255), constraint pk_migtest_e_history primary key (id) ); -create sequence migtest_e_history_seq; create table migtest_e_history2 ( - id number(10) not null, + id number(10) generated by default as identity not null, test_string varchar2(255), obsolete_string1 varchar2(255), obsolete_string2 varchar2(255), constraint pk_migtest_e_history2 primary key (id) ); -create sequence migtest_e_history2_seq; create table migtest_e_history3 ( - id number(10) not null, + id number(10) generated by default as identity not null, test_string varchar2(255), constraint pk_migtest_e_history3 primary key (id) ); -create sequence migtest_e_history3_seq; create table migtest_e_history4 ( - id number(10) not null, + id number(10) generated by default as identity not null, test_number number(10), constraint pk_migtest_e_history4 primary key (id) ); -create sequence migtest_e_history4_seq; create table migtest_e_history5 ( - id number(10) not null, + id number(10) generated by default as identity not null, test_number number(10), constraint pk_migtest_e_history5 primary key (id) ); -create sequence migtest_e_history5_seq; create table migtest_e_history6 ( - id number(10) not null, + id number(10) generated by default as identity not null, test_number1 number(10), test_number2 number(10) not null, constraint pk_migtest_e_history6 primary key (id) ); -create sequence migtest_e_history6_seq; create table migtest_e_ref ( - id number(10) not null, + id number(10) generated by default as identity 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; create table migtest_e_softdelete ( - id number(10) not null, + id number(10) generated by default as identity not null, test_string varchar2(255), constraint pk_migtest_e_softdelete primary key (id) ); -create sequence migtest_e_softdelete_seq; create table migtest_mtm_c ( - id number(10) not null, + id number(10) generated by default as identity 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, + id number(19) generated by default as identity 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, + id number(10) generated by default as identity 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, + id number(19) generated by default as identity 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); diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/oracle/1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/oracle/1.1.sql index b6de2b755..3a706374e 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/oracle/1.1.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/oracle/1.1.sql @@ -1,10 +1,9 @@ -- Migrationscripts for ebean unittest -- apply changes create table migtest_e_user ( - id number(10) not null, + id number(10) generated by default as identity not null, constraint pk_migtest_e_user primary key (id) ); -create sequence migtest_e_user_seq; create table migtest_mtm_c_migtest_mtm_m ( migtest_mtm_c_id number(10) not null, diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/oracle/1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/oracle/1.3.sql index 0b528fe86..ceafdbcff 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/oracle/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/oracle/1.3.sql @@ -1,12 +1,11 @@ -- Migrationscripts for ebean unittest -- apply changes create table migtest_e_ref ( - id number(10) not null, + id number(10) generated by default as identity 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; diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/oracle/idx_oracle.migrations b/ebean-test/src/test/resources/migrationtest/dbmigration/oracle/idx_oracle.migrations index 0d92c64be..784f0c1d5 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/oracle/idx_oracle.migrations +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/oracle/idx_oracle.migrations @@ -1,7 +1,7 @@ -1839897438, 1.0__initial.sql -1927010726, 1.1.sql +1164675950, 1.0__initial.sql +-411370666, 1.1.sql 238598298, 1.2__dropsFor_1.1.sql -1543053715, 1.3.sql +483114276, 1.3.sql -629809805, 1.4__dropsFor_1.3.sql 1357801733, R__oracle_only_views.sql 561281075, R__order_views.sql diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/oracle11/1.0__initial.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/oracle11/1.0__initial.sql new file mode 100644 index 000000000..8c9b8aefb --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/oracle11/1.0__initial.sql @@ -0,0 +1,196 @@ +-- 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(10) 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), + constraint pk_migtest_fk_cascade primary key (id) +); +create sequence migtest_fk_cascade_seq; + +create table migtest_fk_cascade_one ( + id number(19) not null, + constraint pk_migtest_fk_cascade_one primary key (id) +); +create sequence migtest_fk_cascade_one_seq; + +create table migtest_fk_none ( + id number(19) not null, + one_id number(19), + constraint pk_migtest_fk_none primary key (id) +); +create sequence migtest_fk_none_seq; + +create table migtest_fk_none_via_join ( + id number(19) not null, + one_id number(19), + constraint pk_migtest_fk_none_via_join primary key (id) +); +create sequence migtest_fk_none_via_join_seq; + +create table migtest_fk_one ( + id number(19) not null, + constraint pk_migtest_fk_one primary key (id) +); +create sequence migtest_fk_one_seq; + +create table migtest_fk_set_null ( + id number(19) not null, + one_id number(19), + constraint pk_migtest_fk_set_null primary key (id) +); +create sequence migtest_fk_set_null_seq; + +create table migtest_e_basic ( + id number(10) not null, + status varchar2(1), + status2 varchar2(1) default 'N' not null, + name varchar2(127), + description varchar2(127), + some_date timestamp, + old_boolean number(1) default 0 not null, + old_boolean2 number(1), + eref_id number(10), + indextest1 varchar2(127), + indextest2 varchar2(127), + indextest3 varchar2(127), + indextest4 varchar2(127), + indextest5 varchar2(127), + indextest6 varchar2(127), + user_id number(10) not null, + constraint ck_migtest_e_basic_status check ( status in ('N','A','I')), + constraint ck_migtest_e_basic_status2 check ( status2 in ('N','A','I')), + constraint uq_migtest_e_basic_indextest2 unique (indextest2), + constraint uq_migtest_e_basic_indextest6 unique (indextest6), + constraint pk_migtest_e_basic primary key (id) +); +create sequence migtest_e_basic_seq; + +create table migtest_e_enum ( + id number(10) not null, + test_status varchar2(1), + constraint ck_migtest_e_enum_test_status check ( test_status in ('N','A','I')), + constraint pk_migtest_e_enum primary key (id) +); +create sequence migtest_e_enum_seq; + +create table migtest_e_history ( + id number(10) not null, + test_string varchar2(255), + constraint pk_migtest_e_history primary key (id) +); +create sequence migtest_e_history_seq; + +create table migtest_e_history2 ( + id number(10) not null, + test_string varchar2(255), + obsolete_string1 varchar2(255), + obsolete_string2 varchar2(255), + constraint pk_migtest_e_history2 primary key (id) +); +create sequence migtest_e_history2_seq; + +create table migtest_e_history3 ( + id number(10) not null, + test_string varchar2(255), + constraint pk_migtest_e_history3 primary key (id) +); +create sequence migtest_e_history3_seq; + +create table migtest_e_history4 ( + id number(10) not null, + test_number number(10), + constraint pk_migtest_e_history4 primary key (id) +); +create sequence migtest_e_history4_seq; + +create table migtest_e_history5 ( + id number(10) not null, + test_number number(10), + constraint pk_migtest_e_history5 primary key (id) +); +create sequence migtest_e_history5_seq; + +create table migtest_e_history6 ( + id number(10) not null, + test_number1 number(10), + test_number2 number(10) not null, + constraint pk_migtest_e_history6 primary key (id) +); +create sequence migtest_e_history6_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; + +create table migtest_e_softdelete ( + id number(10) not null, + test_string varchar2(255), + constraint pk_migtest_e_softdelete primary key (id) +); +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); +create index ix_migtest_fk_cascade_one_id on 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; + +create index ix_migtest_fk_set_null_one_id on migtest_fk_set_null (one_id); +alter table migtest_fk_set_null add constraint fk_migtest_fk_set_null_one_id foreign key (one_id) references migtest_fk_one (id) on delete set null; + +create index ix_migtest_e_basic_eref_id on migtest_e_basic (eref_id); +alter table migtest_e_basic add constraint fk_migtest_e_basic_eref_id foreign key (eref_id) references migtest_e_ref (id); + diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/oracle11/1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/oracle11/1.1.sql new file mode 100644 index 000000000..b6de2b755 --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/oracle11/1.1.sql @@ -0,0 +1,119 @@ +-- Migrationscripts for ebean unittest +-- apply changes +create table migtest_e_user ( + id number(10) not null, + constraint pk_migtest_e_user primary key (id) +); +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) +); + +create table migtest_mtm_m_phone_numbers ( + migtest_mtm_m_id number(19) not null, + value varchar2(255) not null +); + +alter table migtest_ckey_detail add one_key number(10); +alter table migtest_ckey_detail add 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 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); +alter table migtest_fk_none_via_join add constraint fk_mgtst_fk_nn_v_jn_n_d foreign key (one_id) references migtest_fk_one (id); +alter table migtest_fk_set_null drop constraint fk_migtest_fk_set_null_one_id; +alter table migtest_fk_set_null add constraint fk_migtest_fk_set_null_one_id foreign key (one_id) references migtest_fk_one (id); + +update migtest_e_basic set status = 'A' where status is null; +alter table migtest_e_basic drop constraint ck_migtest_e_basic_status; +alter table migtest_e_basic modify status default 'A'; +alter table migtest_e_basic modify status not null; +alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I','?')); +alter table migtest_e_basic drop constraint ck_migtest_e_basic_status2; +alter table migtest_e_basic modify status2 varchar2(127); +alter table migtest_e_basic modify status2 drop default; +alter table migtest_e_basic modify status2 null; + +-- rename all collisions; +-- NOT YET IMPLEMENTED: alter table migtest_e_basic add constraint uq_migtest_e_basic_description unique (description); + +insert into migtest_e_user (id) select distinct user_id from migtest_e_basic; +alter table migtest_e_basic add constraint fk_migtest_e_basic_user_id foreign key (user_id) references migtest_e_user (id); +alter table migtest_e_basic modify user_id null; +alter table migtest_e_basic add new_string_field varchar2(255) default 'foo''bar' not null; +alter table migtest_e_basic add new_boolean_field number(1) default 1 not null; +update migtest_e_basic set new_boolean_field = old_boolean; + +alter table migtest_e_basic add new_boolean_field2 number(1) default 1 not null; +alter table migtest_e_basic add progress number(10) default 0 not null; +alter table migtest_e_basic add constraint ck_migtest_e_basic_progress check ( progress in (0,1,2)); +alter table migtest_e_basic add new_integer number(10) 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 YET IMPLEMENTED: alter table migtest_e_basic add constraint uq_mgtst__bsc_stts_ndxtst1 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); +alter table migtest_e_enum drop constraint ck_migtest_e_enum_test_status; +comment on column migtest_e_history.test_string is 'Column altered to long now'; +alter table migtest_e_history modify test_string number(19); +comment on table migtest_e_history is 'We have history now'; + +-- NOTE: table has @History - special migration may be necessary +update migtest_e_history2 set test_string = 'unknown' where test_string is null; +alter table migtest_e_history2 modify test_string default 'unknown'; +alter table migtest_e_history2 modify test_string not null; +alter table migtest_e_history2 add test_string2 varchar2(255); +alter table migtest_e_history2 add test_string3 varchar2(255) default 'unknown' not null; +alter table migtest_e_history2 add new_column varchar2(20); + +alter table migtest_e_history4 modify test_number number(19); +alter table migtest_e_history5 add test_boolean number(1) default 0 not null; + + +-- NOTE: table has @History - special migration may be necessary +update migtest_e_history6 set test_number1 = 42 where test_number1 is null; +alter table migtest_e_history6 modify test_number1 default 42; +alter table migtest_e_history6 modify test_number1 not null; +alter table migtest_e_history6 modify test_number2 null; +alter table migtest_e_softdelete add deleted number(1) default 0 not null; + +alter table migtest_oto_child add 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; +create index ix_mgtst_mtm_c_mgtst_mt_3ug4ok on migtest_mtm_c_migtest_mtm_m (migtest_mtm_c_id); +alter table migtest_mtm_c_migtest_mtm_m add constraint fk_mgtst_mtm_c_mgtst_mt_93awga foreign key (migtest_mtm_c_id) references migtest_mtm_c (id); + +create index ix_mgtst_mtm_c_mgtst_mt_3ug4ou on migtest_mtm_c_migtest_mtm_m (migtest_mtm_m_id); +alter table migtest_mtm_c_migtest_mtm_m add constraint fk_mgtst_mtm_c_mgtst_mt_93awgk foreign key (migtest_mtm_m_id) references migtest_mtm_m (id); + +create index ix_mgtst_mtm_m_mgtst_mt_b7nbcu on migtest_mtm_m_migtest_mtm_c (migtest_mtm_m_id); +alter table migtest_mtm_m_migtest_mtm_c add constraint fk_mgtst_mtm_m_mgtst_mt_ggi34k foreign key (migtest_mtm_m_id) references migtest_mtm_m (id); + +create index ix_mgtst_mtm_m_mgtst_mt_b7nbck on migtest_mtm_m_migtest_mtm_c (migtest_mtm_c_id); +alter table migtest_mtm_m_migtest_mtm_c add constraint fk_mgtst_mtm_m_mgtst_mt_ggi34a foreign key (migtest_mtm_c_id) references migtest_mtm_c (id); + +create index ix_mgtst_mtm_m_phn_nmbr_do9ma3 on migtest_mtm_m_phone_numbers (migtest_mtm_m_id); +alter table migtest_mtm_m_phone_numbers add constraint fk_mgtst_mtm_m_phn_nmbr_s8neid foreign key (migtest_mtm_m_id) references migtest_mtm_m (id); + +create index ix_mgtst_cky_prnt_ssc_d on migtest_ckey_parent (assoc_id); +alter table migtest_ckey_parent add constraint fk_mgtst_cky_prnt_ssc_d foreign key (assoc_id) references migtest_ckey_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/ebean-test/src/test/resources/migrationtest/dbmigration/oracle11/1.2__dropsFor_1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/oracle11/1.2__dropsFor_1.1.sql new file mode 100644 index 000000000..4f2337db3 --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/oracle11/1.2__dropsFor_1.1.sql @@ -0,0 +1,14 @@ +-- Migrationscripts for ebean unittest +-- apply changes +alter table migtest_e_basic drop column old_boolean; + +alter table migtest_e_basic drop column old_boolean2; + +alter table migtest_e_basic drop column eref_id; + +alter table migtest_e_history2 drop column obsolete_string1; + +alter table migtest_e_history2 drop column obsolete_string2; + +drop table migtest_e_ref cascade constraints purge; +drop sequence migtest_e_ref_seq; diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/oracle11/1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/oracle11/1.3.sql new file mode 100644 index 000000000..0b528fe86 --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/oracle11/1.3.sql @@ -0,0 +1,68 @@ +-- Migrationscripts for ebean unittest +-- 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; +alter table migtest_fk_none_via_join drop constraint fk_mgtst_fk_nn_v_jn_n_d; +alter table migtest_fk_set_null drop constraint fk_migtest_fk_set_null_one_id; +alter table migtest_fk_set_null add constraint fk_migtest_fk_set_null_one_id foreign key (one_id) references migtest_fk_one (id) on delete set null; +alter table migtest_e_basic drop constraint ck_migtest_e_basic_status; +alter table migtest_e_basic modify status drop default; +alter table migtest_e_basic modify status null; +alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I')); + +update migtest_e_basic set status2 = 'N' where status2 is null; +alter table migtest_e_basic drop constraint ck_migtest_e_basic_status2; +alter table migtest_e_basic modify status2 varchar2(1); +alter table migtest_e_basic modify status2 default 'N'; +alter table migtest_e_basic modify status2 not null; +alter table migtest_e_basic add constraint ck_migtest_e_basic_status2 check ( status2 in ('N','A','I')); +alter table migtest_e_basic drop constraint uq_migtest_e_basic_description; + +update migtest_e_basic set user_id = 23 where user_id is null; +alter table migtest_e_basic drop constraint fk_migtest_e_basic_user_id; +alter table migtest_e_basic modify user_id default 23; +alter table migtest_e_basic modify user_id not null; +alter table migtest_e_basic add old_boolean number(1) default 0 not null; +alter table migtest_e_basic add old_boolean2 number(1); +alter table migtest_e_basic add eref_id number(10); + +alter table migtest_e_basic drop constraint uq_mgtst__bsc_stts_ndxtst1; +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; +-- NOT YET IMPLEMENTED: alter table migtest_e_basic add constraint uq_migtest_e_basic_indextest2 unique (indextest2); +-- NOT YET IMPLEMENTED: alter table migtest_e_basic add constraint uq_migtest_e_basic_indextest6 unique (indextest6); +alter table migtest_e_enum drop constraint ck_migtest_e_enum_test_status; +alter table migtest_e_enum add constraint ck_migtest_e_enum_test_status check ( test_status in ('N','A','I')); +comment on column migtest_e_history.test_string is ''; +comment on table migtest_e_history is ''; +alter table migtest_e_history2 modify test_string drop default; +alter table migtest_e_history2 modify test_string null; +alter table migtest_e_history2 add obsolete_string1 varchar2(255); +alter table migtest_e_history2 add obsolete_string2 varchar2(255); + +alter table migtest_e_history4 modify test_number number(10); +alter table migtest_e_history6 modify test_number1 drop default; +alter table migtest_e_history6 modify test_number1 null; + +-- NOTE: table has @History - special migration may be necessary +update migtest_e_history6 set test_number2 = 7 where test_number2 is null; +alter table migtest_e_history6 modify test_number2 default 7; +alter table migtest_e_history6 modify test_number2 not null; +create index ix_migtest_e_basic_indextest1 on migtest_e_basic (indextest1); +create index ix_migtest_e_basic_indextest5 on migtest_e_basic (indextest5); +drop index ix_migtest_e_basic_indextest3; +drop index ix_migtest_e_basic_indextest6; +create index ix_migtest_e_basic_eref_id on migtest_e_basic (eref_id); +alter table migtest_e_basic add constraint fk_migtest_e_basic_eref_id foreign key (eref_id) references migtest_e_ref (id); + diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/oracle11/1.4__dropsFor_1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/oracle11/1.4__dropsFor_1.3.sql new file mode 100644 index 000000000..34fe0bed4 --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/oracle11/1.4__dropsFor_1.3.sql @@ -0,0 +1,35 @@ +-- 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; + +alter table migtest_e_basic drop column new_boolean_field2; + +alter table migtest_e_basic drop column progress; + +alter table migtest_e_basic drop column new_integer; + +alter table migtest_e_history2 drop column test_string2; + +alter table migtest_e_history2 drop column test_string3; + +alter table migtest_e_history2 drop column new_column; + +alter table migtest_e_history5 drop column test_boolean; + +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; +drop table migtest_mtm_m_phone_numbers cascade constraints purge; diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/oracle11/R__oracle_only_views.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/oracle11/R__oracle_only_views.sql new file mode 100644 index 000000000..1140e5361 --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/oracle11/R__oracle_only_views.sql @@ -0,0 +1,4 @@ + + -- oracle only script + select * from dual; + \ No newline at end of file diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/oracle11/R__order_views.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/oracle11/R__order_views.sql new file mode 100644 index 000000000..ccf30a2c6 --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/oracle11/R__order_views.sql @@ -0,0 +1,7 @@ + + create or replace view order_agg_vw as + select d.order_id, sum(d.order_qty * d.unit_price) as order_total, + sum(d.ship_qty * d.unit_price) as ship_total + from o_order_detail d + group by d.order_id + \ No newline at end of file diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/oracle11/idx_oracle.migrations b/ebean-test/src/test/resources/migrationtest/dbmigration/oracle11/idx_oracle.migrations new file mode 100644 index 000000000..0d92c64be --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/oracle11/idx_oracle.migrations @@ -0,0 +1,8 @@ +1839897438, 1.0__initial.sql +1927010726, 1.1.sql +238598298, 1.2__dropsFor_1.1.sql +1543053715, 1.3.sql +-629809805, 1.4__dropsFor_1.3.sql +1357801733, R__oracle_only_views.sql +561281075, R__order_views.sql + diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/postgres/1.0__initial.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/postgres/1.0__initial.sql index 3e610644e..af08de6d3 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/postgres/1.0__initial.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/postgres/1.0__initial.sql @@ -1,13 +1,13 @@ -- Migrationscripts for ebean unittest -- apply changes create table migtest_ckey_assoc ( - id serial not null, + 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 serial not null, + id integer generated by default as identity not null, something varchar(255), constraint pk_migtest_ckey_detail primary key (id) ); @@ -21,41 +21,41 @@ create table migtest_ckey_parent ( ); create table migtest_fk_cascade ( - id bigserial not null, + id bigint generated by default as identity not null, one_id bigint, constraint pk_migtest_fk_cascade primary key (id) ); create table migtest_fk_cascade_one ( - id bigserial not null, + id bigint generated by default as identity not null, constraint pk_migtest_fk_cascade_one primary key (id) ); create table migtest_fk_none ( - id bigserial not null, + id bigint generated by default as identity not null, one_id bigint, constraint pk_migtest_fk_none primary key (id) ); create table migtest_fk_none_via_join ( - id bigserial not null, + id bigint generated by default as identity not null, one_id bigint, constraint pk_migtest_fk_none_via_join primary key (id) ); create table migtest_fk_one ( - id bigserial not null, + id bigint generated by default as identity not null, constraint pk_migtest_fk_one primary key (id) ); create table migtest_fk_set_null ( - id bigserial not null, + id bigint generated by default as identity not null, one_id bigint, constraint pk_migtest_fk_set_null primary key (id) ); create table migtest_e_basic ( - id serial not null, + id integer generated by default as identity not null, status varchar(1), status2 varchar(1) default 'N' not null, name varchar(127), @@ -79,20 +79,20 @@ create table migtest_e_basic ( ); create table migtest_e_enum ( - id serial not null, + id integer generated by default as identity not null, test_status varchar(1), constraint ck_migtest_e_enum_test_status check ( test_status in ('N','A','I')), constraint pk_migtest_e_enum primary key (id) ); create table migtest_e_history ( - id serial not null, + id integer generated by default as identity not null, test_string varchar(255), constraint pk_migtest_e_history primary key (id) ); create table migtest_e_history2 ( - id serial not null, + id integer generated by default as identity not null, test_string varchar(255), obsolete_string1 varchar(255), obsolete_string2 varchar(255), @@ -100,63 +100,63 @@ create table migtest_e_history2 ( ); create table migtest_e_history3 ( - id serial not null, + id integer generated by default as identity not null, test_string varchar(255), constraint pk_migtest_e_history3 primary key (id) ); create table migtest_e_history4 ( - id serial not null, + id integer generated by default as identity not null, test_number integer, constraint pk_migtest_e_history4 primary key (id) ); create table migtest_e_history5 ( - id serial not null, + id integer generated by default as identity not null, test_number integer, constraint pk_migtest_e_history5 primary key (id) ); create table migtest_e_history6 ( - id serial not null, + id integer generated by default as identity not null, test_number1 integer, test_number2 integer not null, constraint pk_migtest_e_history6 primary key (id) ); create table migtest_e_ref ( - id serial not null, + id integer generated by default as identity not null, name varchar(127) not null, constraint uq_migtest_e_ref_name unique (name), constraint pk_migtest_e_ref primary key (id) ); create table migtest_e_softdelete ( - id serial not null, + id integer generated by default as identity not null, test_string varchar(255), constraint pk_migtest_e_softdelete primary key (id) ); create table migtest_mtm_c ( - id serial not null, + 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 bigserial not null, + 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 serial not null, + 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 bigserial not null, + id bigint generated by default as identity not null, name varchar(255), constraint pk_migtest_oto_master primary key (id) ); diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/postgres/1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/postgres/1.1.sql index 82fc83f2b..37be77440 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/postgres/1.1.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/postgres/1.1.sql @@ -7,7 +7,7 @@ drop view if exists migtest_e_history5_with_history; -- apply changes create table migtest_e_user ( - id serial not null, + id integer generated by default as identity not null, constraint pk_migtest_e_user primary key (id) ); diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/postgres/1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/postgres/1.3.sql index b6e8c3a34..dbcb50aac 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/postgres/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/postgres/1.3.sql @@ -6,7 +6,7 @@ drop view if exists migtest_e_history4_with_history; -- apply changes create table migtest_e_ref ( - id serial not null, + id integer generated by default as identity not null, name varchar(127) not null, constraint uq_migtest_e_ref_name unique (name), constraint pk_migtest_e_ref primary key (id) diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/postgres/idx_postgres.migrations b/ebean-test/src/test/resources/migrationtest/dbmigration/postgres/idx_postgres.migrations index 370c64f13..38e13bc57 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/postgres/idx_postgres.migrations +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/postgres/idx_postgres.migrations @@ -1,7 +1,7 @@ -1428934272, 1.0__initial.sql -1253246780, 1.1.sql +1329543701, 1.0__initial.sql +1548995254, 1.1.sql -1861367028, 1.2__dropsFor_1.1.sql -326342179, 1.3.sql +-1798982281, 1.3.sql -1991941691, 1.4__dropsFor_1.3.sql 783227075, R__multi_comments.sql 561281075, R__order_views.sql diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/postgres9/1.0__initial.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/postgres9/1.0__initial.sql new file mode 100644 index 000000000..3e610644e --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/postgres9/1.0__initial.sql @@ -0,0 +1,307 @@ +-- 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, + constraint pk_migtest_fk_cascade primary key (id) +); + +create table migtest_fk_cascade_one ( + id bigserial not null, + constraint pk_migtest_fk_cascade_one primary key (id) +); + +create table migtest_fk_none ( + id bigserial not null, + one_id bigint, + constraint pk_migtest_fk_none primary key (id) +); + +create table migtest_fk_none_via_join ( + id bigserial not null, + one_id bigint, + constraint pk_migtest_fk_none_via_join primary key (id) +); + +create table migtest_fk_one ( + id bigserial not null, + constraint pk_migtest_fk_one primary key (id) +); + +create table migtest_fk_set_null ( + id bigserial not null, + one_id bigint, + constraint pk_migtest_fk_set_null primary key (id) +); + +create table migtest_e_basic ( + id serial not null, + status varchar(1), + status2 varchar(1) default 'N' not null, + name varchar(127), + description varchar(127), + some_date timestamptz, + old_boolean boolean default false not null, + old_boolean2 boolean, + eref_id integer, + indextest1 varchar(127), + indextest2 varchar(127), + indextest3 varchar(127), + indextest4 varchar(127), + indextest5 varchar(127), + indextest6 varchar(127), + user_id integer not null, + constraint ck_migtest_e_basic_status check ( status in ('N','A','I')), + constraint ck_migtest_e_basic_status2 check ( status2 in ('N','A','I')), + constraint uq_migtest_e_basic_indextest2 unique (indextest2), + constraint uq_migtest_e_basic_indextest6 unique (indextest6), + constraint pk_migtest_e_basic primary key (id) +); + +create table migtest_e_enum ( + id serial not null, + test_status varchar(1), + constraint ck_migtest_e_enum_test_status check ( test_status in ('N','A','I')), + constraint pk_migtest_e_enum primary key (id) +); + +create table migtest_e_history ( + id serial not null, + test_string varchar(255), + constraint pk_migtest_e_history primary key (id) +); + +create table migtest_e_history2 ( + id serial not null, + test_string varchar(255), + obsolete_string1 varchar(255), + obsolete_string2 varchar(255), + constraint pk_migtest_e_history2 primary key (id) +); + +create table migtest_e_history3 ( + id serial not null, + test_string varchar(255), + constraint pk_migtest_e_history3 primary key (id) +); + +create table migtest_e_history4 ( + id serial not null, + test_number integer, + constraint pk_migtest_e_history4 primary key (id) +); + +create table migtest_e_history5 ( + id serial not null, + test_number integer, + constraint pk_migtest_e_history5 primary key (id) +); + +create table migtest_e_history6 ( + id serial not null, + test_number1 integer, + test_number2 integer not null, + constraint pk_migtest_e_history6 primary key (id) +); + +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) +); + +create table migtest_e_softdelete ( + id serial not null, + test_string varchar(255), + 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 if not exists ix_migtest_e_basic_indextest1 on migtest_e_basic (indextest1); +create index if not exists ix_migtest_e_basic_indextest5 on migtest_e_basic (indextest5); +create index idxd_migtest_0 on migtest_oto_child using hash (upper(name)) where upper(name) = 'JIM'; +create index concurrently if not exists ix_migtest_oto_child_lowername_id on migtest_oto_child (lower(name),id); +create index if not exists ix_migtest_oto_child_lowername on migtest_oto_child (lower(name)); +create index ix_migtest_fk_cascade_one_id on 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 restrict; + +create index ix_migtest_fk_set_null_one_id on migtest_fk_set_null (one_id); +alter table migtest_fk_set_null add constraint fk_migtest_fk_set_null_one_id foreign key (one_id) references migtest_fk_one (id) on delete set null on update restrict; + +create index ix_migtest_e_basic_eref_id on migtest_e_basic (eref_id); +alter table migtest_e_basic add constraint fk_migtest_e_basic_eref_id foreign key (eref_id) references migtest_e_ref (id) on delete restrict on update restrict; + +alter table migtest_e_history2 add column sys_period tstzrange not null default tstzrange(current_timestamp, null); +create table migtest_e_history2_history(like migtest_e_history2); +create view migtest_e_history2_with_history as select * from migtest_e_history2 union all select * from migtest_e_history2_history; + +alter table migtest_e_history3 add column sys_period tstzrange not null default tstzrange(current_timestamp, null); +create table migtest_e_history3_history(like migtest_e_history3); +create view migtest_e_history3_with_history as select * from migtest_e_history3 union all select * from migtest_e_history3_history; + +alter table migtest_e_history4 add column sys_period tstzrange not null default tstzrange(current_timestamp, null); +create table migtest_e_history4_history(like migtest_e_history4); +create view migtest_e_history4_with_history as select * from migtest_e_history4 union all select * from migtest_e_history4_history; + +alter table migtest_e_history5 add column sys_period tstzrange not null default tstzrange(current_timestamp, null); +create table migtest_e_history5_history(like migtest_e_history5); +create view migtest_e_history5_with_history as select * from migtest_e_history5 union all select * from migtest_e_history5_history; + +alter table migtest_e_history6 add column sys_period tstzrange not null default tstzrange(current_timestamp, null); +create table migtest_e_history6_history(like migtest_e_history6); +create view migtest_e_history6_with_history as select * from migtest_e_history6 union all select * from migtest_e_history6_history; + +create or replace function migtest_e_history2_history_version() returns trigger as $$ +declare + lowerTs timestamptz; + upperTs timestamptz; +begin + lowerTs = lower(OLD.sys_period); + upperTs = greatest(lowerTs + '1 microsecond',current_timestamp); + if (TG_OP = 'UPDATE') then + insert into migtest_e_history2_history (sys_period,id, test_string, obsolete_string2) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_string, OLD.obsolete_string2); + NEW.sys_period = tstzrange(upperTs,null); + return new; + elsif (TG_OP = 'DELETE') then + insert into migtest_e_history2_history (sys_period,id, test_string, obsolete_string2) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_string, OLD.obsolete_string2); + return old; + end if; +end; +$$ LANGUAGE plpgsql; + +create trigger migtest_e_history2_history_upd + before update or delete on migtest_e_history2 + for each row execute procedure migtest_e_history2_history_version(); + +create or replace function migtest_e_history3_history_version() returns trigger as $$ +declare + lowerTs timestamptz; + upperTs timestamptz; +begin + lowerTs = lower(OLD.sys_period); + upperTs = greatest(lowerTs + '1 microsecond',current_timestamp); + if (TG_OP = 'UPDATE') then + insert into migtest_e_history3_history (sys_period,id, test_string) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_string); + NEW.sys_period = tstzrange(upperTs,null); + return new; + elsif (TG_OP = 'DELETE') then + insert into migtest_e_history3_history (sys_period,id, test_string) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_string); + return old; + end if; +end; +$$ LANGUAGE plpgsql; + +create trigger migtest_e_history3_history_upd + before update or delete on migtest_e_history3 + for each row execute procedure migtest_e_history3_history_version(); + +create or replace function migtest_e_history4_history_version() returns trigger as $$ +declare + lowerTs timestamptz; + upperTs timestamptz; +begin + lowerTs = lower(OLD.sys_period); + upperTs = greatest(lowerTs + '1 microsecond',current_timestamp); + if (TG_OP = 'UPDATE') then + insert into migtest_e_history4_history (sys_period,id, test_number) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_number); + NEW.sys_period = tstzrange(upperTs,null); + return new; + elsif (TG_OP = 'DELETE') then + insert into migtest_e_history4_history (sys_period,id, test_number) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_number); + return old; + end if; +end; +$$ LANGUAGE plpgsql; + +create trigger migtest_e_history4_history_upd + before update or delete on migtest_e_history4 + for each row execute procedure migtest_e_history4_history_version(); + +create or replace function migtest_e_history5_history_version() returns trigger as $$ +declare + lowerTs timestamptz; + upperTs timestamptz; +begin + lowerTs = lower(OLD.sys_period); + upperTs = greatest(lowerTs + '1 microsecond',current_timestamp); + if (TG_OP = 'UPDATE') then + insert into migtest_e_history5_history (sys_period,id, test_number) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_number); + NEW.sys_period = tstzrange(upperTs,null); + return new; + elsif (TG_OP = 'DELETE') then + insert into migtest_e_history5_history (sys_period,id, test_number) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_number); + return old; + end if; +end; +$$ LANGUAGE plpgsql; + +create trigger migtest_e_history5_history_upd + before update or delete on migtest_e_history5 + for each row execute procedure migtest_e_history5_history_version(); + +create or replace function migtest_e_history6_history_version() returns trigger as $$ +declare + lowerTs timestamptz; + upperTs timestamptz; +begin + lowerTs = lower(OLD.sys_period); + upperTs = greatest(lowerTs + '1 microsecond',current_timestamp); + if (TG_OP = 'UPDATE') then + insert into migtest_e_history6_history (sys_period,id, test_number1, test_number2) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_number1, OLD.test_number2); + NEW.sys_period = tstzrange(upperTs,null); + return new; + elsif (TG_OP = 'DELETE') then + insert into migtest_e_history6_history (sys_period,id, test_number1, test_number2) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_number1, OLD.test_number2); + return old; + end if; +end; +$$ LANGUAGE plpgsql; + +create trigger migtest_e_history6_history_upd + before update or delete on migtest_e_history6 + for each row execute procedure migtest_e_history6_history_version(); + diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/postgres9/1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/postgres9/1.1.sql new file mode 100644 index 000000000..82fc83f2b --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/postgres9/1.1.sql @@ -0,0 +1,245 @@ +-- Migrationscripts for ebean unittest +-- drop dependencies +drop view if exists migtest_e_history2_with_history; +drop view if exists migtest_e_history3_with_history; +drop view if exists migtest_e_history4_with_history; +drop view if exists migtest_e_history5_with_history; + +-- apply changes +create table migtest_e_user ( + id serial not null, + 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) +); + +create table migtest_mtm_m_phone_numbers ( + migtest_mtm_m_id bigint not null, + value varchar(255) not null +); + +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; +alter table migtest_fk_none_via_join add constraint fk_migtest_fk_none_via_join_one_id foreign key (one_id) references migtest_fk_one (id) on delete restrict on update restrict; +alter table if exists migtest_fk_set_null drop constraint if exists fk_migtest_fk_set_null_one_id; +alter table migtest_fk_set_null add constraint fk_migtest_fk_set_null_one_id foreign key (one_id) references migtest_fk_one (id) on delete restrict on update restrict; + +update migtest_e_basic set status = 'A' where status is null; +alter table migtest_e_basic drop constraint if exists ck_migtest_e_basic_status; +alter table migtest_e_basic alter column status set default 'A'; +alter table migtest_e_basic alter column status set not null; +alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I','?')); +alter table migtest_e_basic drop constraint if exists ck_migtest_e_basic_status2; +alter table migtest_e_basic alter column status2 type varchar(127) using status2::varchar(127); +alter table migtest_e_basic alter column status2 drop default; +alter table migtest_e_basic alter column status2 drop not null; + +-- rename all collisions; +alter table migtest_e_basic add constraint uq_migtest_e_basic_description unique (description); + +insert into migtest_e_user (id) select distinct user_id from migtest_e_basic; +alter table migtest_e_basic add constraint fk_migtest_e_basic_user_id foreign key (user_id) references migtest_e_user (id) on delete restrict on update restrict; +alter table migtest_e_basic alter column user_id drop not null; +alter table migtest_e_basic add column new_string_field varchar(255) default 'foo''bar' not null; +alter table migtest_e_basic add column new_boolean_field boolean default true not null; +update migtest_e_basic set new_boolean_field = old_boolean; + +alter table migtest_e_basic add column new_boolean_field2 boolean default true not null; +alter table migtest_e_basic add column progress integer default 0 not null; +alter table migtest_e_basic add constraint ck_migtest_e_basic_progress check ( progress in (0,1,2)); +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); +alter table migtest_e_enum drop constraint if exists ck_migtest_e_enum_test_status; + +alter table migtest_e_history alter column test_string TYPE bigint USING (test_string::integer); +comment on column migtest_e_history.test_string is 'Column altered to long now'; +alter table migtest_e_history alter column test_string type bigint using test_string::bigint; +comment on table migtest_e_history is 'We have history now'; + +-- NOTE: table has @History - special migration may be necessary +update migtest_e_history2 set test_string = 'unknown' where test_string is null; +alter table migtest_e_history2 alter column test_string set default 'unknown'; +alter table migtest_e_history2 alter column test_string set not null; +alter table migtest_e_history2 add column test_string2 varchar(255); +alter table migtest_e_history2 add column test_string3 varchar(255) default 'unknown' not null; +alter table migtest_e_history2 add column new_column varchar(20); +alter table migtest_e_history2_history add column test_string2 varchar(255); +alter table migtest_e_history2_history add column test_string3 varchar(255) default 'unknown'; +alter table migtest_e_history2_history add column new_column varchar(20); + +alter table migtest_e_history4 alter column test_number type bigint using test_number::bigint; +alter table migtest_e_history4_history alter column test_number type bigint using test_number::bigint; +alter table migtest_e_history5 add column test_boolean boolean default false not null; +alter table migtest_e_history5_history add column test_boolean boolean default false; + + +-- NOTE: table has @History - special migration may be necessary +update migtest_e_history6 set test_number1 = 42 where test_number1 is null; +alter table migtest_e_history6 alter column test_number1 set default 42; +alter table migtest_e_history6 alter column test_number1 set not null; +alter table migtest_e_history6 alter column test_number2 drop not null; +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 if not exists ix_migtest_e_basic_indextest3 on migtest_e_basic (indextest3); +create index if not exists ix_migtest_e_basic_indextest6 on migtest_e_basic (indextest6); +create index if not exists ix_migtest_oto_child_name on migtest_oto_child (name); +drop index if exists ix_migtest_e_basic_indextest1; +drop index if exists ix_migtest_e_basic_indextest5; +drop index if exists idxd_migtest_0; +drop index concurrently if exists ix_migtest_oto_child_lowername_id; +drop index if exists ix_migtest_oto_child_lowername; +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_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_m on migtest_mtm_c_migtest_mtm_m (migtest_mtm_m_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_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_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_c on migtest_mtm_m_migtest_mtm_c (migtest_mtm_c_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_phone_numbers_migtest_mtm_m_id on migtest_mtm_m_phone_numbers (migtest_mtm_m_id); +alter table migtest_mtm_m_phone_numbers add constraint fk_migtest_mtm_m_phone_numbers_migtest_mtm_m_id foreign key (migtest_mtm_m_id) references migtest_mtm_m (id) on delete restrict on update restrict; + +create index ix_migtest_ckey_parent_assoc_id on migtest_ckey_parent (assoc_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; + +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; + +create view migtest_e_history2_with_history as select * from migtest_e_history2 union all select * from migtest_e_history2_history; + +create view migtest_e_history3_with_history as select * from migtest_e_history3 union all select * from migtest_e_history3_history; + +create view migtest_e_history4_with_history as select * from migtest_e_history4 union all select * from migtest_e_history4_history; + +create view migtest_e_history5_with_history as select * from migtest_e_history5 union all select * from migtest_e_history5_history; + +create or replace function migtest_e_history_history_version() returns trigger as $$ +declare + lowerTs timestamptz; + upperTs timestamptz; +begin + lowerTs = lower(OLD.sys_period); + upperTs = greatest(lowerTs + '1 microsecond',current_timestamp); + if (TG_OP = 'UPDATE') then + insert into migtest_e_history_history (sys_period,id, test_string) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_string); + NEW.sys_period = tstzrange(upperTs,null); + return new; + elsif (TG_OP = 'DELETE') then + insert into migtest_e_history_history (sys_period,id, test_string) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_string); + return old; + end if; +end; +$$ LANGUAGE plpgsql; + +create trigger migtest_e_history_history_upd + before update or delete on migtest_e_history + for each row execute procedure migtest_e_history_history_version(); + +-- changes: [add test_string2, add test_string3, add new_column] +create or replace function migtest_e_history2_history_version() returns trigger as $$ +declare + lowerTs timestamptz; + upperTs timestamptz; +begin + lowerTs = lower(OLD.sys_period); + upperTs = greatest(lowerTs + '1 microsecond',current_timestamp); + if (TG_OP = 'UPDATE') then + insert into migtest_e_history2_history (sys_period,id, test_string, test_string3, new_column, obsolete_string1, obsolete_string2) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_string, OLD.test_string3, OLD.new_column, OLD.obsolete_string1, OLD.obsolete_string2); + NEW.sys_period = tstzrange(upperTs,null); + return new; + elsif (TG_OP = 'DELETE') then + insert into migtest_e_history2_history (sys_period,id, test_string, test_string3, new_column, obsolete_string1, obsolete_string2) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_string, OLD.test_string3, OLD.new_column, OLD.obsolete_string1, OLD.obsolete_string2); + return old; + end if; +end; +$$ LANGUAGE plpgsql; + +-- changes: [exclude test_string] +create or replace function migtest_e_history3_history_version() returns trigger as $$ +declare + lowerTs timestamptz; + upperTs timestamptz; +begin + lowerTs = lower(OLD.sys_period); + upperTs = greatest(lowerTs + '1 microsecond',current_timestamp); + if (TG_OP = 'UPDATE') then + insert into migtest_e_history3_history (sys_period,id) values (tstzrange(lowerTs,upperTs), OLD.id); + NEW.sys_period = tstzrange(upperTs,null); + return new; + elsif (TG_OP = 'DELETE') then + insert into migtest_e_history3_history (sys_period,id) values (tstzrange(lowerTs,upperTs), OLD.id); + return old; + end if; +end; +$$ LANGUAGE plpgsql; + +-- changes: [alter test_number] +create or replace function migtest_e_history4_history_version() returns trigger as $$ +declare + lowerTs timestamptz; + upperTs timestamptz; +begin + lowerTs = lower(OLD.sys_period); + upperTs = greatest(lowerTs + '1 microsecond',current_timestamp); + if (TG_OP = 'UPDATE') then + insert into migtest_e_history4_history (sys_period,id, test_number) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_number); + NEW.sys_period = tstzrange(upperTs,null); + return new; + elsif (TG_OP = 'DELETE') then + insert into migtest_e_history4_history (sys_period,id, test_number) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_number); + return old; + end if; +end; +$$ LANGUAGE plpgsql; + +-- changes: [add test_boolean] +create or replace function migtest_e_history5_history_version() returns trigger as $$ +declare + lowerTs timestamptz; + upperTs timestamptz; +begin + lowerTs = lower(OLD.sys_period); + upperTs = greatest(lowerTs + '1 microsecond',current_timestamp); + if (TG_OP = 'UPDATE') then + insert into migtest_e_history5_history (sys_period,id, test_number, test_boolean) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_number, OLD.test_boolean); + NEW.sys_period = tstzrange(upperTs,null); + return new; + elsif (TG_OP = 'DELETE') then + insert into migtest_e_history5_history (sys_period,id, test_number, test_boolean) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_number, OLD.test_boolean); + return old; + end if; +end; +$$ LANGUAGE plpgsql; + diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/postgres9/1.2__dropsFor_1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/postgres9/1.2__dropsFor_1.1.sql new file mode 100644 index 000000000..c9a6d03e6 --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/postgres9/1.2__dropsFor_1.1.sql @@ -0,0 +1,40 @@ +-- Migrationscripts for ebean unittest +-- drop dependencies +drop view if exists migtest_e_history2_with_history; + +-- apply changes +alter table migtest_e_basic drop column old_boolean; + +alter table migtest_e_basic drop column old_boolean2; + +alter table migtest_e_basic drop column eref_id; + +alter table migtest_e_history2 drop column obsolete_string1; +alter table migtest_e_history2_history drop column obsolete_string1; + +alter table migtest_e_history2 drop column obsolete_string2; +alter table migtest_e_history2_history drop column obsolete_string2; + +drop table if exists migtest_e_ref cascade; +drop sequence if exists migtest_e_ref_seq; +create view migtest_e_history2_with_history as select * from migtest_e_history2 union all select * from migtest_e_history2_history; + +-- changes: [drop obsolete_string1, drop obsolete_string2] +create or replace function migtest_e_history2_history_version() returns trigger as $$ +declare + lowerTs timestamptz; + upperTs timestamptz; +begin + lowerTs = lower(OLD.sys_period); + upperTs = greatest(lowerTs + '1 microsecond',current_timestamp); + if (TG_OP = 'UPDATE') then + insert into migtest_e_history2_history (sys_period,id, test_string, test_string3, new_column) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_string, OLD.test_string3, OLD.new_column); + NEW.sys_period = tstzrange(upperTs,null); + return new; + elsif (TG_OP = 'DELETE') then + insert into migtest_e_history2_history (sys_period,id, test_string, test_string3, new_column) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_string, OLD.test_string3, OLD.new_column); + return old; + end if; +end; +$$ LANGUAGE plpgsql; + diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/postgres9/1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/postgres9/1.3.sql new file mode 100644 index 000000000..b6e8c3a34 --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/postgres9/1.3.sql @@ -0,0 +1,141 @@ +-- Migrationscripts for ebean unittest +-- drop dependencies +drop view if exists migtest_e_history2_with_history; +drop view if exists migtest_e_history3_with_history; +drop view if exists migtest_e_history4_with_history; + +-- 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 restrict; +alter table if exists migtest_fk_none drop constraint if exists fk_migtest_fk_none_one_id; +alter table if exists migtest_fk_none_via_join drop constraint if exists fk_migtest_fk_none_via_join_one_id; +alter table if exists migtest_fk_set_null drop constraint if exists fk_migtest_fk_set_null_one_id; +alter table migtest_fk_set_null add constraint fk_migtest_fk_set_null_one_id foreign key (one_id) references migtest_fk_one (id) on delete set null on update restrict; +alter table migtest_e_basic drop constraint if exists ck_migtest_e_basic_status; +alter table migtest_e_basic alter column status drop default; +alter table migtest_e_basic alter column status drop not null; +alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I')); + +update migtest_e_basic set status2 = 'N' where status2 is null; +alter table migtest_e_basic drop constraint if exists ck_migtest_e_basic_status2; +alter table migtest_e_basic alter column status2 type varchar(1) using status2::varchar(1); +alter table migtest_e_basic alter column status2 set default 'N'; +alter table migtest_e_basic alter column status2 set not null; +alter table migtest_e_basic add constraint ck_migtest_e_basic_status2 check ( status2 in ('N','A','I')); +alter table migtest_e_basic drop constraint uq_migtest_e_basic_description; + +update migtest_e_basic set user_id = 23 where user_id is null; +alter table if exists migtest_e_basic drop constraint if exists fk_migtest_e_basic_user_id; +alter table migtest_e_basic alter column user_id set default 23; +alter table migtest_e_basic alter column user_id set not null; +alter table migtest_e_basic add column old_boolean boolean default false not null; +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; +alter table migtest_e_basic add constraint uq_migtest_e_basic_indextest2 unique (indextest2); +alter table migtest_e_basic add constraint uq_migtest_e_basic_indextest6 unique (indextest6); +alter table migtest_e_enum drop constraint if exists ck_migtest_e_enum_test_status; +alter table migtest_e_enum add constraint ck_migtest_e_enum_test_status check ( test_status in ('N','A','I')); +comment on column migtest_e_history.test_string is ''; +comment on table migtest_e_history is ''; +alter table migtest_e_history2 alter column test_string drop default; +alter table migtest_e_history2 alter column test_string drop not null; +alter table migtest_e_history2 add column obsolete_string1 varchar(255); +alter table migtest_e_history2 add column obsolete_string2 varchar(255); +alter table migtest_e_history2_history add column obsolete_string1 varchar(255); +alter table migtest_e_history2_history add column obsolete_string2 varchar(255); + +alter table migtest_e_history4 alter column test_number type integer using test_number::integer; +alter table migtest_e_history4_history alter column test_number type integer using test_number::integer; +alter table migtest_e_history6 alter column test_number1 drop default; +alter table migtest_e_history6 alter column test_number1 drop not null; + +-- NOTE: table has @History - special migration may be necessary +update migtest_e_history6 set test_number2 = 7 where test_number2 is null; +alter table migtest_e_history6 alter column test_number2 set default 7; +alter table migtest_e_history6 alter column test_number2 set not null; +create index if not exists ix_migtest_e_basic_indextest1 on migtest_e_basic (indextest1); +create index if not exists ix_migtest_e_basic_indextest5 on migtest_e_basic (indextest5); +create index if not exists ix_m12_otoc71 on migtest_oto_child (name); +create unique index if not exists uq_m12_otoc71 on migtest_oto_child (lower(name)); +create unique index if not exists ix_migtest_oto_master_lowername on migtest_oto_master (lower(name)); +drop index if exists ix_migtest_e_basic_indextest3; +drop index if exists ix_migtest_e_basic_indextest6; +create index ix_migtest_e_basic_eref_id on migtest_e_basic (eref_id); +alter table migtest_e_basic add constraint fk_migtest_e_basic_eref_id foreign key (eref_id) references migtest_e_ref (id) on delete restrict on update restrict; + +create view migtest_e_history2_with_history as select * from migtest_e_history2 union all select * from migtest_e_history2_history; + +create view migtest_e_history3_with_history as select * from migtest_e_history3 union all select * from migtest_e_history3_history; + +create view migtest_e_history4_with_history as select * from migtest_e_history4 union all select * from migtest_e_history4_history; + +-- changes: [add obsolete_string1, add obsolete_string2] +create or replace function migtest_e_history2_history_version() returns trigger as $$ +declare + lowerTs timestamptz; + upperTs timestamptz; +begin + lowerTs = lower(OLD.sys_period); + upperTs = greatest(lowerTs + '1 microsecond',current_timestamp); + if (TG_OP = 'UPDATE') then + insert into migtest_e_history2_history (sys_period,id, test_string, obsolete_string2, test_string2, test_string3, new_column) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_string, OLD.obsolete_string2, OLD.test_string2, OLD.test_string3, OLD.new_column); + NEW.sys_period = tstzrange(upperTs,null); + return new; + elsif (TG_OP = 'DELETE') then + insert into migtest_e_history2_history (sys_period,id, test_string, obsolete_string2, test_string2, test_string3, new_column) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_string, OLD.obsolete_string2, OLD.test_string2, OLD.test_string3, OLD.new_column); + return old; + end if; +end; +$$ LANGUAGE plpgsql; + +-- changes: [include test_string] +create or replace function migtest_e_history3_history_version() returns trigger as $$ +declare + lowerTs timestamptz; + upperTs timestamptz; +begin + lowerTs = lower(OLD.sys_period); + upperTs = greatest(lowerTs + '1 microsecond',current_timestamp); + if (TG_OP = 'UPDATE') then + insert into migtest_e_history3_history (sys_period,id, test_string) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_string); + NEW.sys_period = tstzrange(upperTs,null); + return new; + elsif (TG_OP = 'DELETE') then + insert into migtest_e_history3_history (sys_period,id, test_string) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_string); + return old; + end if; +end; +$$ LANGUAGE plpgsql; + +-- changes: [alter test_number] +create or replace function migtest_e_history4_history_version() returns trigger as $$ +declare + lowerTs timestamptz; + upperTs timestamptz; +begin + lowerTs = lower(OLD.sys_period); + upperTs = greatest(lowerTs + '1 microsecond',current_timestamp); + if (TG_OP = 'UPDATE') then + insert into migtest_e_history4_history (sys_period,id, test_number) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_number); + NEW.sys_period = tstzrange(upperTs,null); + return new; + elsif (TG_OP = 'DELETE') then + insert into migtest_e_history4_history (sys_period,id, test_number) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_number); + return old; + end if; +end; +$$ LANGUAGE plpgsql; + diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/postgres9/1.4__dropsFor_1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/postgres9/1.4__dropsFor_1.3.sql new file mode 100644 index 000000000..4524d4a40 --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/postgres9/1.4__dropsFor_1.3.sql @@ -0,0 +1,92 @@ +-- Migrationscripts for ebean unittest +-- drop dependencies +drop trigger if exists migtest_e_history_history_upd on migtest_e_history cascade; +drop function if exists migtest_e_history_history_version(); + +drop view migtest_e_history_with_history; +alter table migtest_e_history drop column sys_period; +drop table migtest_e_history_history; + +drop view if exists migtest_e_history2_with_history; +drop view if exists migtest_e_history5_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; + +alter table migtest_e_basic drop column new_boolean_field2; + +alter table migtest_e_basic drop column progress; + +alter table migtest_e_basic drop column new_integer; + +alter table migtest_e_history2 drop column test_string2; +alter table migtest_e_history2_history drop column test_string2; + +alter table migtest_e_history2 drop column test_string3; +alter table migtest_e_history2_history drop column test_string3; + +alter table migtest_e_history2 drop column new_column; +alter table migtest_e_history2_history drop column new_column; + +alter table migtest_e_history5 drop column test_boolean; +alter table migtest_e_history5_history drop column test_boolean; + +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; +drop table if exists migtest_mtm_m_phone_numbers cascade; +create view migtest_e_history2_with_history as select * from migtest_e_history2 union all select * from migtest_e_history2_history; + +create view migtest_e_history5_with_history as select * from migtest_e_history5 union all select * from migtest_e_history5_history; + +-- changes: [drop test_string2, drop test_string3, drop new_column] +create or replace function migtest_e_history2_history_version() returns trigger as $$ +declare + lowerTs timestamptz; + upperTs timestamptz; +begin + lowerTs = lower(OLD.sys_period); + upperTs = greatest(lowerTs + '1 microsecond',current_timestamp); + if (TG_OP = 'UPDATE') then + insert into migtest_e_history2_history (sys_period,id, test_string, obsolete_string2) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_string, OLD.obsolete_string2); + NEW.sys_period = tstzrange(upperTs,null); + return new; + elsif (TG_OP = 'DELETE') then + insert into migtest_e_history2_history (sys_period,id, test_string, obsolete_string2) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_string, OLD.obsolete_string2); + return old; + end if; +end; +$$ LANGUAGE plpgsql; + +-- changes: [drop test_boolean] +create or replace function migtest_e_history5_history_version() returns trigger as $$ +declare + lowerTs timestamptz; + upperTs timestamptz; +begin + lowerTs = lower(OLD.sys_period); + upperTs = greatest(lowerTs + '1 microsecond',current_timestamp); + if (TG_OP = 'UPDATE') then + insert into migtest_e_history5_history (sys_period,id, test_number) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_number); + NEW.sys_period = tstzrange(upperTs,null); + return new; + elsif (TG_OP = 'DELETE') then + insert into migtest_e_history5_history (sys_period,id, test_number) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_number); + return old; + end if; +end; +$$ LANGUAGE plpgsql; + diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/postgres9/R__multi_comments.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/postgres9/R__multi_comments.sql new file mode 100644 index 000000000..0ede0c9eb --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/postgres9/R__multi_comments.sql @@ -0,0 +1,3 @@ + + -- h2 and postgres script + \ No newline at end of file diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/postgres9/R__order_views.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/postgres9/R__order_views.sql new file mode 100644 index 000000000..ccf30a2c6 --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/postgres9/R__order_views.sql @@ -0,0 +1,7 @@ + + create or replace view order_agg_vw as + select d.order_id, sum(d.order_qty * d.unit_price) as order_total, + sum(d.ship_qty * d.unit_price) as ship_total + from o_order_detail d + group by d.order_id + \ No newline at end of file diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/postgres9/R__pg_indexes.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/postgres9/R__pg_indexes.sql new file mode 100644 index 000000000..fa0bab998 --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/postgres9/R__pg_indexes.sql @@ -0,0 +1,4 @@ + + -- postgres specific indexes + create index ix_ebasic_jmjb_gin2 on ebasic_json_map_json_b using gin(content jsonb_path_ops); + \ No newline at end of file diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/postgres9/idx_postgres.migrations b/ebean-test/src/test/resources/migrationtest/dbmigration/postgres9/idx_postgres.migrations new file mode 100644 index 000000000..370c64f13 --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/postgres9/idx_postgres.migrations @@ -0,0 +1,9 @@ +1428934272, 1.0__initial.sql +1253246780, 1.1.sql +-1861367028, 1.2__dropsFor_1.1.sql +326342179, 1.3.sql +-1991941691, 1.4__dropsFor_1.3.sql +783227075, R__multi_comments.sql +561281075, R__order_views.sql +283077354, R__pg_indexes.sql + diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/1.0__initial.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/1.0__initial.sql new file mode 100644 index 000000000..72cd2daf4 --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/1.0__initial.sql @@ -0,0 +1,199 @@ +-- Migrationscripts for ebean unittest +-- apply changes +create table migtest_ckey_assoc ( + id integer identity(1,1) not null, + assoc_one varchar(255), + constraint pk_migtest_ckey_assoc primary key (id) +); + +create table migtest_ckey_detail ( + id integer identity(1,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 numeric(19) identity(1,1) not null, + one_id numeric(19), + constraint pk_migtest_fk_cascade primary key (id) +); + +create table migtest_fk_cascade_one ( + id numeric(19) identity(1,1) not null, + constraint pk_migtest_fk_cascade_one primary key (id) +); + +create table migtest_fk_none ( + id numeric(19) identity(1,1) not null, + one_id numeric(19), + constraint pk_migtest_fk_none primary key (id) +); + +create table migtest_fk_none_via_join ( + id numeric(19) identity(1,1) not null, + one_id numeric(19), + constraint pk_migtest_fk_none_via_join primary key (id) +); + +create table migtest_fk_one ( + id numeric(19) identity(1,1) not null, + constraint pk_migtest_fk_one primary key (id) +); + +create table migtest_fk_set_null ( + id numeric(19) identity(1,1) not null, + one_id numeric(19), + constraint pk_migtest_fk_set_null primary key (id) +); + +create table migtest_e_basic ( + id integer identity(1,1) not null, + status varchar(1), + status2 varchar(1) default 'N' not null, + name varchar(127), + description varchar(127), + some_date datetime2, + old_boolean bit default 0 not null, + old_boolean2 bit, + eref_id integer, + indextest1 varchar(127), + indextest2 varchar(127), + indextest3 varchar(127), + indextest4 varchar(127), + indextest5 varchar(127), + indextest6 varchar(127), + user_id integer not null, + constraint ck_migtest_e_basic_status check ( status in ('N','A','I')), + constraint ck_migtest_e_basic_status2 check ( status2 in ('N','A','I')), + constraint pk_migtest_e_basic primary key (id) +); +create unique nonclustered index uq_migtest_e_basic_indextest2 on migtest_e_basic(indextest2) where indextest2 is not null; +create unique nonclustered index uq_migtest_e_basic_indextest6 on migtest_e_basic(indextest6) where indextest6 is not null; + +create table migtest_e_enum ( + id integer identity(1,1) not null, + test_status varchar(1), + constraint ck_migtest_e_enum_test_status check ( test_status in ('N','A','I')), + constraint pk_migtest_e_enum primary key (id) +); + +create table migtest_e_history ( + id integer identity(1,1) not null, + test_string varchar(255), + constraint pk_migtest_e_history primary key (id) +); + +create table migtest_e_history2 ( + id integer identity(1,1) not null, + test_string varchar(255), + obsolete_string1 varchar(255), + obsolete_string2 varchar(255), + constraint pk_migtest_e_history2 primary key (id) +); + +create table migtest_e_history3 ( + id integer identity(1,1) not null, + test_string varchar(255), + constraint pk_migtest_e_history3 primary key (id) +); + +create table migtest_e_history4 ( + id integer identity(1,1) not null, + test_number integer, + constraint pk_migtest_e_history4 primary key (id) +); + +create table migtest_e_history5 ( + id integer identity(1,1) not null, + test_number integer, + constraint pk_migtest_e_history5 primary key (id) +); + +create table migtest_e_history6 ( + id integer identity(1,1) not null, + test_number1 integer, + test_number2 integer not null, + constraint pk_migtest_e_history6 primary key (id) +); + +create table migtest_e_ref ( + id integer identity(1,1) 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 identity(1,1) not null, + test_string varchar(255), + constraint pk_migtest_e_softdelete primary key (id) +); + +create table migtest_mtm_c ( + id integer identity(1,1) not null, + name varchar(255), + constraint pk_migtest_mtm_c primary key (id) +); + +create table migtest_mtm_m ( + id numeric(19) identity(1,1) not null, + name varchar(255), + constraint pk_migtest_mtm_m primary key (id) +); + +create table migtest_oto_child ( + id integer identity(1,1) not null, + name varchar(255), + constraint pk_migtest_oto_child primary key (id) +); + +create table migtest_oto_master ( + id numeric(19) identity(1,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); +create index ix_migtest_fk_cascade_one_id on 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; + +create index ix_migtest_fk_set_null_one_id on migtest_fk_set_null (one_id); +alter table migtest_fk_set_null add constraint fk_migtest_fk_set_null_one_id foreign key (one_id) references migtest_fk_one (id) on delete set null; + +create index ix_migtest_e_basic_eref_id on migtest_e_basic (eref_id); +alter table migtest_e_basic add constraint fk_migtest_e_basic_eref_id foreign key (eref_id) references migtest_e_ref (id); + +alter table migtest_e_history2 + 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', +period for system_time (sys_periodFrom, sys_periodTo); +alter table migtest_e_history2 set (system_versioning = on (history_table=dbo.migtest_e_history2_history)); +alter table migtest_e_history3 + 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', +period for system_time (sys_periodFrom, sys_periodTo); +alter table migtest_e_history3 set (system_versioning = on (history_table=dbo.migtest_e_history3_history)); +alter table migtest_e_history4 + 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', +period for system_time (sys_periodFrom, sys_periodTo); +alter table migtest_e_history4 set (system_versioning = on (history_table=dbo.migtest_e_history4_history)); +alter table migtest_e_history5 + 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', +period for system_time (sys_periodFrom, sys_periodTo); +alter table migtest_e_history5 set (system_versioning = on (history_table=dbo.migtest_e_history5_history)); +alter table migtest_e_history6 + 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', +period for system_time (sys_periodFrom, sys_periodTo); +alter table migtest_e_history6 set (system_versioning = on (history_table=dbo.migtest_e_history6_history)); diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/1.1.sql new file mode 100644 index 000000000..51c12789a --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/1.1.sql @@ -0,0 +1,125 @@ +-- Migrationscripts for ebean unittest +-- apply changes +create table migtest_e_user ( + id integer identity(1,1) not null, + 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 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) +); + +create table migtest_mtm_m_phone_numbers ( + migtest_mtm_m_id numeric(19) not null, + value varchar(255) not null +); + +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); +alter table migtest_fk_none_via_join add constraint fk_migtest_fk_none_via_join_one_id foreign key (one_id) references migtest_fk_one (id); +IF OBJECT_ID('fk_migtest_fk_set_null_one_id', 'F') IS NOT NULL alter table migtest_fk_set_null drop constraint fk_migtest_fk_set_null_one_id; +alter table migtest_fk_set_null add constraint fk_migtest_fk_set_null_one_id foreign key (one_id) references migtest_fk_one (id); + +update migtest_e_basic set status = 'A' where status is null; +IF (OBJECT_ID('ck_migtest_e_basic_status', 'C') IS NOT NULL) alter table migtest_e_basic drop constraint ck_migtest_e_basic_status; +alter table migtest_e_basic add default 'A' for status; +alter table migtest_e_basic alter column status varchar(1) not null; +alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I','?')); +IF (OBJECT_ID('ck_migtest_e_basic_status2', 'C') IS NOT NULL) alter table migtest_e_basic drop constraint ck_migtest_e_basic_status2; +EXEC usp_ebean_drop_default_constraint migtest_e_basic, status2; +alter table migtest_e_basic alter column status2 varchar(127); + +-- rename all collisions; +create unique nonclustered index uq_migtest_e_basic_description on migtest_e_basic(description) where description is not null; + +insert into migtest_e_user (id) select distinct user_id from migtest_e_basic; +alter table migtest_e_basic add constraint fk_migtest_e_basic_user_id foreign key (user_id) references migtest_e_user (id); +alter table migtest_e_basic alter column user_id integer; +alter table migtest_e_basic add new_string_field varchar(255) default 'foo''bar' not null; +alter table migtest_e_basic add new_boolean_field bit default 1 not null; +update migtest_e_basic set new_boolean_field = old_boolean; + +alter table migtest_e_basic add new_boolean_field2 bit default 1 not null; +alter table migtest_e_basic add progress integer default 0 not null; +alter table migtest_e_basic add constraint ck_migtest_e_basic_progress check ( progress in (0,1,2)); +alter table migtest_e_basic add new_integer integer default 42 not null; + +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_indextest2', 'UQ') IS NOT NULL) alter table migtest_e_basic drop constraint uq_migtest_e_basic_indextest2; +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; +IF (OBJECT_ID('uq_migtest_e_basic_indextest6', 'UQ') IS NOT NULL) alter table migtest_e_basic drop constraint uq_migtest_e_basic_indextest6; +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; +IF (OBJECT_ID('ck_migtest_e_enum_test_status', 'C') IS NOT NULL) alter table migtest_e_enum drop constraint ck_migtest_e_enum_test_status; +alter table migtest_e_history alter column test_string numeric(19); + +-- NOTE: table has @History - special migration may be necessary +update migtest_e_history2 set test_string = 'unknown' where test_string is null; +alter table migtest_e_history2 add default 'unknown' for test_string; +alter table migtest_e_history2 alter column test_string varchar(255) not null; +alter table migtest_e_history2 add test_string2 varchar(255); +alter table migtest_e_history2 add test_string3 varchar(255) default 'unknown' not null; +alter table migtest_e_history2 add new_column varchar(20); + +alter table migtest_e_history4 alter column test_number numeric(19); +alter table migtest_e_history5 add test_boolean bit default 0 not null; + + +-- NOTE: table has @History - special migration may be necessary +update migtest_e_history6 set test_number1 = 42 where test_number1 is null; +alter table migtest_e_history6 add default 42 for test_number1; +alter table migtest_e_history6 alter column test_number1 integer not null; +alter table migtest_e_history6 alter column test_number2 integer; +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; +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_c foreign key (migtest_mtm_c_id) references migtest_mtm_c (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_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_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_m foreign key (migtest_mtm_m_id) references migtest_mtm_m (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_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_phone_numbers_migtest_mtm_m_id on migtest_mtm_m_phone_numbers (migtest_mtm_m_id); +alter table migtest_mtm_m_phone_numbers add constraint fk_migtest_mtm_m_phone_numbers_migtest_mtm_m_id foreign key (migtest_mtm_m_id) references migtest_mtm_m (id); + +create index ix_migtest_ckey_parent_assoc_id on migtest_ckey_parent (assoc_id); +alter table migtest_ckey_parent add constraint fk_migtest_ckey_parent_assoc_id foreign key (assoc_id) references migtest_ckey_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', +period for system_time (sys_periodFrom, sys_periodTo); +alter table migtest_e_history set (system_versioning = on (history_table=dbo.migtest_e_history_history)); +-- alter table migtest_e_history3 set (system_versioning = off (history_table=dbo.migtest_e_history3_history)); +-- history migration goes here +-- alter table migtest_e_history3 set (system_versioning = on (history_table=dbo.migtest_e_history3_history)); diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver/1.2__dropsFor_1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/1.2__dropsFor_1.1.sql similarity index 100% rename from ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver/1.2__dropsFor_1.1.sql rename to ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/1.2__dropsFor_1.1.sql diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/1.3.sql new file mode 100644 index 000000000..9a143282f --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/1.3.sql @@ -0,0 +1,72 @@ +-- Migrationscripts for ebean unittest +-- apply changes +create table migtest_e_ref ( + id integer identity(1,1) 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); + +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; +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; +IF OBJECT_ID('fk_migtest_fk_none_via_join_one_id', 'F') IS NOT NULL alter table migtest_fk_none_via_join drop constraint fk_migtest_fk_none_via_join_one_id; +IF OBJECT_ID('fk_migtest_fk_set_null_one_id', 'F') IS NOT NULL alter table migtest_fk_set_null drop constraint fk_migtest_fk_set_null_one_id; +alter table migtest_fk_set_null add constraint fk_migtest_fk_set_null_one_id foreign key (one_id) references migtest_fk_one (id) on delete set null; +IF (OBJECT_ID('ck_migtest_e_basic_status', 'C') IS NOT NULL) alter table migtest_e_basic drop constraint ck_migtest_e_basic_status; +EXEC usp_ebean_drop_default_constraint migtest_e_basic, status; +alter table migtest_e_basic alter column status varchar(1); +alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I')); + +update migtest_e_basic set status2 = 'N' where status2 is null; +IF (OBJECT_ID('ck_migtest_e_basic_status2', 'C') IS NOT NULL) alter table migtest_e_basic drop constraint ck_migtest_e_basic_status2; +alter table migtest_e_basic add default 'N' for status2; +alter table migtest_e_basic alter column status2 varchar(1) not null; +alter table migtest_e_basic add constraint ck_migtest_e_basic_status2 check ( status2 in ('N','A','I')); +IF EXISTS (SELECT name FROM sys.indexes WHERE object_id = OBJECT_ID('migtest_e_basic','U') AND name = 'uq_migtest_e_basic_description') drop index uq_migtest_e_basic_description ON migtest_e_basic; +IF (OBJECT_ID('uq_migtest_e_basic_description', 'UQ') IS NOT NULL) alter table migtest_e_basic drop constraint uq_migtest_e_basic_description; + +update migtest_e_basic set user_id = 23 where user_id is null; +IF OBJECT_ID('fk_migtest_e_basic_user_id', 'F') IS NOT NULL alter table migtest_e_basic drop constraint fk_migtest_e_basic_user_id; +alter table migtest_e_basic add default 23 for user_id; +alter table migtest_e_basic alter column user_id integer not null; +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 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_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_name') drop index uq_migtest_e_basic_name 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_indextest4') drop index uq_migtest_e_basic_indextest4 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; +IF EXISTS (SELECT name FROM sys.indexes WHERE object_id = OBJECT_ID('migtest_e_basic','U') AND name = 'uq_migtest_e_basic_indextest5') drop index uq_migtest_e_basic_indextest5 ON migtest_e_basic; +IF (OBJECT_ID('uq_migtest_e_basic_indextest5', 'UQ') IS NOT NULL) alter table migtest_e_basic drop constraint uq_migtest_e_basic_indextest5; +create unique nonclustered index uq_migtest_e_basic_indextest2 on migtest_e_basic(indextest2) where indextest2 is not null; +create unique nonclustered index uq_migtest_e_basic_indextest6 on migtest_e_basic(indextest6) where indextest6 is not null; +IF (OBJECT_ID('ck_migtest_e_enum_test_status', 'C') IS NOT NULL) alter table migtest_e_enum drop constraint ck_migtest_e_enum_test_status; +alter table migtest_e_enum add constraint ck_migtest_e_enum_test_status check ( test_status in ('N','A','I')); +EXEC usp_ebean_drop_default_constraint migtest_e_history2, test_string; +alter table migtest_e_history2 alter column test_string varchar(255); +alter table migtest_e_history2 add obsolete_string1 varchar(255); +alter table migtest_e_history2 add obsolete_string2 varchar(255); + +alter table migtest_e_history4 alter column test_number integer; +EXEC usp_ebean_drop_default_constraint migtest_e_history6, test_number1; +alter table migtest_e_history6 alter column test_number1 integer; + +-- NOTE: table has @History - special migration may be necessary +update migtest_e_history6 set test_number2 = 7 where test_number2 is null; +alter table migtest_e_history6 add default 7 for test_number2; +alter table migtest_e_history6 alter column test_number2 integer not null; +create index ix_migtest_e_basic_indextest1 on migtest_e_basic (indextest1); +create index ix_migtest_e_basic_indextest5 on migtest_e_basic (indextest5); +IF EXISTS (SELECT name FROM sys.indexes WHERE object_id = OBJECT_ID('migtest_e_basic','U') AND name = 'ix_migtest_e_basic_indextest3') drop index ix_migtest_e_basic_indextest3 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_indextest6') drop index ix_migtest_e_basic_indextest6 ON migtest_e_basic; +create index ix_migtest_e_basic_eref_id on migtest_e_basic (eref_id); +alter table migtest_e_basic add constraint fk_migtest_e_basic_eref_id foreign key (eref_id) references migtest_e_ref (id); + +-- alter table migtest_e_history3 set (system_versioning = off (history_table=dbo.migtest_e_history3_history)); +-- history migration goes here +-- alter table migtest_e_history3 set (system_versioning = on (history_table=dbo.migtest_e_history3_history)); diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver/1.4__dropsFor_1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/1.4__dropsFor_1.3.sql similarity index 100% rename from ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver/1.4__dropsFor_1.3.sql rename to ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/1.4__dropsFor_1.3.sql diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver/I__create_procs.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/I__create_procs.sql similarity index 100% rename from ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver/I__create_procs.sql rename to ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/I__create_procs.sql diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver/R__order_views_mssql.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/R__order_views_mssql.sql similarity index 100% rename from ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver/R__order_views_mssql.sql rename to ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/R__order_views_mssql.sql diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/idx_sqlserver.migrations b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/idx_sqlserver.migrations new file mode 100644 index 000000000..00693e947 --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/idx_sqlserver.migrations @@ -0,0 +1,8 @@ +-2122378240, I__create_procs.sql +802205012, 1.0__initial.sql +-1042228916, 1.1.sql +-1805601919, 1.2__dropsFor_1.1.sql +-807119885, 1.3.sql +-1335541264, 1.4__dropsFor_1.3.sql +1607822082, R__order_views_mssql.sql + diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver/1.0__initial.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/1.0__initial.sql similarity index 100% rename from ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver/1.0__initial.sql rename to ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/1.0__initial.sql diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver/1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/1.1.sql similarity index 100% rename from ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver/1.1.sql rename to ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/1.1.sql diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/1.2__dropsFor_1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/1.2__dropsFor_1.1.sql new file mode 100644 index 000000000..b34091486 --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/1.2__dropsFor_1.1.sql @@ -0,0 +1,14 @@ +-- Migrationscripts for ebean unittest +-- apply changes +EXEC usp_ebean_drop_column migtest_e_basic, old_boolean; + +EXEC usp_ebean_drop_column migtest_e_basic, old_boolean2; + +EXEC usp_ebean_drop_column migtest_e_basic, eref_id; + +EXEC usp_ebean_drop_column migtest_e_history2, obsolete_string1; + +EXEC usp_ebean_drop_column migtest_e_history2, obsolete_string2; + +IF OBJECT_ID('migtest_e_ref', 'U') IS NOT NULL drop table migtest_e_ref; +IF OBJECT_ID('migtest_e_ref_seq', 'SO') IS NOT NULL drop sequence migtest_e_ref_seq; diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver/1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/1.3.sql similarity index 100% rename from ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver/1.3.sql rename to ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/1.3.sql diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/1.4__dropsFor_1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/1.4__dropsFor_1.3.sql new file mode 100644 index 000000000..3f465ec78 --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/1.4__dropsFor_1.3.sql @@ -0,0 +1,44 @@ +-- Migrationscripts for ebean unittest +-- apply changes +EXEC usp_ebean_drop_column migtest_ckey_detail, one_key; + +EXEC usp_ebean_drop_column migtest_ckey_detail, two_key; + +EXEC usp_ebean_drop_column migtest_ckey_parent, assoc_id; + +EXEC usp_ebean_drop_column migtest_e_basic, new_string_field; + +EXEC usp_ebean_drop_column migtest_e_basic, new_boolean_field; + +EXEC usp_ebean_drop_column migtest_e_basic, new_boolean_field2; + +EXEC usp_ebean_drop_column migtest_e_basic, progress; + +EXEC usp_ebean_drop_column migtest_e_basic, new_integer; + +EXEC usp_ebean_drop_column migtest_e_history2, test_string2; + +EXEC usp_ebean_drop_column migtest_e_history2, test_string3; + +EXEC usp_ebean_drop_column migtest_e_history2, new_column; + +EXEC usp_ebean_drop_column migtest_e_history5, test_boolean; + +EXEC usp_ebean_drop_column migtest_e_softdelete, deleted; + +EXEC usp_ebean_drop_column migtest_oto_child, 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; +IF OBJECT_ID('migtest_mtm_m_phone_numbers', 'U') IS NOT NULL drop table migtest_mtm_m_phone_numbers; +-- dropping history support for migtest_e_history; +EXEC usp_ebean_drop_default_constraint migtest_e_history, sys_periodFrom; +EXEC usp_ebean_drop_default_constraint migtest_e_history, sys_periodTo; +alter table migtest_e_history set (system_versioning = off); +alter table migtest_e_history drop period for system_time; +alter table migtest_e_history drop column sys_periodFrom; +alter table migtest_e_history drop column sys_periodTo; +IF OBJECT_ID('migtest_e_history_history', 'U') IS NOT NULL drop table migtest_e_history_history; + diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/I__create_procs.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/I__create_procs.sql new file mode 100644 index 000000000..6f916bcc9 --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/I__create_procs.sql @@ -0,0 +1,110 @@ +-- Initial script to create stored procedures etc for sqlserver platform + +-- create table-value-parameters +if not exists (select name from sys.types where name = 'ebean_bigint_tvp') create type ebean_bigint_tvp as table (c1 bigint) +GO +if not exists (select name from sys.types where name = 'ebean_float_tvp') create type ebean_float_tvp as table (c1 float) +GO +if not exists (select name from sys.types where name = 'ebean_bit_tvp') create type ebean_bit_tvp as table (c1 bit) +GO +if not exists (select name from sys.types where name = 'ebean_date_tvp') create type ebean_date_tvp as table (c1 date) +GO +if not exists (select name from sys.types where name = 'ebean_time_tvp') create type ebean_time_tvp as table (c1 time) +GO +if not exists (select name from sys.types where name = 'ebean_uniqueidentifier_tvp') create type ebean_uniqueidentifier_tvp as table (c1 uniqueidentifier) +GO +if not exists (select name from sys.types where name = 'ebean_nvarchar_tvp') create type ebean_nvarchar_tvp as table (c1 nvarchar(max)) +GO + +-- +-- PROCEDURE: usp_ebean_drop_indices TABLE, COLUMN +-- deletes all indices referring to TABLE.COLUMN +-- +CREATE OR ALTER PROCEDURE usp_ebean_drop_indices @tableName nvarchar(255), @columnName nvarchar(255) +AS SET NOCOUNT ON +declare @sql nvarchar(1000) +declare @indexName nvarchar(255) +BEGIN + DECLARE index_cursor CURSOR FOR SELECT i.name from sys.indexes i + join sys.index_columns ic on ic.object_id = i.object_id and ic.index_id = i.index_id + join sys.columns c on c.object_id = ic.object_id and c.column_id = ic.column_id + where i.object_id = OBJECT_ID(@tableName) AND c.name = @columnName; + OPEN index_cursor + FETCH NEXT FROM index_cursor INTO @indexName + WHILE @@FETCH_STATUS = 0 + BEGIN + set @sql = 'drop index ' + @indexName + ' on ' + @tableName; + EXECUTE(@sql); + + FETCH NEXT FROM index_cursor INTO @indexName + END; + CLOSE index_cursor; + DEALLOCATE index_cursor; +END +GO + +-- +-- PROCEDURE: usp_ebean_drop_default_constraint TABLE, COLUMN +-- deletes the default constraint, which has a random name +-- +CREATE OR ALTER PROCEDURE usp_ebean_drop_default_constraint @tableName nvarchar(255), @columnName nvarchar(255) +AS SET NOCOUNT ON +declare @tmp nvarchar(1000) +BEGIN + 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(@tableName) and t2.name = @columnName; + + if @tmp is not null EXEC('alter table ' + @tableName +' drop constraint ' + @tmp); +END +GO + +-- +-- PROCEDURE: usp_ebean_drop_constraints TABLE, COLUMN +-- deletes constraints and foreign keys refering to TABLE.COLUMN +-- +CREATE OR ALTER PROCEDURE usp_ebean_drop_constraints @tableName nvarchar(255), @columnName nvarchar(255) +AS SET NOCOUNT ON +declare @sql nvarchar(1000) +declare @constraintName nvarchar(255) +BEGIN + DECLARE name_cursor CURSOR FOR + SELECT cc.name from sys.check_constraints cc + join sys.columns c on c.object_id = cc.parent_object_id and c.column_id = cc.parent_column_id + where parent_object_id = OBJECT_ID(@tableName) AND c.name = @columnName + UNION SELECT fk.name from sys.foreign_keys fk + join sys.foreign_key_columns fkc on fkc.constraint_object_id = fk.object_id + and fkc.parent_object_id = fk.parent_object_id + join sys.columns c on c.object_id = fkc.parent_object_id and c.column_id = fkc.parent_column_id + where fkc.parent_object_id = OBJECT_ID(@tableName) AND c.name = @columnName; + + OPEN name_cursor + FETCH NEXT FROM name_cursor INTO @constraintName + WHILE @@FETCH_STATUS = 0 + BEGIN + set @sql = 'alter table ' + @tableName + ' drop constraint ' + @constraintName; + EXECUTE(@sql); + + FETCH NEXT FROM name_cursor INTO @constraintName + END; + CLOSE name_cursor; + DEALLOCATE name_cursor; +END +GO + +-- +-- PROCEDURE: usp_ebean_drop_column TABLE, COLUMN +-- deletes the column annd ensures that all indices and constraints are dropped first +-- +CREATE OR ALTER PROCEDURE usp_ebean_drop_column @tableName nvarchar(255), @columnName nvarchar(255) +AS SET NOCOUNT ON +declare @sql nvarchar(1000) +BEGIN + EXEC usp_ebean_drop_indices @tableName, @columnName; + EXEC usp_ebean_drop_default_constraint @tableName, @columnName; + EXEC usp_ebean_drop_constraints @tableName, @columnName; + + set @sql = 'alter table ' + @tableName + ' drop column ' + @columnName; + EXECUTE(@sql); +END +GO diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/R__order_views_mssql.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/R__order_views_mssql.sql new file mode 100644 index 000000000..3b90ebb2d --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/R__order_views_mssql.sql @@ -0,0 +1,10 @@ + + IF EXISTS (SELECT TABLE_NAME FROM INFORMATION_SCHEMA.VIEWS WHERE TABLE_NAME = 'order_agg_vw') + DROP VIEW order_agg_vw; + + create view order_agg_vw as + select d.order_id, sum(d.order_qty * d.unit_price) as order_total, + sum(d.ship_qty * d.unit_price) as ship_total + from o_order_detail d + group by d.order_id; + \ No newline at end of file diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver/idx_sqlserver.migrations b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/idx_sqlserver.migrations similarity index 100% rename from ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver/idx_sqlserver.migrations rename to ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/idx_sqlserver.migrations From 6b96bea480d8164fa1af08862baccd1bf3b0b07e Mon Sep 17 00:00:00 2001 From: Roland Praml Date: Mon, 7 Feb 2022 16:23:50 +0100 Subject: [PATCH 5/6] Disabled Yugabyte --- .../java/io/ebeaninternal/dbmigration/DbMigrationTest.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/ebean-test/src/test/java/io/ebeaninternal/dbmigration/DbMigrationTest.java b/ebean-test/src/test/java/io/ebeaninternal/dbmigration/DbMigrationTest.java index 0bd81fe63..b8a07afac 100644 --- a/ebean-test/src/test/java/io/ebeaninternal/dbmigration/DbMigrationTest.java +++ b/ebean-test/src/test/java/io/ebeaninternal/dbmigration/DbMigrationTest.java @@ -43,6 +43,11 @@ public class DbMigrationTest extends BaseTestCase { //Platform.CLICKHOUSE, // test(s) do not start at all //Platform.COCKROACH, // does not see applied DDL? commit missing? // Platform.NUODB nuodb container does not start + + // Yugabyte does not see column updates on table alters: + // update table T set C = 'value'; alter table T alter column C set not null -> error column C has null values + // do we need a commit after update? + Platform.YUGABYTE, }) //Platform.ORACLE, Platform.NUODB, Platform.POSTGRES, Platform.YUGABYTE}) // Note: Postgres locks up on build server From 6a74b84b8c0a2a06e5d0708156d3bc19f2855c6e Mon Sep 17 00:00:00 2001 From: Roland Praml Date: Mon, 7 Feb 2022 17:07:01 +0100 Subject: [PATCH 6/6] Comments and mysql fixes --- .../dbmigration/DbMigrationGenerateTest.java | 11 ++++++++++- .../io/ebeaninternal/dbmigration/DbMigrationTest.java | 2 +- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/ebean-test/src/test/java/io/ebeaninternal/dbmigration/DbMigrationGenerateTest.java b/ebean-test/src/test/java/io/ebeaninternal/dbmigration/DbMigrationGenerateTest.java index 4f9d3539a..d8b6a729e 100644 --- a/ebean-test/src/test/java/io/ebeaninternal/dbmigration/DbMigrationGenerateTest.java +++ b/ebean-test/src/test/java/io/ebeaninternal/dbmigration/DbMigrationGenerateTest.java @@ -20,7 +20,16 @@ import static org.assertj.core.api.Assertions.assertThatThrownBy; /** - * This is the Migrationscript generator. It generates 3 migrationscript for the models + * This is the Migrationscript generator. It will generate migrationscripts for all platforms. + * It uses the packages 'misc.migration' + *
    + *
  • misc.migration.v1_0 Initial package. + *
  • misc.migration.v1_1 modified v1_0 - every migration change, that ebean supports should be done here. + *
  • misc.migration.v1_2 This is (nearly) the same as v1_0 and simulates every migration change in the other way + *
+ * + * Changes in the migration scripts should be committed after they are reviewed (changes may be legitime or show, that something is broken). + * The {@link DbMigrationTest} will execute the generated scripts for various platforms. * @author Roland Praml, FOCONIS AG * */ diff --git a/ebean-test/src/test/java/io/ebeaninternal/dbmigration/DbMigrationTest.java b/ebean-test/src/test/java/io/ebeaninternal/dbmigration/DbMigrationTest.java index b8a07afac..eaccbab44 100644 --- a/ebean-test/src/test/java/io/ebeaninternal/dbmigration/DbMigrationTest.java +++ b/ebean-test/src/test/java/io/ebeaninternal/dbmigration/DbMigrationTest.java @@ -87,7 +87,7 @@ public class DbMigrationTest extends BaseTestCase { ((ConnectionPool)server().dataSource()).offline(); ((ConnectionPool)server().dataSource()).online(); - if (isSqlServer() || isMariaDB()) { // || isMySql() + if (isSqlServer() || isMariaDB() || isMySql()) { runScript("I__create_procs.sql"); }