From a93e2e05c58b8cfcf0bebe6804b8a2e43fd11b38 Mon Sep 17 00:00:00 2001 From: Roland Praml Date: Mon, 7 Feb 2022 11:55:41 +0100 Subject: [PATCH 001/114] 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 002/114] 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 003/114] 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 004/114] 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 005/114] 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 cde00650ca93e8938eed3e18bd7794b73568e9f3 Mon Sep 17 00:00:00 2001 From: Roland Praml Date: Mon, 7 Feb 2022 16:27:09 +0100 Subject: [PATCH 006/114] DTimedMetricTest fails sometimes --- .../io/ebeaninternal/server/profile/DTimedMetricTest.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ebean-test/src/test/java/io/ebeaninternal/server/profile/DTimedMetricTest.java b/ebean-test/src/test/java/io/ebeaninternal/server/profile/DTimedMetricTest.java index 46285255e..782289661 100644 --- a/ebean-test/src/test/java/io/ebeaninternal/server/profile/DTimedMetricTest.java +++ b/ebean-test/src/test/java/io/ebeaninternal/server/profile/DTimedMetricTest.java @@ -12,7 +12,7 @@ public class DTimedMetricTest { DTimedMetric metric = new DTimedMetric("addSinceNanos"); long start = System.nanoTime(); - Thread.sleep(10); + Thread.sleep(11); metric.addSinceNanos(start); @@ -35,7 +35,7 @@ public class DTimedMetricTest { DTimedMetric metric = new DTimedMetric("addSinceNanos"); long start = System.nanoTime(); - Thread.sleep(10); + Thread.sleep(11); metric.addBatchSince(start, 5); From dabb1451e911a0c31bd845d3723400845c7e0249 Mon Sep 17 00:00:00 2001 From: Roland Praml Date: Mon, 7 Feb 2022 16:34:39 +0100 Subject: [PATCH 007/114] Add Yugabyte-Platform to DefaultDbMigration --- .../java/io/ebeaninternal/dbmigration/DefaultDbMigration.java | 3 +++ 1 file changed, 3 insertions(+) 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: From a656b55526d55726dcfae9d5e98393be60e51654 Mon Sep 17 00:00:00 2001 From: Roland Praml Date: Mon, 7 Feb 2022 16:37:15 +0100 Subject: [PATCH 008/114] generate mysql StoredProcs for column deletion also for mariadb --- .../io/ebeaninternal/dbmigration/builtin-extra-ddl.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 $$ From 999be3e0a7708e9ed5c6cfd6f803f9afe4e9a145 Mon Sep 17 00:00:00 2001 From: Roland Praml Date: Mon, 7 Feb 2022 16:40:11 +0100 Subject: [PATCH 009/114] ClickHouseDb - decimal[] array type missing --- .../dbmigration/ddlgeneration/platform/ClickHouseDbArray.java | 1 + 1 file changed, 1 insertion(+) 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)"); } /** From 6a74b84b8c0a2a06e5d0708156d3bc19f2855c6e Mon Sep 17 00:00:00 2001 From: Roland Praml Date: Mon, 7 Feb 2022 17:07:01 +0100 Subject: [PATCH 010/114] 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"); } From 6e5eb6b963097ff3b9788022f61ae55b8d35712d Mon Sep 17 00:00:00 2001 From: Roland Praml Date: Tue, 8 Feb 2022 16:04:14 +0100 Subject: [PATCH 011/114] Refactor: BaseDdlBuffer uses StringBuilder instead of StringWriter. Makes IOException obsolete. --- .../dbmigration/ddlgeneration/DdlBuffer.java | 16 ++--- .../platform/AbstractHanaDdl.java | 66 ++++++++----------- .../ddlgeneration/platform/BaseDdlBuffer.java | 28 ++++---- .../ddlgeneration/platform/ClickHouseDdl.java | 4 +- .../platform/DbTriggerBasedHistoryDdl.java | 48 +++++++------- .../ddlgeneration/platform/H2HistoryDdl.java | 10 ++- .../platform/HanaColumnStoreDdl.java | 24 +++---- .../platform/HanaHistoryDdl.java | 17 +++-- .../platform/MariaDbHistoryDdl.java | 10 ++- .../ddlgeneration/platform/MySqlDdl.java | 13 ++-- .../platform/MySqlHistoryDdl.java | 12 ++-- .../platform/NoHistorySupportDdl.java | 6 +- .../platform/NuoDbHistoryDdl.java | 16 ++--- .../ddlgeneration/platform/PlatformDdl.java | 37 +++++------ .../platform/PlatformHistoryDdl.java | 10 ++- .../ddlgeneration/platform/PostgresDdl.java | 4 +- .../platform/PostgresHistoryDdl.java | 21 +++--- .../ddlgeneration/platform/SqlServerDdl.java | 16 ++--- .../platform/SqlServerHistoryDdl.java | 12 ++-- .../platform/YugabyteHistoryDdl.java | 4 +- 20 files changed, 164 insertions(+), 210 deletions(-) diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/DdlBuffer.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/DdlBuffer.java index 5d37cb762..dfa3673c0 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/DdlBuffer.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/DdlBuffer.java @@ -2,8 +2,6 @@ package io.ebeaninternal.dbmigration.ddlgeneration; import io.ebeaninternal.dbmigration.model.MConfiguration; -import java.io.IOException; - /** * Buffer to append generated DDL to. */ @@ -22,37 +20,37 @@ public interface DdlBuffer { /** * Append a statement allowing for null or empty statements. */ - DdlBuffer appendStatement(String content) throws IOException; + DdlBuffer appendStatement(String content); /** * Append DDL content to the buffer. */ - DdlBuffer append(String content) throws IOException; + DdlBuffer append(String content); /** * Append DDL content to the buffer with space padding. */ - DdlBuffer append(String type, int space) throws IOException; + DdlBuffer append(String type, int space); /** * Append a value that is potentially null or empty and proceed it with a space if so. */ - DdlBuffer appendWithSpace(String foreignKeyRestrict) throws IOException; + DdlBuffer appendWithSpace(String foreignKeyRestrict); /** * Append new line character to the buffer. */ - DdlBuffer newLine() throws IOException; + DdlBuffer newLine(); /** * Append the end of statement content. */ - DdlBuffer endOfStatement() throws IOException; + DdlBuffer endOfStatement(); /** * End of a change - add some whitespace. */ - DdlBuffer end() throws IOException; + DdlBuffer end(); /** * Return the buffer content. diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/AbstractHanaDdl.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/AbstractHanaDdl.java index f14c96762..717ac044c 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/AbstractHanaDdl.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/AbstractHanaDdl.java @@ -7,7 +7,6 @@ import io.ebeaninternal.dbmigration.ddlgeneration.DdlBuffer; import io.ebeaninternal.dbmigration.ddlgeneration.DdlHandler; import io.ebeaninternal.dbmigration.migration.AlterColumn; -import java.io.IOException; import java.util.Objects; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -52,31 +51,27 @@ public abstract class AbstractHanaDdl extends PlatformDdl { : (alter.getDefaultValue() != null ? alter.getDefaultValue() : alter.getCurrentDefaultValue()); String defaultValueClause = (defaultValue == null || defaultValue.isEmpty()) ? "" : " default " + defaultValue; - try { - DdlBuffer buffer = new BaseDdlBuffer(null); - if (!isConvertible(currentType, type)) { - // add an intermediate conversion if possible - if (isNumberType(currentType)) { - // numbers can always be converted to decimal - buffer.append("alter table ").append(tableName).append(" ").append(alterColumn).append(" ").append(columnName) - .append(" decimal ").append(defaultValueClause).append(notnullClause).append(alterColumnSuffix) - .endOfStatement(); + DdlBuffer buffer = new BaseDdlBuffer(null); + if (!isConvertible(currentType, type)) { + // add an intermediate conversion if possible + if (isNumberType(currentType)) { + // numbers can always be converted to decimal + buffer.append("alter table ").append(tableName).append(" ").append(alterColumn).append(" ").append(columnName) + .append(" decimal ").append(defaultValueClause).append(notnullClause).append(alterColumnSuffix) + .endOfStatement(); - } else if (isStringType(currentType)) { - // strings can always be converted to nclob - buffer.append("alter table ").append(tableName).append(" ").append(alterColumn).append(" ").append(columnName) - .append(" nclob ").append(defaultValueClause).append(notnullClause).append(alterColumnSuffix) - .endOfStatement(); - } + } else if (isStringType(currentType)) { + // strings can always be converted to nclob + buffer.append("alter table ").append(tableName).append(" ").append(alterColumn).append(" ").append(columnName) + .append(" nclob ").append(defaultValueClause).append(notnullClause).append(alterColumnSuffix) + .endOfStatement(); } - - buffer.append("alter table ").append(tableName).append(" ").append(alterColumn).append(" ").append(columnName) - .append(" ").append(type).append(defaultValueClause).append(notnullClause).append(alterColumnSuffix); - - return buffer.getBuffer(); - } catch (IOException e) { - throw new RuntimeException(e); } + + buffer.append("alter table ").append(tableName).append(" ").append(alterColumn).append(" ").append(columnName) + .append(" ").append(type).append(defaultValueClause).append(notnullClause).append(alterColumnSuffix); + + return buffer.getBuffer(); } @Override @@ -121,19 +116,16 @@ public abstract class AbstractHanaDdl extends PlatformDdl { @Override public String alterTableDropUniqueConstraint(String tableName, String uniqueConstraintName) { DdlBuffer buffer = new BaseDdlBuffer(null); - try { - buffer.append("delimiter $$").newLine(); - buffer.append("do").newLine(); - buffer.append("begin").newLine(); - buffer.append("declare exit handler for sql_error_code 397 begin end").endOfStatement(); - buffer.append("exec 'alter table ").append(tableName).append(" ").append(dropUniqueConstraint).append(" ") - .append(maxConstraintName(uniqueConstraintName)).append("'").endOfStatement(); - buffer.append("end").endOfStatement(); - buffer.append("$$"); - return buffer.getBuffer(); - } catch (IOException e) { - throw new RuntimeException(e); - } + + buffer.append("delimiter $$").newLine(); + buffer.append("do").newLine(); + buffer.append("begin").newLine(); + buffer.append("declare exit handler for sql_error_code 397 begin end").endOfStatement(); + buffer.append("exec 'alter table ").append(tableName).append(" ").append(dropUniqueConstraint).append(" ") + .append(maxConstraintName(uniqueConstraintName)).append("'").endOfStatement(); + buffer.append("end").endOfStatement(); + buffer.append("$$"); + return buffer.getBuffer(); } @Override @@ -146,7 +138,7 @@ public abstract class AbstractHanaDdl extends PlatformDdl { * foreign keys. That's why we call a user stored procedure here */ @Override - public void alterTableDropColumn(DdlBuffer buffer, String tableName, String columnName) throws IOException { + public void alterTableDropColumn(DdlBuffer buffer, String tableName, String columnName) { buffer.append("CALL usp_ebean_drop_column('").append(tableName).append("', '").append(columnName).append("')") .endOfStatement(); } diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/BaseDdlBuffer.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/BaseDdlBuffer.java index e54e91ba0..6f3017014 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/BaseDdlBuffer.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/BaseDdlBuffer.java @@ -3,21 +3,19 @@ package io.ebeaninternal.dbmigration.ddlgeneration.platform; import io.ebeaninternal.dbmigration.ddlgeneration.DdlBuffer; import io.ebeaninternal.dbmigration.model.MConfiguration; -import java.io.IOException; -import java.io.StringWriter; /** * Base implementation of DdlBuffer using an underlying writer. */ public class BaseDdlBuffer implements DdlBuffer { - protected final StringWriter writer; + protected final StringBuilder writer; protected final MConfiguration configuration; public BaseDdlBuffer(MConfiguration configuration) { this.configuration = configuration; - this.writer = new StringWriter(); + this.writer = new StringBuilder(); } @Override @@ -27,19 +25,19 @@ public class BaseDdlBuffer implements DdlBuffer { @Override public boolean isEmpty() { - return writer.getBuffer().length() == 0; + return writer.length() == 0; } @Override - public DdlBuffer appendWithSpace(String foreignKeyRestrict) throws IOException { - if (foreignKeyRestrict != null && !foreignKeyRestrict.isEmpty()) { - writer.append(" ").append(foreignKeyRestrict); + public DdlBuffer appendWithSpace(String content) { + if (content != null && !content.isEmpty()) { + writer.append(" ").append(content); } return this; } @Override - public DdlBuffer appendStatement(String content) throws IOException { + public DdlBuffer appendStatement(String content) { if (content != null && !content.isEmpty()) { writer.append(content); endOfStatement(); @@ -48,19 +46,19 @@ public class BaseDdlBuffer implements DdlBuffer { } @Override - public DdlBuffer append(String content) throws IOException { + public DdlBuffer append(String content) { writer.append(content); return this; } @Override - public DdlBuffer append(String content, int space) throws IOException { + public DdlBuffer append(String content, int space) { writer.append(content); appendSpace(space, content); return this; } - protected void appendSpace(int max, String content) throws IOException { + protected void appendSpace(int max, String content) { int space = max - content.length(); if (space > 0) { for (int i = 0; i < space; i++) { @@ -71,7 +69,7 @@ public class BaseDdlBuffer implements DdlBuffer { } @Override - public DdlBuffer endOfStatement() throws IOException { + public DdlBuffer endOfStatement() { writer.append(";\n"); return this; } @@ -81,7 +79,7 @@ public class BaseDdlBuffer implements DdlBuffer { * This should be just whitespace or a sql comment. */ @Override - public DdlBuffer end() throws IOException { + public DdlBuffer end() { if (!isEmpty()) { writer.append("\n"); } @@ -89,7 +87,7 @@ public class BaseDdlBuffer implements DdlBuffer { } @Override - public DdlBuffer newLine() throws IOException { + public DdlBuffer newLine() { writer.append("\n"); return this; } diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/ClickHouseDdl.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/ClickHouseDdl.java index 97f3bf8c7..2c3e2d841 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/ClickHouseDdl.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/ClickHouseDdl.java @@ -6,8 +6,6 @@ import io.ebeaninternal.dbmigration.ddlgeneration.DdlBuffer; import io.ebeaninternal.dbmigration.ddlgeneration.DdlHandler; import io.ebeaninternal.dbmigration.ddlgeneration.DdlOptions; -import java.io.IOException; - public class ClickHouseDdl extends PlatformDdl { private static final String LOG_TABLE = "ENGINE = Log()"; @@ -32,7 +30,7 @@ public class ClickHouseDdl extends PlatformDdl { * Add an table storage engine to the create table statement. */ @Override - public void tableStorageEngine(DdlBuffer apply, String storageEngine) throws IOException { + public void tableStorageEngine(DdlBuffer apply, String storageEngine) { if (storageEngine == null) { // default to Log() table but really should all be explicit (need arguments for MergeTree etc) storageEngine = LOG_TABLE; diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/DbTriggerBasedHistoryDdl.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/DbTriggerBasedHistoryDdl.java index 58bed4505..5b34a08ea 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/DbTriggerBasedHistoryDdl.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/DbTriggerBasedHistoryDdl.java @@ -9,8 +9,6 @@ import io.ebeaninternal.dbmigration.migration.DropHistoryTable; import io.ebeaninternal.dbmigration.model.MColumn; import io.ebeaninternal.dbmigration.model.MTable; -import java.io.IOException; -import java.util.Collection; import java.util.List; /** @@ -49,7 +47,7 @@ public abstract class DbTriggerBasedHistoryDdl implements PlatformHistoryDdl { } @Override - public void updateTriggers(DdlWrite writer, HistoryTableUpdate update) throws IOException { + public void updateTriggers(DdlWrite writer, HistoryTableUpdate update) { MTable table = writer.getTable(update.getBaseTable()); if (table == null) { @@ -61,13 +59,13 @@ public abstract class DbTriggerBasedHistoryDdl implements PlatformHistoryDdl { /** * Replace the existing triggers/stored procedures/views for history table support given the included columns. */ - protected abstract void updateHistoryTriggers(DbTriggerUpdate triggerUpdate) throws IOException; + protected abstract void updateHistoryTriggers(DbTriggerUpdate triggerUpdate); /** * Process the HistoryTableUpdate which can result in changes to the apply, rollback * and drop scripts. */ - protected void updateTriggers(DdlWrite writer, MTable table, HistoryTableUpdate update) throws IOException { + protected void updateTriggers(DdlWrite writer, MTable table, HistoryTableUpdate update) { writer.applyHistoryTrigger().append("-- changes: ").append(update.description()).newLine(); @@ -83,7 +81,7 @@ public abstract class DbTriggerBasedHistoryDdl implements PlatformHistoryDdl { } @Override - public void dropHistoryTable(DdlWrite writer, DropHistoryTable dropHistoryTable) throws IOException { + public void dropHistoryTable(DdlWrite writer, DropHistoryTable dropHistoryTable) { String baseTable = dropHistoryTable.getBaseTable(); @@ -93,7 +91,7 @@ public abstract class DbTriggerBasedHistoryDdl implements PlatformHistoryDdl { } @Override - public void addHistoryTable(DdlWrite writer, AddHistoryTable addHistoryTable) throws IOException { + public void addHistoryTable(DdlWrite writer, AddHistoryTable addHistoryTable) { String baseTable = addHistoryTable.getBaseTable(); MTable table = writer.getTable(baseTable); @@ -105,7 +103,7 @@ public abstract class DbTriggerBasedHistoryDdl implements PlatformHistoryDdl { } @Override - public void createWithHistory(DdlWrite writer, MTable table) throws IOException { + public void createWithHistory(DdlWrite writer, MTable table) { String baseTable = table.getName(); String whenCreatedColumn = table.getWhenCreatedColumn(); @@ -118,11 +116,11 @@ public abstract class DbTriggerBasedHistoryDdl implements PlatformHistoryDdl { createTriggers(writer, table); } - protected abstract void createTriggers(DdlWrite writer, MTable table) throws IOException; + protected abstract void createTriggers(DdlWrite writer, MTable table); - protected abstract void dropTriggers(DdlBuffer buffer, String baseTable) throws IOException; + protected abstract void dropTriggers(DdlBuffer buffer, String baseTable); - protected void createStoredFunction(DdlWrite writer, MTable table) throws IOException { + protected void createStoredFunction(DdlWrite writer, MTable table) { // do nothing } @@ -150,7 +148,7 @@ public abstract class DbTriggerBasedHistoryDdl implements PlatformHistoryDdl { return normalise(baseTableName) + "_history_del"; } - protected void addHistoryTable(DdlWrite writer, MTable table, String whenCreatedColumn) throws IOException { + protected void addHistoryTable(DdlWrite writer, MTable table, String whenCreatedColumn) { String baseTableName = table.getName(); @@ -161,7 +159,7 @@ public abstract class DbTriggerBasedHistoryDdl implements PlatformHistoryDdl { createWithHistoryView(apply, baseTableName); } - protected void addSysPeriodColumns(DdlBuffer apply, String baseTableName, String whenCreatedColumn) throws IOException { + protected void addSysPeriodColumns(DdlBuffer apply, String baseTableName, String whenCreatedColumn) { apply.append("alter table ").append(baseTableName).append(" add column ") .append(sysPeriodStart).append(" ").append(sysPeriodType).append(" default ").append(now).endOfStatement(); @@ -173,12 +171,12 @@ public abstract class DbTriggerBasedHistoryDdl implements PlatformHistoryDdl { } } - protected void createHistoryTable(DdlBuffer apply, MTable table) throws IOException { + protected void createHistoryTable(DdlBuffer apply, MTable table) { createHistoryTableAs(apply, table); createHistoryTableWithPeriod(apply); } - protected void createHistoryTableAs(DdlBuffer apply, MTable table) throws IOException { + protected void createHistoryTableAs(DdlBuffer apply, MTable table) { apply.append(platformDdl.getCreateTableCommandPrefix()).append(" ").append(table.getName()).append(historySuffix).append("(").newLine(); for (MColumn column : table.allColumns()) { if (!column.isDraftOnly()) { @@ -188,7 +186,7 @@ public abstract class DbTriggerBasedHistoryDdl implements PlatformHistoryDdl { } } - protected void createHistoryTableWithPeriod(DdlBuffer apply) throws IOException { + protected void createHistoryTableWithPeriod(DdlBuffer apply) { writeColumnDefinition(apply, sysPeriodStart, sysPeriodType); apply.append(",").newLine(); writeColumnDefinition(apply, sysPeriodEnd, sysPeriodType); @@ -198,7 +196,7 @@ public abstract class DbTriggerBasedHistoryDdl implements PlatformHistoryDdl { /** * Write the column definition to the create table statement. */ - protected void writeColumnDefinition(DdlBuffer buffer, String columnName, String type) throws IOException { + protected void writeColumnDefinition(DdlBuffer buffer, String columnName, String type) { String platformType = platformDdl.convert(type); buffer.append(" "); @@ -206,7 +204,7 @@ public abstract class DbTriggerBasedHistoryDdl implements PlatformHistoryDdl { buffer.append(platformType); } - protected void createWithHistoryView(DdlBuffer apply, String baseTableName) throws IOException { + protected void createWithHistoryView(DdlBuffer apply, String baseTableName) { apply .append("create view ").append(baseTableName).append(viewSuffix) @@ -220,7 +218,7 @@ public abstract class DbTriggerBasedHistoryDdl implements PlatformHistoryDdl { * For postgres/h2/mysql we need to drop and recreate the view. Well, we could add columns to the end of the view * but otherwise we need to drop and create it. */ - protected void recreateHistoryView(DbTriggerUpdate update) throws IOException { + protected void recreateHistoryView(DbTriggerUpdate update) { DdlBuffer buffer = update.dropDependencyBuffer(); // we need to drop the view early/first before any changes to the tables etc @@ -230,24 +228,24 @@ public abstract class DbTriggerBasedHistoryDdl implements PlatformHistoryDdl { createWithHistoryView(update.historyViewBuffer(), update.getBaseTable()); } - protected void appendSysPeriodColumns(DdlBuffer apply, String prefix) throws IOException { + protected void appendSysPeriodColumns(DdlBuffer apply, String prefix) { appendColumnName(apply, prefix, sysPeriodStart); appendColumnName(apply, prefix, sysPeriodEnd); } - protected void dropHistoryTableEtc(DdlBuffer buffer, String baseTableName) throws IOException { + protected void dropHistoryTableEtc(DdlBuffer buffer, String baseTableName) { buffer.append("drop view ").append(baseTableName).append(viewSuffix).endOfStatement(); dropSysPeriodColumns(buffer, baseTableName); buffer.append("drop table ").append(baseTableName).append(historySuffix).endOfStatement().end(); } - protected void dropSysPeriodColumns(DdlBuffer buffer, String baseTableName) throws IOException { + protected void dropSysPeriodColumns(DdlBuffer buffer, String baseTableName) { platformDdl.alterTableDropColumn(buffer, baseTableName, sysPeriodStart); platformDdl.alterTableDropColumn(buffer, baseTableName, sysPeriodEnd); } - protected void appendInsertIntoHistory(DdlBuffer buffer, String historyTable, List columns) throws IOException { + protected void appendInsertIntoHistory(DdlBuffer buffer, String historyTable, List columns) { buffer.append(" insert into ").append(historyTable).append(" (").append(sysPeriodStart).append(",").append(sysPeriodEnd).append(","); appendColumnNames(buffer, columns, ""); @@ -256,7 +254,7 @@ public abstract class DbTriggerBasedHistoryDdl implements PlatformHistoryDdl { buffer.append(");").newLine(); } - void appendColumnNames(DdlBuffer buffer, List columns, String columnPrefix) throws IOException { + void appendColumnNames(DdlBuffer buffer, List columns, String columnPrefix) { for (int i = 0; i < columns.size(); i++) { if (i > 0) { buffer.append(", "); @@ -269,7 +267,7 @@ public abstract class DbTriggerBasedHistoryDdl implements PlatformHistoryDdl { /** * Append a single column to the buffer if it is not null. */ - void appendColumnName(DdlBuffer buffer, String prefix, String columnName) throws IOException { + void appendColumnName(DdlBuffer buffer, String prefix, String columnName) { if (columnName != null) { buffer.append(prefix).append(columnName); } diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/H2HistoryDdl.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/H2HistoryDdl.java index 5bd58adeb..55ffdd748 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/H2HistoryDdl.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/H2HistoryDdl.java @@ -4,8 +4,6 @@ import io.ebeaninternal.dbmigration.ddlgeneration.DdlBuffer; import io.ebeaninternal.dbmigration.ddlgeneration.DdlWrite; import io.ebeaninternal.dbmigration.model.MTable; -import java.io.IOException; - /** * H2 history support using DB triggers to maintain a history table. */ @@ -20,26 +18,26 @@ public class H2HistoryDdl extends DbTriggerBasedHistoryDdl { } @Override - protected void dropTriggers(DdlBuffer buffer, String baseTable) throws IOException { + protected void dropTriggers(DdlBuffer buffer, String baseTable) { buffer.append("drop trigger ").append(updateTriggerName(baseTable)).endOfStatement(); } @Override - protected void createTriggers(DdlWrite writer, MTable table) throws IOException { + protected void createTriggers(DdlWrite writer, MTable table) { String baseTableName = table.getName(); DdlBuffer apply = writer.applyHistoryTrigger(); addCreateTrigger(apply, updateTriggerName(baseTableName), baseTableName); } @Override - protected void updateHistoryTriggers(DbTriggerUpdate update) throws IOException { + protected void updateHistoryTriggers(DbTriggerUpdate update) { recreateHistoryView(update); DdlBuffer buffer = update.historyTriggerBuffer(); dropTriggers(buffer, update.getBaseTable()); addCreateTrigger(buffer, updateTriggerName(update.getBaseTable()), update.getBaseTable()); } - private void addCreateTrigger(DdlBuffer apply, String triggerName, String baseTable) throws IOException { + private void addCreateTrigger(DdlBuffer apply, String triggerName, String baseTable) { // Note that this does not take into account the historyTable name (excepts _history suffix) and // does not take into account excluded columns (all columns included in history) apply diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/HanaColumnStoreDdl.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/HanaColumnStoreDdl.java index 872fc3930..f37f690be 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/HanaColumnStoreDdl.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/HanaColumnStoreDdl.java @@ -3,8 +3,6 @@ package io.ebeaninternal.dbmigration.ddlgeneration.platform; import io.ebean.config.dbplatform.DatabasePlatform; import io.ebeaninternal.dbmigration.ddlgeneration.DdlBuffer; -import java.io.IOException; - public class HanaColumnStoreDdl extends AbstractHanaDdl { public HanaColumnStoreDdl(DatabasePlatform platform) { @@ -32,19 +30,15 @@ public class HanaColumnStoreDdl extends AbstractHanaDdl { @Override public String dropIndex(String indexName, String tableName, boolean concurrent) { DdlBuffer buffer = new BaseDdlBuffer(null); - try { - buffer.append("delimiter $$").newLine(); - buffer.append("do").newLine(); - buffer.append("begin").newLine(); - buffer.append("declare exit handler for sql_error_code 261 begin end").endOfStatement(); - buffer.append("exec '").append(dropIndexIfExists).append(maxConstraintName(indexName)).append("'") - .endOfStatement(); - buffer.append("end").endOfStatement(); - buffer.append("$$"); - return buffer.getBuffer(); - } catch (IOException e) { - throw new RuntimeException(e); - } + buffer.append("delimiter $$").newLine(); + buffer.append("do").newLine(); + buffer.append("begin").newLine(); + buffer.append("declare exit handler for sql_error_code 261 begin end").endOfStatement(); + buffer.append("exec '").append(dropIndexIfExists).append(maxConstraintName(indexName)).append("'") + .endOfStatement(); + buffer.append("end").endOfStatement(); + buffer.append("$$"); + return buffer.getBuffer(); } } diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/HanaHistoryDdl.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/HanaHistoryDdl.java index 3624fa1da..94432fe38 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/HanaHistoryDdl.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/HanaHistoryDdl.java @@ -8,7 +8,6 @@ import io.ebeaninternal.dbmigration.migration.DropHistoryTable; import io.ebeaninternal.dbmigration.model.MColumn; import io.ebeaninternal.dbmigration.model.MTable; -import java.io.IOException; import java.util.Collection; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; @@ -32,7 +31,7 @@ public class HanaHistoryDdl implements PlatformHistoryDdl { } @Override - public void createWithHistory(DdlWrite writer, MTable table) throws IOException { + public void createWithHistory(DdlWrite writer, MTable table) { String tableName = table.getName(); String historyTableName = tableName + historySuffix; DdlBuffer apply = writer.applyHistoryView(); @@ -73,12 +72,12 @@ public class HanaHistoryDdl implements PlatformHistoryDdl { } @Override - public void dropHistoryTable(DdlWrite writer, DropHistoryTable dropHistoryTable) throws IOException { + public void dropHistoryTable(DdlWrite writer, DropHistoryTable dropHistoryTable) { dropHistoryTable(writer.applyDropDependencies(), dropHistoryTable.getBaseTable(), dropHistoryTable.getBaseTable() + historySuffix); } - protected void dropHistoryTable(DdlBuffer apply, String baseTable, String historyTable) throws IOException { + protected void dropHistoryTable(DdlBuffer apply, String baseTable, String historyTable) { // disable system versioning disableSystemVersioning(apply, baseTable); @@ -93,7 +92,7 @@ public class HanaHistoryDdl implements PlatformHistoryDdl { } @Override - public void addHistoryTable(DdlWrite writer, AddHistoryTable addHistoryTable) throws IOException { + public void addHistoryTable(DdlWrite writer, AddHistoryTable addHistoryTable) { MTable table = writer.getTable(addHistoryTable.getBaseTable()); if (table == null) { throw new IllegalStateException("MTable " + addHistoryTable.getBaseTable() + " not found in writer? (required for history DDL)"); @@ -107,7 +106,7 @@ public class HanaHistoryDdl implements PlatformHistoryDdl { } protected void writeColumnDefinition(DdlBuffer buffer, String columnName, String type, String defaultValue, - boolean isNotNull, String generated) throws IOException { + boolean isNotNull, String generated) { String platformType = platformDdl.convert(type); buffer.append(" ").append(platformDdl.lowerColumnName(columnName)); @@ -123,11 +122,11 @@ public class HanaHistoryDdl implements PlatformHistoryDdl { } } - public void disableSystemVersioning(DdlBuffer apply, String tableName) throws IOException { + public void disableSystemVersioning(DdlBuffer apply, String tableName) { disableSystemVersioning(apply, tableName, false); } - public void disableSystemVersioning(DdlBuffer apply, String tableName, boolean uniqueStatement) throws IOException { + public void disableSystemVersioning(DdlBuffer apply, String tableName, boolean uniqueStatement) { apply.append("alter table ").append(tableName).append(" drop system versioning"); if (uniqueStatement) { // needed for the DB migration test to prevent the statement from being filtered @@ -138,7 +137,7 @@ public class HanaHistoryDdl implements PlatformHistoryDdl { } public void enableSystemVersioning(DdlBuffer apply, String tableName, String historyTableName, boolean validated, - boolean uniqueStatement) throws IOException { + boolean uniqueStatement) { apply.append("alter table ").append(tableName).append(" add system versioning history table ").append(historyTableName); if (!validated) { apply.append(" not validated"); diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/MariaDbHistoryDdl.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/MariaDbHistoryDdl.java index 3fbdfad61..0795ddd75 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/MariaDbHistoryDdl.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/MariaDbHistoryDdl.java @@ -7,8 +7,6 @@ import io.ebeaninternal.dbmigration.migration.AddHistoryTable; import io.ebeaninternal.dbmigration.migration.DropHistoryTable; import io.ebeaninternal.dbmigration.model.MTable; -import java.io.IOException; - /** * History DDL for MariaDB. */ @@ -20,12 +18,12 @@ public class MariaDbHistoryDdl implements PlatformHistoryDdl { } @Override - public void createWithHistory(DdlWrite writer, MTable table) throws IOException { + public void createWithHistory(DdlWrite writer, MTable table) { String baseTable = table.getName(); enableSystemVersioning(writer, baseTable); } - private void enableSystemVersioning(DdlWrite writer, String baseTable) throws IOException { + private void enableSystemVersioning(DdlWrite writer, String baseTable) { DdlBuffer apply = writer.applyHistoryView(); apply.append("alter table ").append(baseTable).append(" add system versioning").endOfStatement(); @@ -34,14 +32,14 @@ public class MariaDbHistoryDdl implements PlatformHistoryDdl { } @Override - public void dropHistoryTable(DdlWrite writer, DropHistoryTable dropHistoryTable) throws IOException { + public void dropHistoryTable(DdlWrite writer, DropHistoryTable dropHistoryTable) { String baseTable = dropHistoryTable.getBaseTable(); DdlBuffer apply = writer.applyHistoryView(); apply.append("alter table ").append(baseTable).append(" drop system versioning").endOfStatement(); } @Override - public void addHistoryTable(DdlWrite writer, AddHistoryTable addHistoryTable) throws IOException { + public void addHistoryTable(DdlWrite writer, AddHistoryTable addHistoryTable) { String baseTable = addHistoryTable.getBaseTable(); enableSystemVersioning(writer, baseTable); } diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/MySqlDdl.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/MySqlDdl.java index c772a30aa..91a3760c2 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/MySqlDdl.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/MySqlDdl.java @@ -6,7 +6,6 @@ import io.ebeaninternal.dbmigration.ddlgeneration.DdlBuffer; import io.ebeaninternal.dbmigration.migration.AlterColumn; import io.ebeaninternal.dbmigration.migration.Column; -import java.io.IOException; import java.util.Collection; /** @@ -38,7 +37,7 @@ public class MySqlDdl extends PlatformDdl { } @Override - public void alterTableDropColumn(final DdlBuffer buffer, final String tableName, final String columnName) throws IOException { + public void alterTableDropColumn(final DdlBuffer buffer, final String tableName, final String columnName) { if (this.useMigrationStoredProcedures) { buffer.append("CALL usp_ebean_drop_column('").append(tableName).append("', '").append(columnName).append("')").endOfStatement(); } else { @@ -127,7 +126,7 @@ public class MySqlDdl extends PlatformDdl { } @Override - protected void writeColumnDefinition(DdlBuffer buffer, Column column, DdlIdentity identity) throws IOException { + protected void writeColumnDefinition(DdlBuffer buffer, Column column, DdlIdentity identity) { super.writeColumnDefinition(buffer, column, identity); String comment = column.getComment(); if (!StringHelper.isNull(comment)) { @@ -140,7 +139,7 @@ public class MySqlDdl extends PlatformDdl { } @Override - public void inlineTableComment(DdlBuffer apply, String tableComment) throws IOException { + public void inlineTableComment(DdlBuffer apply, String tableComment) { if (tableComment.length() > 1000) { tableComment = tableComment.substring(0, 1000); } @@ -151,7 +150,7 @@ public class MySqlDdl extends PlatformDdl { * Add table comment as a separate statement (from the create table statement). */ @Override - public void addTableComment(DdlBuffer apply, String tableName, String tableComment) throws IOException { + public void addTableComment(DdlBuffer apply, String tableName, String tableComment) { if (DdlHelp.isDropComment(tableComment)) { tableComment = ""; } @@ -168,7 +167,7 @@ public class MySqlDdl extends PlatformDdl { * Locks all tables for triggers that have to be updated. */ @Override - public void lockTables(DdlBuffer buffer, Collection tables) throws IOException { + public void lockTables(DdlBuffer buffer, Collection tables) { if (!tables.isEmpty()) { buffer.append("lock tables "); int i = 0; @@ -187,7 +186,7 @@ public class MySqlDdl extends PlatformDdl { * Unlocks all tables for triggers that have to be updated. */ @Override - public void unlockTables(DdlBuffer buffer, Collection tables) throws IOException { + public void unlockTables(DdlBuffer buffer, Collection tables) { buffer.append("unlock tables").endOfStatement(); } diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/MySqlHistoryDdl.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/MySqlHistoryDdl.java index 16d07136e..300e2ec8c 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/MySqlHistoryDdl.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/MySqlHistoryDdl.java @@ -4,8 +4,6 @@ import io.ebeaninternal.dbmigration.ddlgeneration.DdlBuffer; import io.ebeaninternal.dbmigration.ddlgeneration.DdlWrite; import io.ebeaninternal.dbmigration.model.MTable; -import java.io.IOException; - /** * MySql history support using DB triggers to maintain a history table. */ @@ -15,13 +13,13 @@ public class MySqlHistoryDdl extends DbTriggerBasedHistoryDdl { } @Override - protected void dropTriggers(DdlBuffer buffer, String baseTable) throws IOException { + protected void dropTriggers(DdlBuffer buffer, String baseTable) { buffer.append("drop trigger ").append(updateTriggerName(baseTable)).endOfStatement(); buffer.append("drop trigger ").append(deleteTriggerName(baseTable)).endOfStatement(); } @Override - protected void createTriggers(DdlWrite writer, MTable table) throws IOException { + protected void createTriggers(DdlWrite writer, MTable table) { DbTriggerUpdate update = createDbTriggerUpdate(writer, table); @@ -30,7 +28,7 @@ public class MySqlHistoryDdl extends DbTriggerBasedHistoryDdl { } @Override - protected void updateHistoryTriggers(DbTriggerUpdate update) throws IOException { + protected void updateHistoryTriggers(DbTriggerUpdate update) { recreateHistoryView(update); @@ -42,7 +40,7 @@ public class MySqlHistoryDdl extends DbTriggerBasedHistoryDdl { addBeforeDelete(deleteTriggerName(baseTable), update); } - private void addBeforeUpdate(String triggerName, DbTriggerUpdate update) throws IOException { + private void addBeforeUpdate(String triggerName, DbTriggerUpdate update) { DdlBuffer apply = update.historyTriggerBuffer(); apply @@ -55,7 +53,7 @@ public class MySqlHistoryDdl extends DbTriggerBasedHistoryDdl { .append("end$$").newLine(); } - private void addBeforeDelete(String triggerName, DbTriggerUpdate update) throws IOException { + private void addBeforeDelete(String triggerName, DbTriggerUpdate update) { DdlBuffer apply = update.historyTriggerBuffer(); apply diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/NoHistorySupportDdl.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/NoHistorySupportDdl.java index fbaab9be8..f479ec75d 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/NoHistorySupportDdl.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/NoHistorySupportDdl.java @@ -6,8 +6,6 @@ import io.ebeaninternal.dbmigration.migration.AddHistoryTable; import io.ebeaninternal.dbmigration.migration.DropHistoryTable; import io.ebeaninternal.dbmigration.model.MTable; -import java.io.IOException; - /** * Default history implementation that does nothing. Needs to be replaced * with an appropriate implementation for the given database platform. @@ -20,7 +18,7 @@ public class NoHistorySupportDdl implements PlatformHistoryDdl { } @Override - public void createWithHistory(DdlWrite writer, MTable table) throws IOException { + public void createWithHistory(DdlWrite writer, MTable table) { // does nothing } @@ -30,7 +28,7 @@ public class NoHistorySupportDdl implements PlatformHistoryDdl { } @Override - public void addHistoryTable(DdlWrite writer, AddHistoryTable addHistoryTable) throws IOException { + public void addHistoryTable(DdlWrite writer, AddHistoryTable addHistoryTable) { // does nothing } diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/NuoDbHistoryDdl.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/NuoDbHistoryDdl.java index 89d81eb9b..726f407ad 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/NuoDbHistoryDdl.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/NuoDbHistoryDdl.java @@ -4,8 +4,6 @@ import io.ebeaninternal.dbmigration.ddlgeneration.DdlBuffer; import io.ebeaninternal.dbmigration.ddlgeneration.DdlWrite; import io.ebeaninternal.dbmigration.model.MTable; -import java.io.IOException; - /** * NuoDB history support using DB triggers to maintain a history table. */ @@ -17,14 +15,14 @@ public class NuoDbHistoryDdl extends DbTriggerBasedHistoryDdl { } @Override - protected void dropTriggers(DdlBuffer buffer, String baseTable) throws IOException { + protected void dropTriggers(DdlBuffer buffer, String baseTable) { buffer.append("drop trigger ").append(updateTriggerName(baseTable)).endOfStatement(); buffer.append("drop trigger ").append(deleteTriggerName(baseTable)).endOfStatement(); } @Override - protected void createTriggers(DdlWrite writer, MTable table) throws IOException { + protected void createTriggers(DdlWrite writer, MTable table) { DbTriggerUpdate update = createDbTriggerUpdate(writer, table); @@ -33,7 +31,7 @@ public class NuoDbHistoryDdl extends DbTriggerBasedHistoryDdl { } @Override - protected void updateHistoryTriggers(DbTriggerUpdate update) throws IOException { + protected void updateHistoryTriggers(DbTriggerUpdate update) { recreateHistoryView(update); @@ -45,7 +43,7 @@ public class NuoDbHistoryDdl extends DbTriggerBasedHistoryDdl { addBeforeDelete(deleteTriggerName(baseTable), update); } - private void addBeforeUpdate(String triggerName, DbTriggerUpdate update) throws IOException { + private void addBeforeUpdate(String triggerName, DbTriggerUpdate update) { DdlBuffer apply = update.historyTriggerBuffer(); addTriggerStart(triggerName, update, apply, " before update for each row as "); @@ -54,7 +52,7 @@ public class NuoDbHistoryDdl extends DbTriggerBasedHistoryDdl { addEndTrigger(apply); } - private void addBeforeDelete(String triggerName, DbTriggerUpdate update) throws IOException { + private void addBeforeDelete(String triggerName, DbTriggerUpdate update) { DdlBuffer apply = update.historyTriggerBuffer(); addTriggerStart(triggerName, update, apply, " before delete for each row as"); @@ -62,14 +60,14 @@ public class NuoDbHistoryDdl extends DbTriggerBasedHistoryDdl { addEndTrigger(apply); } - private void addTriggerStart(String triggerName, DbTriggerUpdate update, DdlBuffer apply, String s) throws IOException { + private void addTriggerStart(String triggerName, DbTriggerUpdate update, DdlBuffer apply, String s) { apply .append("delimiter $$").newLine() .append("create or replace trigger ").append(triggerName).append(" for ").append(update.getBaseTable()) .append(s).newLine(); } - private void addEndTrigger(DdlBuffer apply) throws IOException { + private void addEndTrigger(DdlBuffer apply) { apply.append("end_trigger") .endOfStatement() .append("$$").newLine() diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformDdl.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformDdl.java index 59cf38e0d..103821eac 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformDdl.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformDdl.java @@ -21,7 +21,6 @@ import io.ebeaninternal.dbmigration.migration.Column; import io.ebeaninternal.dbmigration.migration.DropHistoryTable; import io.ebeaninternal.dbmigration.model.MTable; -import java.io.IOException; import java.util.Collection; import java.util.List; @@ -234,7 +233,7 @@ public class PlatformDdl { /** * Write all the table columns converting to platform types as necessary. */ - public void writeTableColumns(DdlBuffer apply, List columns, DdlIdentity identity) throws IOException { + public void writeTableColumns(DdlBuffer apply, List columns, DdlIdentity identity) { for (int i = 0; i < columns.size(); i++) { if (i > 0) { apply.append(","); @@ -258,7 +257,7 @@ public class PlatformDdl { /** * Write the column definition to the create table statement. */ - protected void writeColumnDefinition(DdlBuffer buffer, Column column, DdlIdentity identity) throws IOException { + protected void writeColumnDefinition(DdlBuffer buffer, Column column, DdlIdentity identity) { String columnDefn = convert(column.getType()); if (identity.useIdentity() && isTrue(column.isPrimaryKey())) { @@ -285,7 +284,7 @@ public class PlatformDdl { /** * Allow for platform overriding (e.g. ClickHouse). */ - protected void writeColumnNotNull(DdlBuffer buffer) throws IOException { + protected void writeColumnNotNull(DdlBuffer buffer) { buffer.append(" not null"); } @@ -337,28 +336,28 @@ public class PlatformDdl { /** * Add history support to this table using the platform specific mechanism. */ - public void createWithHistory(DdlWrite writer, MTable table) throws IOException { + public void createWithHistory(DdlWrite writer, MTable table) { historyDdl.createWithHistory(writer, table); } /** * Drop history support for a given table. */ - public void dropHistoryTable(DdlWrite writer, DropHistoryTable dropHistoryTable) throws IOException { + public void dropHistoryTable(DdlWrite writer, DropHistoryTable dropHistoryTable) { historyDdl.dropHistoryTable(writer, dropHistoryTable); } /** * Add history support to an existing table. */ - public void addHistoryTable(DdlWrite writer, AddHistoryTable addHistoryTable) throws IOException { + public void addHistoryTable(DdlWrite writer, AddHistoryTable addHistoryTable) { historyDdl.addHistoryTable(writer, addHistoryTable); } /** * Regenerate the history triggers (or function) due to a column being added/dropped/excluded or included. */ - public void regenerateHistoryTriggers(DdlWrite write, HistoryTableUpdate update) throws IOException { + public void regenerateHistoryTriggers(DdlWrite write, HistoryTableUpdate update) { historyDdl.updateTriggers(write, update); } @@ -521,7 +520,7 @@ public class PlatformDdl { return buffer.toString(); } - public void alterTableAddColumn(DdlBuffer buffer, String tableName, Column column, boolean onHistoryTable, String defaultValue) throws IOException { + public void alterTableAddColumn(DdlBuffer buffer, String tableName, Column column, boolean onHistoryTable, String defaultValue) { String convertedType = convert(column.getType()); @@ -558,7 +557,7 @@ public class PlatformDdl { } - public void alterTableDropColumn(DdlBuffer buffer, String tableName, String columnName) throws IOException { + public void alterTableDropColumn(DdlBuffer buffer, String tableName, String columnName) { buffer.append("alter table ").append(tableName).append(" ").append(dropColumn).append(" ").append(columnName) .append(dropColumnSuffix).endOfStatement(); } @@ -676,21 +675,21 @@ public class PlatformDdl { /** * Add an inline table comment to the create table statement. */ - public void inlineTableComment(DdlBuffer apply, String tableComment) throws IOException { + public void inlineTableComment(DdlBuffer apply, String tableComment) { // do nothing by default (MySql only) } /** * Add an table storage engine to the create table statement. */ - public void tableStorageEngine(DdlBuffer apply, String storageEngine) throws IOException { + public void tableStorageEngine(DdlBuffer apply, String storageEngine) { // do nothing by default } /** * Add table comment as a separate statement (from the create table statement). */ - public void addTableComment(DdlBuffer apply, String tableName, String tableComment) throws IOException { + public void addTableComment(DdlBuffer apply, String tableName, String tableComment) { if (DdlHelp.isDropComment(tableComment)) { tableComment = ""; } @@ -700,7 +699,7 @@ public class PlatformDdl { /** * Add column comment as a separate statement. */ - public void addColumnComment(DdlBuffer apply, String table, String column, String comment) throws IOException { + public void addColumnComment(DdlBuffer apply, String table, String column, String comment) { if (DdlHelp.isDropComment(comment)) { comment = ""; } @@ -710,14 +709,14 @@ public class PlatformDdl { /** * Use this to generate a prolog for each script (stored procedures) */ - public void generateProlog(DdlWrite write) throws IOException { + public void generateProlog(DdlWrite write) { } /** * Use this to generate an epilog. Will be added at the end of script */ - public void generateEpilog(DdlWrite write) throws IOException { + public void generateEpilog(DdlWrite write) { } @@ -743,14 +742,14 @@ public class PlatformDdl { /** * Mysql-specific: Locks all tables for triggers that have to be updated. */ - public void lockTables(DdlBuffer buffer, Collection tables) throws IOException { + public void lockTables(DdlBuffer buffer, Collection tables) { } /** * Mysql-specific: Unlocks all tables for triggers that have to be updated. */ - public void unlockTables(DdlBuffer buffer, Collection tables) throws IOException { + public void unlockTables(DdlBuffer buffer, Collection tables) { } @@ -769,7 +768,7 @@ public class PlatformDdl { return false; } - public void addTablePartition(DdlBuffer apply, String partitionMode, String partitionColumn) throws IOException { + public void addTablePartition(DdlBuffer apply, String partitionMode, String partitionColumn) { // only supported by postgres initially } } diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformHistoryDdl.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformHistoryDdl.java index c5e93aa23..517c390e2 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformHistoryDdl.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformHistoryDdl.java @@ -6,8 +6,6 @@ import io.ebeaninternal.dbmigration.migration.AddHistoryTable; import io.ebeaninternal.dbmigration.migration.DropHistoryTable; import io.ebeaninternal.dbmigration.model.MTable; -import java.io.IOException; - /** * Defines the implementation for adding history support to a table. */ @@ -21,20 +19,20 @@ public interface PlatformHistoryDdl { /** * Creates a new table and add history support to the table using platform specific mechanism. */ - void createWithHistory(DdlWrite writer, MTable table) throws IOException; + void createWithHistory(DdlWrite writer, MTable table); /** * Drop history support for the given table. */ - void dropHistoryTable(DdlWrite writer, DropHistoryTable dropHistoryTable) throws IOException; + void dropHistoryTable(DdlWrite writer, DropHistoryTable dropHistoryTable); /** * Add history support to the given table. */ - void addHistoryTable(DdlWrite writer, AddHistoryTable addHistoryTable) throws IOException; + void addHistoryTable(DdlWrite writer, AddHistoryTable addHistoryTable); /** * Regenerate the history triggers/stored function due to column added/dropped/included or excluded. */ - void updateTriggers(DdlWrite write, HistoryTableUpdate baseTable) throws IOException; + void updateTriggers(DdlWrite write, HistoryTableUpdate baseTable); } diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PostgresDdl.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PostgresDdl.java index 734621a66..f9bf55276 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PostgresDdl.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PostgresDdl.java @@ -3,8 +3,6 @@ package io.ebeaninternal.dbmigration.ddlgeneration.platform; import io.ebean.config.dbplatform.DatabasePlatform; import io.ebeaninternal.dbmigration.ddlgeneration.DdlBuffer; -import java.io.IOException; - /** * Postgres specific DDL. */ @@ -40,7 +38,7 @@ public class PostgresDdl extends PlatformDdl { } @Override - public void addTablePartition(DdlBuffer apply, String partitionMode, String partitionColumn) throws IOException { + public void addTablePartition(DdlBuffer apply, String partitionMode, String partitionColumn) { apply.append(" partition by range (").append(partitionColumn).append(")"); } diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PostgresHistoryDdl.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PostgresHistoryDdl.java index b0257f96a..c5b7f23d7 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PostgresHistoryDdl.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PostgresHistoryDdl.java @@ -4,7 +4,6 @@ import io.ebeaninternal.dbmigration.ddlgeneration.DdlBuffer; import io.ebeaninternal.dbmigration.ddlgeneration.DdlWrite; import io.ebeaninternal.dbmigration.model.MTable; -import java.io.IOException; import java.util.List; /** @@ -21,7 +20,7 @@ public class PostgresHistoryDdl extends DbTriggerBasedHistoryDdl { * Use Postgres create table like to create the history table. */ @Override - protected void createHistoryTable(DdlBuffer apply, MTable table) throws IOException { + protected void createHistoryTable(DdlBuffer apply, MTable table) { apply.append("create table ").append(table.getName()).append(historySuffix) .append("(like ").append(table.getName()).append(")").endOfStatement(); } @@ -30,7 +29,7 @@ public class PostgresHistoryDdl extends DbTriggerBasedHistoryDdl { * Use Postgres range type rather than start and end timestamps. */ @Override - protected void addSysPeriodColumns(DdlBuffer apply, String baseTableName, String whenCreatedColumn) throws IOException { + protected void addSysPeriodColumns(DdlBuffer apply, String baseTableName, String whenCreatedColumn) { apply .append("alter table ").append(baseTableName) .append(" add column ").append(sysPeriod).append(" tstzrange not null default tstzrange(").append(now).append(", null)") @@ -43,17 +42,17 @@ public class PostgresHistoryDdl extends DbTriggerBasedHistoryDdl { } @Override - protected void appendSysPeriodColumns(DdlBuffer apply, String prefix) throws IOException { + protected void appendSysPeriodColumns(DdlBuffer apply, String prefix) { appendColumnName(apply, prefix, sysPeriod); } @Override - protected void dropSysPeriodColumns(DdlBuffer buffer, String baseTableName) throws IOException { + protected void dropSysPeriodColumns(DdlBuffer buffer, String baseTableName) { buffer.append("alter table ").append(baseTableName).append(" drop column ").append(sysPeriod).endOfStatement(); } @Override - protected void createTriggers(DdlWrite writer, MTable table) throws IOException { + protected void createTriggers(DdlWrite writer, MTable table) { String baseTableName = table.getName(); String procedureName = procedureName(baseTableName); String triggerName = triggerName(baseTableName); @@ -66,14 +65,14 @@ public class PostgresHistoryDdl extends DbTriggerBasedHistoryDdl { } @Override - protected void dropTriggers(DdlBuffer buffer, String baseTable) throws IOException { + protected void dropTriggers(DdlBuffer buffer, String baseTable) { // rollback trigger then function buffer.append("drop trigger if exists ").append(triggerName(baseTable)).append(" on ").append(baseTable).append(" cascade").endOfStatement(); buffer.append("drop function if exists ").append(procedureName(baseTable)).append("()").endOfStatement(); buffer.end(); } - protected void createOrReplaceFunction(DdlBuffer apply, String procedureName, String historyTable, List includedColumns) throws IOException { + protected void createOrReplaceFunction(DdlBuffer apply, String procedureName, String historyTable, List includedColumns) { apply .append("create or replace function ").append(procedureName).append("() returns trigger as $$").newLine(); @@ -105,7 +104,7 @@ public class PostgresHistoryDdl extends DbTriggerBasedHistoryDdl { } @Override - protected void createStoredFunction(DdlWrite writer, MTable table) throws IOException { + protected void createStoredFunction(DdlWrite writer, MTable table) { String procedureName = procedureName(table.getName()); String historyTable = historyTableName(table.getName()); @@ -114,14 +113,14 @@ public class PostgresHistoryDdl extends DbTriggerBasedHistoryDdl { } @Override - protected void updateHistoryTriggers(DbTriggerUpdate update) throws IOException { + protected void updateHistoryTriggers(DbTriggerUpdate update) { String procedureName = procedureName(update.getBaseTable()); recreateHistoryView(update); createOrReplaceFunction(update.historyTriggerBuffer(), procedureName, update.getHistoryTable(), update.getColumns()); } @Override - protected void appendInsertIntoHistory(DdlBuffer buffer, String historyTable, List columns) throws IOException { + protected void appendInsertIntoHistory(DdlBuffer buffer, String historyTable, List columns) { buffer.append(" insert into ").append(historyTable).append(" (").append(sysPeriod).append(","); appendColumnNames(buffer, columns, ""); buffer.append(") values (tstzrange(lowerTs,upperTs), "); diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/SqlServerDdl.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/SqlServerDdl.java index 978aa4320..ca155653c 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/SqlServerDdl.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/SqlServerDdl.java @@ -6,8 +6,6 @@ import io.ebeaninternal.dbmigration.ddlgeneration.DdlBuffer; import io.ebeaninternal.dbmigration.ddlgeneration.DdlWrite; import io.ebeaninternal.dbmigration.migration.AlterColumn; -import java.io.IOException; - /** * MS SQL Server platform specific DDL. */ @@ -185,7 +183,7 @@ public class SqlServerDdl extends PlatformDdl { * Add table comment as a separate statement (from the create table statement). */ @Override - public void addTableComment(DdlBuffer apply, String tableName, String tableComment) throws IOException { + public void addTableComment(DdlBuffer apply, String tableName, String tableComment) { // do nothing for MS SQL Server (cause it requires stored procedures etc) } @@ -194,7 +192,7 @@ public class SqlServerDdl extends PlatformDdl { * Add column comment as a separate statement. */ @Override - public void addColumnComment(DdlBuffer apply, String table, String column, String comment) throws IOException { + public void addColumnComment(DdlBuffer apply, String table, String column, String comment) { // do nothing for MS SQL Server (cause it requires stored procedures etc) } @@ -204,7 +202,7 @@ public class SqlServerDdl extends PlatformDdl { * (constraints, default values, indices and foreign keys). That's why we call a user stored procedure here */ @Override - public void alterTableDropColumn(DdlBuffer buffer, String tableName, String columnName) throws IOException { + public void alterTableDropColumn(DdlBuffer buffer, String tableName, String columnName) { buffer.append("EXEC usp_ebean_drop_column ").append(tableName).append(", ").append(columnName).endOfStatement(); } @@ -213,7 +211,7 @@ public class SqlServerDdl extends PlatformDdl { * This writes the multi value datatypes needed for MultiValueBind. */ @Override - public void generateProlog(DdlWrite write) throws IOException { + public void generateProlog(DdlWrite write) { super.generateProlog(write); generateTVPDefinitions(write, "bigint"); @@ -227,7 +225,7 @@ public class SqlServerDdl extends PlatformDdl { } - private void generateTVPDefinitions(DdlWrite write, String definition) throws IOException { + private void generateTVPDefinitions(DdlWrite write, String definition) { int pos = definition.indexOf('('); String name = pos == -1 ? definition : definition.substring(0, pos); @@ -236,12 +234,12 @@ public class SqlServerDdl extends PlatformDdl { //createTVP(write.apply(), name, definition); } - private void dropTVP(DdlBuffer ddl, String name) throws IOException { + private void dropTVP(DdlBuffer ddl, String name) { ddl.append("if exists (select name from sys.types where name = 'ebean_").append(name) .append("_tvp') drop type ebean_").append(name).append("_tvp").endOfStatement(); } - private void createTVP(DdlBuffer ddl, String name, String definition) throws IOException { + private void createTVP(DdlBuffer ddl, String name, String definition) { ddl.append("if not exists (select name from sys.types where name = 'ebean_").append(name) .append("_tvp') create type ebean_").append(name).append("_tvp as table (c1 ").append(definition).append(")") .endOfStatement(); diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/SqlServerHistoryDdl.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/SqlServerHistoryDdl.java index 4b87ff04e..f82ea20da 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/SqlServerHistoryDdl.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/SqlServerHistoryDdl.java @@ -7,8 +7,6 @@ import io.ebeaninternal.dbmigration.migration.AddHistoryTable; import io.ebeaninternal.dbmigration.migration.DropHistoryTable; import io.ebeaninternal.dbmigration.model.MTable; -import java.io.IOException; - /** * @author Vilmos Nagy */ @@ -26,7 +24,7 @@ public class SqlServerHistoryDdl implements PlatformHistoryDdl { } @Override - public void createWithHistory(DdlWrite writer, MTable table) throws IOException { + public void createWithHistory(DdlWrite writer, MTable table) { String baseTable = table.getName(); enableSystemVersioning(writer, baseTable); } @@ -43,7 +41,7 @@ public class SqlServerHistoryDdl implements PlatformHistoryDdl { return historyTable; } - private void enableSystemVersioning(DdlWrite writer, String baseTable) throws IOException { + private void enableSystemVersioning(DdlWrite writer, String baseTable) { DdlBuffer apply = writer.applyHistoryView(); apply.append("alter table ").append(baseTable).newLine() .append(" add ").append(systemPeriodStart).append(" datetime2 GENERATED ALWAYS AS ROW START NOT NULL DEFAULT SYSUTCDATETIME(),").newLine() @@ -59,7 +57,7 @@ public class SqlServerHistoryDdl implements PlatformHistoryDdl { } @Override - public void dropHistoryTable(DdlWrite writer, DropHistoryTable dropHistoryTable) throws IOException { + public void dropHistoryTable(DdlWrite writer, DropHistoryTable dropHistoryTable) { String baseTable = dropHistoryTable.getBaseTable(); DdlBuffer apply = writer.applyHistoryView(); apply.append("-- dropping history support for ").append(baseTable).endOfStatement(); @@ -78,13 +76,13 @@ public class SqlServerHistoryDdl implements PlatformHistoryDdl { } @Override - public void addHistoryTable(DdlWrite writer, AddHistoryTable addHistoryTable) throws IOException { + public void addHistoryTable(DdlWrite writer, AddHistoryTable addHistoryTable) { String baseTable = addHistoryTable.getBaseTable(); enableSystemVersioning(writer, baseTable); } @Override - public void updateTriggers(DdlWrite writer, HistoryTableUpdate baseTable) throws IOException { + public void updateTriggers(DdlWrite writer, HistoryTableUpdate baseTable) { // SQL Server 2016 does not need triggers DdlBuffer apply = writer.applyHistoryView(); String baseTableName = baseTable.getBaseTable(); diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/YugabyteHistoryDdl.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/YugabyteHistoryDdl.java index 3ba023881..204dcd762 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/YugabyteHistoryDdl.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/YugabyteHistoryDdl.java @@ -3,12 +3,10 @@ package io.ebeaninternal.dbmigration.ddlgeneration.platform; import io.ebeaninternal.dbmigration.ddlgeneration.DdlBuffer; import io.ebeaninternal.dbmigration.model.MTable; -import java.io.IOException; - public class YugabyteHistoryDdl extends PostgresHistoryDdl { @Override - protected void createHistoryTable(DdlBuffer apply, MTable table) throws IOException { + protected void createHistoryTable(DdlBuffer apply, MTable table) { createHistoryTableAs(apply, table); writeColumnDefinition(apply, sysPeriod, "tstzrange"); apply.newLine().append(")").endOfStatement(); From 3bb6f0ca6530ab181babd0a21d2e4af226f773d2 Mon Sep 17 00:00:00 2001 From: Alexander Wagner Date: Tue, 8 Feb 2022 16:04:49 +0100 Subject: [PATCH 012/114] Bug: save with cascade of @OneToOne + @Version model sets version to 1 (cherry picked from commit 1570e1800ddc9741d6fd36e36c6d5db69d68ba46) --- .../tests/model/onetoone/OtoChildVersion.java | 66 +++++++++++++++++++ .../model/onetoone/OtoMasterVersion.java | 66 +++++++++++++++++++ .../tests/model/onetoone/OtoNotification.java | 51 ++++++++++++++ .../onetoone/TestOneToOneCascadeSave.java | 37 +++++++++++ 4 files changed, 220 insertions(+) create mode 100644 ebean-test/src/test/java/org/tests/model/onetoone/OtoChildVersion.java create mode 100644 ebean-test/src/test/java/org/tests/model/onetoone/OtoMasterVersion.java create mode 100644 ebean-test/src/test/java/org/tests/model/onetoone/OtoNotification.java diff --git a/ebean-test/src/test/java/org/tests/model/onetoone/OtoChildVersion.java b/ebean-test/src/test/java/org/tests/model/onetoone/OtoChildVersion.java new file mode 100644 index 000000000..96539b0ea --- /dev/null +++ b/ebean-test/src/test/java/org/tests/model/onetoone/OtoChildVersion.java @@ -0,0 +1,66 @@ +package org.tests.model.onetoone; + +import java.util.List; + +import javax.persistence.CascadeType; +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.JoinColumn; +import javax.persistence.OneToMany; +import javax.persistence.OneToOne; +import javax.persistence.Version; + +import io.ebean.annotation.Where; + +@Entity +public class OtoChildVersion { + + @Id + Integer id; + + String name; + + @OneToOne + OtoMasterVersion master; + + @Version + int version; + + @OneToMany(cascade = CascadeType.ALL) + @JoinColumn(name = "ref_id") + @Where(clause = "${mta}.type=1") + List notifications; + + 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 OtoMasterVersion getMaster() { + return master; + } + + public void setMaster(OtoMasterVersion master) { + this.master = master; + } + + public int getVersion() { + return version; + } + + public void setVersion(int version) { + this.version = version; + } + +} diff --git a/ebean-test/src/test/java/org/tests/model/onetoone/OtoMasterVersion.java b/ebean-test/src/test/java/org/tests/model/onetoone/OtoMasterVersion.java new file mode 100644 index 000000000..2339d0f09 --- /dev/null +++ b/ebean-test/src/test/java/org/tests/model/onetoone/OtoMasterVersion.java @@ -0,0 +1,66 @@ +package org.tests.model.onetoone; + +import java.util.List; + +import javax.persistence.CascadeType; +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.JoinColumn; +import javax.persistence.OneToMany; +import javax.persistence.OneToOne; +import javax.persistence.Version; + +import io.ebean.annotation.Where; + +@Entity +public class OtoMasterVersion { + + @Id + Long id; + + String name; + + @OneToOne(cascade = CascadeType.ALL, mappedBy = "master") + OtoChildVersion child; + + @Version + int version; + + @OneToMany(cascade = CascadeType.ALL) + @JoinColumn(name = "ref_id") + @Where(clause = "${mta}.type=0") + List notifications; + + 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 OtoChildVersion getChild() { + return child; + } + + public void setChild(OtoChildVersion child) { + this.child = child; + } + + public int getVersion() { + return version; + } + + public void setVersion(int version) { + this.version = version; + } + +} diff --git a/ebean-test/src/test/java/org/tests/model/onetoone/OtoNotification.java b/ebean-test/src/test/java/org/tests/model/onetoone/OtoNotification.java new file mode 100644 index 000000000..5f137af72 --- /dev/null +++ b/ebean-test/src/test/java/org/tests/model/onetoone/OtoNotification.java @@ -0,0 +1,51 @@ +package org.tests.model.onetoone; + +import javax.persistence.Entity; +import javax.persistence.Id; + +@Entity +public class OtoNotification { + + @Id + Integer id; + + Integer refId; + + // 0 = master, 1 = child + Integer type; + + String text; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Integer getRefId() { + return refId; + } + + public void setRefId(Integer refId) { + this.refId = refId; + } + + public Integer getType() { + return type; + } + + public void setType(Integer type) { + this.type = type; + } + + public String getText() { + return text; + } + + public void setText(String text) { + this.text = text; + } + +} diff --git a/ebean-test/src/test/java/org/tests/model/onetoone/TestOneToOneCascadeSave.java b/ebean-test/src/test/java/org/tests/model/onetoone/TestOneToOneCascadeSave.java index 5bc9e5bc7..5347e404e 100644 --- a/ebean-test/src/test/java/org/tests/model/onetoone/TestOneToOneCascadeSave.java +++ b/ebean-test/src/test/java/org/tests/model/onetoone/TestOneToOneCascadeSave.java @@ -2,8 +2,11 @@ package org.tests.model.onetoone; import io.ebean.BaseTestCase; import io.ebean.DB; +import io.ebean.Transaction; + import org.junit.jupiter.api.Test; +import static org.assertj.core.api.Assertions.assertThat; import static org.junit.jupiter.api.Assertions.assertNotNull; public class TestOneToOneCascadeSave extends BaseTestCase { @@ -29,5 +32,39 @@ public class TestOneToOneCascadeSave extends BaseTestCase { OtoMaster master2 = child2.getMaster(); assertNotNull(master2); } + + @Test + public void test2() { + OtoMasterVersion master = new OtoMasterVersion(); + master.setName("m1"); + + OtoChildVersion child = new OtoChildVersion(); + child.setName("c1"); + + master.setChild(child); + DB.save(master); + + assertThat(master.getVersion()).isEqualTo(1); + assertThat(child.getVersion()).isEqualTo(1); + + child.setName("c2"); + DB.save(master); + + assertThat(master.getVersion()).isEqualTo(1); + assertThat(child.getVersion()).isEqualTo(2); + + try (Transaction txn = DB.beginTransaction()) { + master = DB.find(OtoMasterVersion.class).findOne(); + + master.setName("m2"); + DB.save(master); + child = DB.find(OtoChildVersion.class).findOne(); + // assertThat(child.getVersion()).isEqualTo(2); but is 1 + child.setName("c3"); + DB.save(child); // <-- throws OptimisticLockException + + txn.commit(); + } + } } From 53c8827a5256bdb3b26036f4965f0aa715464e9c Mon Sep 17 00:00:00 2001 From: Roland Praml Date: Tue, 8 Feb 2022 16:21:25 +0100 Subject: [PATCH 013/114] Refactor: remove MConfiguration from BaseDdlBuffer (it is unused, and may/should be re-added to the DdlWrite when needed) --- .../dbmigration/ddlgeneration/DdlBuffer.java | 7 ------- .../dbmigration/ddlgeneration/DdlWrite.java | 21 +++++++------------ .../platform/AbstractHanaDdl.java | 4 ++-- .../ddlgeneration/platform/BaseDdlBuffer.java | 10 +-------- .../platform/HanaColumnStoreDdl.java | 2 +- 5 files changed, 11 insertions(+), 33 deletions(-) diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/DdlBuffer.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/DdlBuffer.java index dfa3673c0..e1c7365ea 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/DdlBuffer.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/DdlBuffer.java @@ -1,17 +1,10 @@ package io.ebeaninternal.dbmigration.ddlgeneration; -import io.ebeaninternal.dbmigration.model.MConfiguration; - /** * Buffer to append generated DDL to. */ public interface DdlBuffer { - /** - * Return the configuration (default tablespaces etc). - */ - MConfiguration getConfiguration(); - /** * Return true if the buffer is empty. */ diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/DdlWrite.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/DdlWrite.java index 0f37f3374..eff523d09 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/DdlWrite.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/DdlWrite.java @@ -12,19 +12,19 @@ public class DdlWrite { private final ModelContainer currentModel; - private final DdlBuffer applyDropDependencies; + private final DdlBuffer applyDropDependencies = new BaseDdlBuffer(); - private final DdlBuffer apply; + private final DdlBuffer apply = new BaseDdlBuffer(); - private final DdlBuffer applyForeignKeys; + private final DdlBuffer applyForeignKeys = new BaseDdlBuffer(); - private final DdlBuffer applyHistoryView; + private final DdlBuffer applyHistoryView = new BaseDdlBuffer(); - private final DdlBuffer applyHistoryTrigger; + private final DdlBuffer applyHistoryTrigger = new BaseDdlBuffer(); - private final DdlBuffer dropAllForeignKeys; + private final DdlBuffer dropAllForeignKeys = new BaseDdlBuffer(); - private final DdlBuffer dropAll; + private final DdlBuffer dropAll = new BaseDdlBuffer(); private final DdlOptions options; @@ -40,13 +40,6 @@ public class DdlWrite { */ public DdlWrite(MConfiguration configuration, ModelContainer currentModel, DdlOptions options) { this.currentModel = currentModel; - this.applyDropDependencies = new BaseDdlBuffer(configuration); - this.apply = new BaseDdlBuffer(configuration); - this.applyForeignKeys = new BaseDdlBuffer(configuration); - this.applyHistoryView = new BaseDdlBuffer(configuration); - this.applyHistoryTrigger = new BaseDdlBuffer(configuration); - this.dropAllForeignKeys = new BaseDdlBuffer(configuration); - this.dropAll = new BaseDdlBuffer(configuration); this.options = options; } diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/AbstractHanaDdl.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/AbstractHanaDdl.java index 717ac044c..dd9e57ff5 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/AbstractHanaDdl.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/AbstractHanaDdl.java @@ -51,7 +51,7 @@ public abstract class AbstractHanaDdl extends PlatformDdl { : (alter.getDefaultValue() != null ? alter.getDefaultValue() : alter.getCurrentDefaultValue()); String defaultValueClause = (defaultValue == null || defaultValue.isEmpty()) ? "" : " default " + defaultValue; - DdlBuffer buffer = new BaseDdlBuffer(null); + DdlBuffer buffer = new BaseDdlBuffer(); if (!isConvertible(currentType, type)) { // add an intermediate conversion if possible if (isNumberType(currentType)) { @@ -115,7 +115,7 @@ public abstract class AbstractHanaDdl extends PlatformDdl { @Override public String alterTableDropUniqueConstraint(String tableName, String uniqueConstraintName) { - DdlBuffer buffer = new BaseDdlBuffer(null); + DdlBuffer buffer = new BaseDdlBuffer(); buffer.append("delimiter $$").newLine(); buffer.append("do").newLine(); diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/BaseDdlBuffer.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/BaseDdlBuffer.java index 6f3017014..78e0632b6 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/BaseDdlBuffer.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/BaseDdlBuffer.java @@ -11,18 +11,10 @@ public class BaseDdlBuffer implements DdlBuffer { protected final StringBuilder writer; - protected final MConfiguration configuration; - - public BaseDdlBuffer(MConfiguration configuration) { - this.configuration = configuration; + public BaseDdlBuffer() { this.writer = new StringBuilder(); } - @Override - public MConfiguration getConfiguration() { - return configuration; - } - @Override public boolean isEmpty() { return writer.length() == 0; diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/HanaColumnStoreDdl.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/HanaColumnStoreDdl.java index f37f690be..b1fbd08a8 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/HanaColumnStoreDdl.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/HanaColumnStoreDdl.java @@ -29,7 +29,7 @@ public class HanaColumnStoreDdl extends AbstractHanaDdl { @Override public String dropIndex(String indexName, String tableName, boolean concurrent) { - DdlBuffer buffer = new BaseDdlBuffer(null); + DdlBuffer buffer = new BaseDdlBuffer(); buffer.append("delimiter $$").newLine(); buffer.append("do").newLine(); buffer.append("begin").newLine(); From 90066eee0cf5609f7d127c3d9979b89d67ca9319 Mon Sep 17 00:00:00 2001 From: Alexander Wagner Date: Fri, 11 Feb 2022 10:31:24 +0100 Subject: [PATCH 014/114] Possible fix --- .../src/main/java/io/ebean/bean/EntityBeanIntercept.java | 2 +- .../org/tests/model/onetoone/TestOneToOneCascadeSave.java | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/ebean-api/src/main/java/io/ebean/bean/EntityBeanIntercept.java b/ebean-api/src/main/java/io/ebean/bean/EntityBeanIntercept.java index 28ac8a8e7..2effe73d9 100644 --- a/ebean-api/src/main/java/io/ebean/bean/EntityBeanIntercept.java +++ b/ebean-api/src/main/java/io/ebean/bean/EntityBeanIntercept.java @@ -360,7 +360,7 @@ public final class EntityBeanIntercept implements Serializable { * Return true if the entity should be updated. */ public boolean isUpdate() { - return forceUpdate || state == STATE_LOADED; + return forceUpdate || state == STATE_LOADED || state == STATE_REFERENCE; } /** diff --git a/ebean-test/src/test/java/org/tests/model/onetoone/TestOneToOneCascadeSave.java b/ebean-test/src/test/java/org/tests/model/onetoone/TestOneToOneCascadeSave.java index 5347e404e..e4875af11 100644 --- a/ebean-test/src/test/java/org/tests/model/onetoone/TestOneToOneCascadeSave.java +++ b/ebean-test/src/test/java/org/tests/model/onetoone/TestOneToOneCascadeSave.java @@ -34,7 +34,7 @@ public class TestOneToOneCascadeSave extends BaseTestCase { } @Test - public void test2() { + public void testSaveCascadeWithOneToOne() { OtoMasterVersion master = new OtoMasterVersion(); master.setName("m1"); @@ -59,12 +59,12 @@ public class TestOneToOneCascadeSave extends BaseTestCase { master.setName("m2"); DB.save(master); child = DB.find(OtoChildVersion.class).findOne(); - // assertThat(child.getVersion()).isEqualTo(2); but is 1 + assertThat(child.getVersion()).isEqualTo(2); child.setName("c3"); - DB.save(child); // <-- throws OptimisticLockException + DB.save(child); txn.commit(); } } - + } From ba27e091798c3e85053697a4319df3a4707143e6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 16 Feb 2022 01:18:59 +0000 Subject: [PATCH 015/114] Bump postgresql from 42.3.2 to 42.3.3 in /ebean-postgis Bumps [postgresql](https://github.com/pgjdbc/pgjdbc) from 42.3.2 to 42.3.3. - [Release notes](https://github.com/pgjdbc/pgjdbc/releases) - [Changelog](https://github.com/pgjdbc/pgjdbc/blob/master/CHANGELOG.md) - [Commits](https://github.com/pgjdbc/pgjdbc/compare/REL42.3.2...REL42.3.3) --- updated-dependencies: - dependency-name: org.postgresql:postgresql dependency-type: direct:production ... Signed-off-by: dependabot[bot] --- ebean-postgis/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ebean-postgis/pom.xml b/ebean-postgis/pom.xml index fc5dd2354..91ba661f9 100644 --- a/ebean-postgis/pom.xml +++ b/ebean-postgis/pom.xml @@ -44,7 +44,7 @@ org.postgresql postgresql - 42.3.2 + 42.3.3 provided From 9974102f1a4e17e0f48807fef6b8d7b9af9f64b7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 16 Feb 2022 01:19:22 +0000 Subject: [PATCH 016/114] Bump postgresql from 42.3.2 to 42.3.3 in /ebean-core Bumps [postgresql](https://github.com/pgjdbc/pgjdbc) from 42.3.2 to 42.3.3. - [Release notes](https://github.com/pgjdbc/pgjdbc/releases) - [Changelog](https://github.com/pgjdbc/pgjdbc/blob/master/CHANGELOG.md) - [Commits](https://github.com/pgjdbc/pgjdbc/compare/REL42.3.2...REL42.3.3) --- updated-dependencies: - dependency-name: org.postgresql:postgresql dependency-type: direct:production ... Signed-off-by: dependabot[bot] --- ebean-core/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ebean-core/pom.xml b/ebean-core/pom.xml index d3cc5e980..3ec7ee806 100644 --- a/ebean-core/pom.xml +++ b/ebean-core/pom.xml @@ -136,7 +136,7 @@ org.postgresql postgresql - 42.3.2 + 42.3.3 true From 5ba93ed927fcfe9135d583ef588961807b5c3d34 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 16 Feb 2022 01:19:58 +0000 Subject: [PATCH 017/114] Bump postgresql from 42.3.2 to 42.3.3 in /ebean-test Bumps [postgresql](https://github.com/pgjdbc/pgjdbc) from 42.3.2 to 42.3.3. - [Release notes](https://github.com/pgjdbc/pgjdbc/releases) - [Changelog](https://github.com/pgjdbc/pgjdbc/blob/master/CHANGELOG.md) - [Commits](https://github.com/pgjdbc/pgjdbc/compare/REL42.3.2...REL42.3.3) --- updated-dependencies: - dependency-name: org.postgresql:postgresql dependency-type: direct:development ... Signed-off-by: dependabot[bot] --- ebean-test/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ebean-test/pom.xml b/ebean-test/pom.xml index 295daa2f7..fb06dbc40 100644 --- a/ebean-test/pom.xml +++ b/ebean-test/pom.xml @@ -147,7 +147,7 @@ org.postgresql postgresql - 42.3.2 + 42.3.3 org.checkerframework From 48e875714b4d236ae47401810da24c019c672714 Mon Sep 17 00:00:00 2001 From: Noemi Szemenyei Date: Tue, 15 Feb 2022 15:28:05 +0100 Subject: [PATCH 018/114] solution v1 (cherry picked from commit 3d83c6bd0e2bcca6fc04f73ce08983266b9df636) --- .../ddlgeneration/platform/PlatformDdl.java | 22 +++++++++++++++++++ .../test/java/misc/migration/v1_0/EBasic.java | 4 +++- 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformDdl.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformDdl.java index 59cf38e0d..36a712122 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformDdl.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformDdl.java @@ -1,6 +1,7 @@ package io.ebeaninternal.dbmigration.ddlgeneration.platform; import io.ebean.annotation.ConstraintMode; +import io.ebean.annotation.Platform; import io.ebean.config.DatabaseConfig; import io.ebean.config.DbConstraintNaming; import io.ebean.config.dbplatform.DatabasePlatform; @@ -24,6 +25,7 @@ import io.ebeaninternal.dbmigration.model.MTable; import java.io.IOException; import java.util.Collection; import java.util.List; +import java.util.Locale; /** * Controls the DDL generation for a specific database platform. @@ -317,12 +319,32 @@ public class PlatformDdl { if (type == null) { return null; } + + type = extract(type); + if (type.contains("[]")) { return convertArrayType(type); } return typeConverter.convert(type); } + // if columnType is different for different platforms, use pattern + // @Column(columnDefinition = PLATFORM1;DEFINITION1;PLATFORM2;DEFINITON2;DEFINITON-DEFAULT) + // e.g. @Column(columnDefinition = "db2;blob(64M);sqlserver,h2;varchar(227);varchar(127)") + private String extract(String type) { + String[] tmp = type.split(";"); + assert tmp.length % 2 == 1; + for (int i = 0; i < tmp.length - 2; i+=2) { + String[] platforms = tmp[i].split(","); + for (String plat : platforms) { + if (platform.isPlatform(Platform.valueOf(plat.toUpperCase(Locale.ENGLISH)))) { + return tmp[i+1]; + } + } + } + return tmp[tmp.length-1]; // else + } + /** * Convert the logical array type to a db platform specific type to support the array data. */ diff --git a/ebean-test/src/test/java/misc/migration/v1_0/EBasic.java b/ebean-test/src/test/java/misc/migration/v1_0/EBasic.java index 6e895a2f1..c90e00423 100644 --- a/ebean-test/src/test/java/misc/migration/v1_0/EBasic.java +++ b/ebean-test/src/test/java/misc/migration/v1_0/EBasic.java @@ -5,6 +5,7 @@ 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; @@ -39,7 +40,8 @@ public class EBasic { @Size(max=127) String name; - @Size(max=127) + // @Size(max=127) + @Column(columnDefinition = "db2;blob(64M);sqlserver,h2;varchar(227);varchar(127)") String description; Timestamp someDate; From 3ab7ebe5e68109fe02fe40908d520ac878e42121 Mon Sep 17 00:00:00 2001 From: Noemi Szemenyei Date: Thu, 17 Feb 2022 08:14:51 +0100 Subject: [PATCH 019/114] new property for test --- ebean-test/src/test/java/misc/migration/v1_0/EBasic.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/ebean-test/src/test/java/misc/migration/v1_0/EBasic.java b/ebean-test/src/test/java/misc/migration/v1_0/EBasic.java index c90e00423..abc55e33a 100644 --- a/ebean-test/src/test/java/misc/migration/v1_0/EBasic.java +++ b/ebean-test/src/test/java/misc/migration/v1_0/EBasic.java @@ -40,9 +40,11 @@ public class EBasic { @Size(max=127) String name; - // @Size(max=127) - @Column(columnDefinition = "db2;blob(64M);sqlserver,h2;varchar(227);varchar(127)") + @Size(max=127) String description; + + @Column(columnDefinition = "db2;blob(64M);sqlserver,h2;varchar(227);varchar(127)") + String description2; Timestamp someDate; From c6fa60f28c2454e08ac22e42904ac3453e589f16 Mon Sep 17 00:00:00 2001 From: Noemi Szemenyei Date: Thu, 17 Feb 2022 08:16:35 +0100 Subject: [PATCH 020/114] migrations --- .../migrationtest/dbmigration/clickhouse/1.0__initial.sql | 1 + .../dbmigration/clickhouse/1.2__dropsFor_1.1.sql | 2 ++ .../dbmigration/clickhouse/idx_clickhouse.migrations | 4 ++-- .../migrationtest/dbmigration/cockroach/1.0__initial.sql | 1 + .../migrationtest/dbmigration/cockroach/1.2__dropsFor_1.1.sql | 2 ++ .../dbmigration/cockroach/idx_cockroach.migrations | 4 ++-- .../migrationtest/dbmigration/db2fori/1.0__initial.sql | 1 + .../migrationtest/dbmigration/db2fori/1.2__dropsFor_1.1.sql | 2 ++ .../migrationtest/dbmigration/db2fori/idx_db2.migrations | 4 ++-- .../migrationtest/dbmigration/db2legacy/1.0__initial.sql | 1 + .../migrationtest/dbmigration/db2legacy/1.2__dropsFor_1.1.sql | 2 ++ .../migrationtest/dbmigration/db2legacy/idx_db2.migrations | 4 ++-- .../migrationtest/dbmigration/db2luw/1.0__initial.sql | 1 + .../migrationtest/dbmigration/db2luw/1.2__dropsFor_1.1.sql | 2 ++ .../migrationtest/dbmigration/db2luw/idx_db2.migrations | 4 ++-- .../migrationtest/dbmigration/db2zos/1.0__initial.sql | 1 + .../migrationtest/dbmigration/db2zos/1.2__dropsFor_1.1.sql | 2 ++ .../migrationtest/dbmigration/db2zos/idx_db2.migrations | 4 ++-- .../migrationtest/dbmigration/generic/1.0__initial.sql | 1 + .../migrationtest/dbmigration/generic/1.2__dropsFor_1.1.sql | 2 ++ .../migrationtest/dbmigration/generic/idx_generic.migrations | 4 ++-- .../resources/migrationtest/dbmigration/h2/1.0__initial.sql | 1 + .../migrationtest/dbmigration/h2/1.2__dropsFor_1.1.sql | 2 ++ .../resources/migrationtest/dbmigration/h2/idx_h2.migrations | 4 ++-- .../resources/migrationtest/dbmigration/hana/1.0__initial.sql | 1 + .../migrationtest/dbmigration/hana/1.2__dropsFor_1.1.sql | 2 ++ .../migrationtest/dbmigration/hana/idx_hana.migrations | 4 ++-- .../migrationtest/dbmigration/hsqldb/1.0__initial.sql | 1 + .../migrationtest/dbmigration/hsqldb/1.2__dropsFor_1.1.sql | 2 ++ .../migrationtest/dbmigration/hsqldb/idx_hsqldb.migrations | 4 ++-- .../dbmigration/mariadb-noprocs/1.0__initial.sql | 1 + .../dbmigration/mariadb-noprocs/1.2__dropsFor_1.1.sql | 2 ++ .../dbmigration/mariadb-noprocs/idx_mariadb.migrations | 4 ++-- .../migrationtest/dbmigration/mariadb/1.0__initial.sql | 1 + .../migrationtest/dbmigration/mariadb/1.2__dropsFor_1.1.sql | 2 ++ .../migrationtest/dbmigration/mariadb/idx_mariadb.migrations | 4 ++-- .../migrationtest/dbmigration/model/1.0__initial.model.xml | 1 + .../resources/migrationtest/dbmigration/model/1.1.model.xml | 1 + .../dbmigration/model/1.2__dropsFor_1.1.model.xml | 1 + .../migrationtest/dbmigration/mysql/1.0__initial.sql | 1 + .../migrationtest/dbmigration/mysql/1.2__dropsFor_1.1.sql | 2 ++ .../migrationtest/dbmigration/mysql/idx_mysql.migrations | 4 ++-- .../migrationtest/dbmigration/mysql55/1.0__initial.sql | 1 + .../migrationtest/dbmigration/mysql55/1.2__dropsFor_1.1.sql | 2 ++ .../migrationtest/dbmigration/mysql55/idx_mysql.migrations | 4 ++-- .../migrationtest/dbmigration/nuodb/1.0__initial.sql | 1 + .../migrationtest/dbmigration/nuodb/1.2__dropsFor_1.1.sql | 2 ++ .../migrationtest/dbmigration/nuodb/idx_nuodb.migrations | 4 ++-- .../migrationtest/dbmigration/oracle/1.0__initial.sql | 1 + .../migrationtest/dbmigration/oracle/1.2__dropsFor_1.1.sql | 2 ++ .../migrationtest/dbmigration/oracle/idx_oracle.migrations | 4 ++-- .../migrationtest/dbmigration/oracle11/1.0__initial.sql | 1 + .../migrationtest/dbmigration/oracle11/1.2__dropsFor_1.1.sql | 2 ++ .../migrationtest/dbmigration/oracle11/idx_oracle.migrations | 4 ++-- .../migrationtest/dbmigration/postgres/1.0__initial.sql | 1 + .../migrationtest/dbmigration/postgres/1.2__dropsFor_1.1.sql | 2 ++ .../dbmigration/postgres/idx_postgres.migrations | 4 ++-- .../migrationtest/dbmigration/postgres9/1.0__initial.sql | 1 + .../migrationtest/dbmigration/postgres9/1.2__dropsFor_1.1.sql | 2 ++ .../dbmigration/postgres9/idx_postgres.migrations | 4 ++-- .../migrationtest/dbmigration/sqlanywhere/1.0__initial.sql | 1 + .../dbmigration/sqlanywhere/1.2__dropsFor_1.1.sql | 2 ++ .../dbmigration/sqlanywhere/idx_sqlanywhere.migrations | 4 ++-- .../migrationtest/dbmigration/sqlite/1.0__initial.sql | 1 + .../migrationtest/dbmigration/sqlite/1.2__dropsFor_1.1.sql | 2 ++ .../migrationtest/dbmigration/sqlite/idx_sqlite.migrations | 4 ++-- .../migrationtest/dbmigration/sqlserver16/1.0__initial.sql | 1 + .../dbmigration/sqlserver16/1.2__dropsFor_1.1.sql | 2 ++ .../dbmigration/sqlserver16/idx_sqlserver.migrations | 4 ++-- .../migrationtest/dbmigration/sqlserver17/1.0__initial.sql | 1 + .../dbmigration/sqlserver17/1.2__dropsFor_1.1.sql | 2 ++ .../dbmigration/sqlserver17/idx_sqlserver.migrations | 4 ++-- .../migrationtest/dbmigration/yugabyte/1.0__initial.sql | 1 + .../migrationtest/dbmigration/yugabyte/1.2__dropsFor_1.1.sql | 2 ++ .../dbmigration/yugabyte/idx_yugabyte.migrations | 4 ++-- 75 files changed, 123 insertions(+), 48 deletions(-) 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 index e4afafaad..c5eddf5ad 100644 --- 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 @@ -51,6 +51,7 @@ create table migtest_e_basic ( status2 String default 'N', name String, description String, + description2 String, some_date DateTime, old_boolean UInt8 default false, old_boolean2 UInt8, 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 index 3f8f468ba..6ca9bbadc 100644 --- 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 @@ -1,5 +1,7 @@ -- Migrationscripts for ebean unittest -- apply changes +alter table migtest_e_basic drop column description2; + alter table migtest_e_basic drop column old_boolean; alter table migtest_e_basic drop column old_boolean2; 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 965f25509..b948dd31c 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 +-429555051, 1.0__initial.sql 1864520180, 1.1.sql -1359055889, 1.2__dropsFor_1.1.sql +519662611, 1.2__dropsFor_1.1.sql -715327671, 1.3.sql -1045594368, 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 index 371a3fad1..e0719c8a8 100644 --- 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 @@ -60,6 +60,7 @@ create table migtest_e_basic ( status2 varchar(1) default 'N' not null, name varchar(127), description varchar(127), + description2 varchar(127), some_date timestamptz, old_boolean boolean default false not null, old_boolean2 boolean, 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 index e88e788c0..b50b1071a 100644 --- 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 @@ -1,5 +1,7 @@ -- Migrationscripts for ebean unittest -- apply changes +alter table migtest_e_basic drop column description2; + alter table migtest_e_basic drop column old_boolean; alter table migtest_e_basic drop column old_boolean2; 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 1d35441b7..2a2b4e44f 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,6 +1,6 @@ --487576609, 1.0__initial.sql +1784035212, 1.0__initial.sql -1108404951, 1.1.sql --91524786, 1.2__dropsFor_1.1.sql +-979513548, 1.2__dropsFor_1.1.sql 735879716, 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/db2fori/1.0__initial.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/db2fori/1.0__initial.sql index c24736673..4dafd604d 100644 --- 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 @@ -60,6 +60,7 @@ create table migtest_e_basic ( status2 varchar(1) default 'N' not null, name varchar(127), description varchar(127), + description2 blob(64M), some_date timestamp, old_boolean smallint default 0 default false not null, old_boolean2 smallint default 0, diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/db2fori/1.2__dropsFor_1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/db2fori/1.2__dropsFor_1.1.sql index f7ff8b135..95857c382 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/db2fori/1.2__dropsFor_1.1.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2fori/1.2__dropsFor_1.1.sql @@ -1,5 +1,7 @@ -- Migrationscripts for ebean unittest -- apply changes +alter table migtest_e_basic drop column description2; + alter table migtest_e_basic drop column old_boolean; alter table migtest_e_basic drop column old_boolean2; 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 index 2e0020c0b..30c6b2b8e 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/db2fori/idx_db2.migrations +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2fori/idx_db2.migrations @@ -1,6 +1,6 @@ -545908658, 1.0__initial.sql +1959738162, 1.0__initial.sql -1594597621, 1.1.sql -578073685, 1.2__dropsFor_1.1.sql +1791049503, 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 index 049e2affc..7c3f05efa 100644 --- 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 @@ -60,6 +60,7 @@ create table migtest_e_basic ( status2 varchar(1) default 'N' not null, name varchar(127), description varchar(127), + description2 blob(64M), some_date timestamp, old_boolean boolean default false not null, old_boolean2 boolean, 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 index f7ff8b135..95857c382 100644 --- 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 @@ -1,5 +1,7 @@ -- Migrationscripts for ebean unittest -- apply changes +alter table migtest_e_basic drop column description2; + alter table migtest_e_basic drop column old_boolean; alter table migtest_e_basic drop column old_boolean2; 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 index dfc85e553..e50c9477c 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/db2legacy/idx_db2.migrations +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2legacy/idx_db2.migrations @@ -1,6 +1,6 @@ --1494430232, 1.0__initial.sql +254148970, 1.0__initial.sql -1126979163, 1.1.sql -578073685, 1.2__dropsFor_1.1.sql +1791049503, 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/db2luw/1.0__initial.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/db2luw/1.0__initial.sql index 5d4113a24..4cfd1f6ac 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/db2luw/1.0__initial.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2luw/1.0__initial.sql @@ -60,6 +60,7 @@ create table migtest_e_basic ( status2 varchar(1) default 'N' not null, name varchar(127), description varchar(127), + description2 blob(64M), some_date timestamp, old_boolean boolean default false not null, old_boolean2 boolean, 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 index f7ff8b135..95857c382 100644 --- 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 @@ -1,5 +1,7 @@ -- Migrationscripts for ebean unittest -- apply changes +alter table migtest_e_basic drop column description2; + alter table migtest_e_basic drop column old_boolean; alter table migtest_e_basic drop column old_boolean2; diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/db2luw/idx_db2.migrations b/ebean-test/src/test/resources/migrationtest/dbmigration/db2luw/idx_db2.migrations index 8622a8c4c..c4559ee6f 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/db2luw/idx_db2.migrations +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2luw/idx_db2.migrations @@ -1,6 +1,6 @@ -1580812656, 1.0__initial.sql +662450113, 1.0__initial.sql 1615151513, 1.1.sql -578073685, 1.2__dropsFor_1.1.sql +1791049503, 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/db2zos/1.0__initial.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/db2zos/1.0__initial.sql index 5d4113a24..4cfd1f6ac 100644 --- 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 @@ -60,6 +60,7 @@ create table migtest_e_basic ( status2 varchar(1) default 'N' not null, name varchar(127), description varchar(127), + description2 blob(64M), some_date timestamp, old_boolean boolean default false not null, old_boolean2 boolean, 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 index f7ff8b135..95857c382 100644 --- 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 @@ -1,5 +1,7 @@ -- Migrationscripts for ebean unittest -- apply changes +alter table migtest_e_basic drop column description2; + alter table migtest_e_basic drop column old_boolean; alter table migtest_e_basic drop column old_boolean2; 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 index 8622a8c4c..c4559ee6f 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/db2zos/idx_db2.migrations +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2zos/idx_db2.migrations @@ -1,6 +1,6 @@ -1580812656, 1.0__initial.sql +662450113, 1.0__initial.sql 1615151513, 1.1.sql -578073685, 1.2__dropsFor_1.1.sql +1791049503, 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/generic/1.0__initial.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/generic/1.0__initial.sql index b8b1952df..abf2a9c91 100644 --- 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 @@ -60,6 +60,7 @@ create table migtest_e_basic ( status2 varchar(1) default 'N' not null, name varchar(127), description varchar(127), + description2 varchar(127), some_date timestamp, old_boolean boolean default false not null, old_boolean2 boolean, 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 index 3f8f468ba..6ca9bbadc 100644 --- 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 @@ -1,5 +1,7 @@ -- Migrationscripts for ebean unittest -- apply changes +alter table migtest_e_basic drop column description2; + alter table migtest_e_basic drop column old_boolean; alter table migtest_e_basic drop column old_boolean2; 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 0855fc2e1..f487f916b 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 +-1383651907, 1.0__initial.sql -1825206641, 1.1.sql -1359055889, 1.2__dropsFor_1.1.sql +519662611, 1.2__dropsFor_1.1.sql 297569863, 1.3.sql -1045594368, 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 index 1e2a4095f..19f353e7f 100644 --- 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 @@ -60,6 +60,7 @@ create table migtest_e_basic ( status2 varchar(1) default 'N' not null, name varchar(127), description varchar(127), + description2 varchar(227), some_date timestamp, old_boolean boolean default false not null, old_boolean2 boolean, 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 index dea5dde03..d0d876e15 100644 --- 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 @@ -3,6 +3,8 @@ drop view if exists migtest_e_history2_with_history; -- apply changes +alter table migtest_e_basic drop column description2; + alter table migtest_e_basic drop column old_boolean; alter table migtest_e_basic drop column old_boolean2; 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 c5bafc1f6..a99a1d97f 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,6 +1,6 @@ --745768926, 1.0__initial.sql +-1018429770, 1.0__initial.sql 1409369419, 1.1.sql -1616986842, 1.2__dropsFor_1.1.sql +-1904864828, 1.2__dropsFor_1.1.sql -1513154593, 1.3.sql 1549130952, 1.4__dropsFor_1.3.sql 783227075, R__multi_comments.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 index 837424e6d..aee46f613 100644 --- 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 @@ -60,6 +60,7 @@ create column table migtest_e_basic ( status2 nvarchar(1) default 'N' not null, name nvarchar(127), description nvarchar(127), + description2 nvarchar(127), some_date timestamp, old_boolean boolean default false not null, old_boolean2 boolean, 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 index a69417f3e..64f40e605 100644 --- 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 @@ -1,5 +1,7 @@ -- Migrationscripts for ebean unittest -- apply changes +CALL usp_ebean_drop_column('migtest_e_basic', 'description2'); + CALL usp_ebean_drop_column('migtest_e_basic', 'old_boolean'); CALL usp_ebean_drop_column('migtest_e_basic', 'old_boolean2'); 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 521c0c0b7..a9537f7d5 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,6 +1,6 @@ --1536923954, 1.0__initial.sql +-809467006, 1.0__initial.sql -1152055114, 1.1.sql -562867593, 1.2__dropsFor_1.1.sql +1569252375, 1.2__dropsFor_1.1.sql 1566488731, 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.0__initial.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/hsqldb/1.0__initial.sql index 40616be0a..bfd24e3b1 100644 --- 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 @@ -60,6 +60,7 @@ create table migtest_e_basic ( status2 varchar(1) default 'N' not null, name varchar(127), description varchar(127), + description2 varchar(127), some_date timestamp, old_boolean boolean default false not null, old_boolean2 boolean, 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 index 6fb11c3a4..bfe2be7bb 100644 --- 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 @@ -1,5 +1,7 @@ -- Migrationscripts for ebean unittest -- apply changes +alter table migtest_e_basic drop column description2; + alter table migtest_e_basic drop column old_boolean; alter table migtest_e_basic drop column old_boolean2; 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 c754652e1..96334f2ea 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,6 +1,6 @@ -2097980375, 1.0__initial.sql +1113607799, 1.0__initial.sql -865579750, 1.1.sql --1462014216, 1.2__dropsFor_1.1.sql +2029151368, 1.2__dropsFor_1.1.sql -2039573992, 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.0__initial.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb-noprocs/1.0__initial.sql index dd7505e20..1d2a9a5b8 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb-noprocs/1.0__initial.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb-noprocs/1.0__initial.sql @@ -60,6 +60,7 @@ create table migtest_e_basic ( status2 varchar(1) default 'N' not null, name varchar(127), description varchar(127), + description2 varchar(127), some_date datetime(6), old_boolean tinyint(1) default 0 not null, old_boolean2 tinyint(1), diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb-noprocs/1.2__dropsFor_1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb-noprocs/1.2__dropsFor_1.1.sql index 6fb11c3a4..bfe2be7bb 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb-noprocs/1.2__dropsFor_1.1.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb-noprocs/1.2__dropsFor_1.1.sql @@ -1,5 +1,7 @@ -- Migrationscripts for ebean unittest -- apply changes +alter table migtest_e_basic drop column description2; + alter table migtest_e_basic drop column old_boolean; alter table migtest_e_basic drop column old_boolean2; 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 f862900c1..8c71ab965 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,6 +1,6 @@ -1615386118, 1.0__initial.sql +629411155, 1.0__initial.sql 128637084, 1.1.sql --1462014216, 1.2__dropsFor_1.1.sql +2029151368, 1.2__dropsFor_1.1.sql -1957738355, 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.0__initial.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb/1.0__initial.sql index dd7505e20..1d2a9a5b8 100644 --- 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 @@ -60,6 +60,7 @@ create table migtest_e_basic ( status2 varchar(1) default 'N' not null, name varchar(127), description varchar(127), + description2 varchar(127), some_date datetime(6), old_boolean tinyint(1) default 0 not null, old_boolean2 tinyint(1), 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 a60e90858..e92aaf712 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,5 +1,7 @@ -- Migrationscripts for ebean unittest -- apply changes +CALL usp_ebean_drop_column('migtest_e_basic', 'description2'); + CALL usp_ebean_drop_column('migtest_e_basic', 'old_boolean'); CALL usp_ebean_drop_column('migtest_e_basic', 'old_boolean2'); 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 4ba501e5d..0d2f8e861 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,7 @@ 1835064798, I__create_procs.sql -1615386118, 1.0__initial.sql +629411155, 1.0__initial.sql 128637084, 1.1.sql --116088700, 1.2__dropsFor_1.1.sql +-1078955818, 1.2__dropsFor_1.1.sql -1957738355, 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.0__initial.model.xml b/ebean-test/src/test/resources/migrationtest/dbmigration/model/1.0__initial.model.xml index 68661ce4c..3b9f431c8 100644 --- 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 @@ -43,6 +43,7 @@ + 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 7754adc51..a87d01c57 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 @@ -110,6 +110,7 @@ + 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 index 59bf48a8f..19ff281e3 100644 --- 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 @@ -1,6 +1,7 @@ + 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 ce464c473..c4ae8fe79 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,6 +60,7 @@ create table migtest_e_basic ( status2 varchar(1) default 'N' not null, name varchar(127), description varchar(127), + description2 varchar(127), some_date datetime(6), old_boolean tinyint(1) default 0 not null, old_boolean2 tinyint(1), 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 a22adf90b..3e6410977 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,6 +3,8 @@ drop view if exists migtest_e_history2_with_history; -- apply changes +CALL usp_ebean_drop_column('migtest_e_basic', 'description2'); + CALL usp_ebean_drop_column('migtest_e_basic', 'old_boolean'); CALL usp_ebean_drop_column('migtest_e_basic', 'old_boolean2'); 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 4bb99f9cb..127648cc0 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,7 @@ 1835064798, I__create_procs.sql -1075178692, 1.0__initial.sql +-625233983, 1.0__initial.sql -1627573867, 1.1.sql -1922991807, 1.2__dropsFor_1.1.sql +426154419, 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/mysql55/1.0__initial.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/mysql55/1.0__initial.sql index 0a76ab174..a7229076e 100644 --- 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 @@ -60,6 +60,7 @@ create table migtest_e_basic ( status2 varchar(1) default 'N' not null, name varchar(127), description varchar(127), + description2 varchar(127), some_date datetime, old_boolean tinyint(1) default 0 not null, old_boolean2 tinyint(1), 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 index a22adf90b..3e6410977 100644 --- 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 @@ -3,6 +3,8 @@ drop view if exists migtest_e_history2_with_history; -- apply changes +CALL usp_ebean_drop_column('migtest_e_basic', 'description2'); + CALL usp_ebean_drop_column('migtest_e_basic', 'old_boolean'); CALL usp_ebean_drop_column('migtest_e_basic', 'old_boolean2'); 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 index 4ed25ce12..c456088a8 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/mysql55/idx_mysql.migrations +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/mysql55/idx_mysql.migrations @@ -1,7 +1,7 @@ 1835064798, I__create_procs.sql --1087663151, 1.0__initial.sql +-753661440, 1.0__initial.sql -1627573867, 1.1.sql -1922991807, 1.2__dropsFor_1.1.sql +426154419, 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/nuodb/1.0__initial.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/nuodb/1.0__initial.sql index a6ef6fb83..52477bd2d 100644 --- 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 @@ -60,6 +60,7 @@ create table migtest_e_basic ( status2 varchar(1) default 'N' not null, name varchar(127), description varchar(127), + description2 varchar(127), some_date timestamp, old_boolean boolean default false not null, old_boolean2 boolean, 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 index c6e454e20..c33aa5fc1 100644 --- 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 @@ -3,6 +3,8 @@ drop view if exists migtest_e_history2_with_history; -- apply changes +alter table migtest_e_basic drop column description2; + alter table migtest_e_basic drop column old_boolean; alter table migtest_e_basic drop column old_boolean2; 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 a16275206..c79573427 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,6 +1,6 @@ --600390912, 1.0__initial.sql +-1938088728, 1.0__initial.sql 667708916, 1.1.sql --1171866240, 1.2__dropsFor_1.1.sql +1794931214, 1.2__dropsFor_1.1.sql 870952105, 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.0__initial.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/oracle/1.0__initial.sql index 09a800c07..5dd163926 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 @@ -60,6 +60,7 @@ create table migtest_e_basic ( status2 varchar2(1) default 'N' not null, name varchar2(127), description varchar2(127), + description2 varchar2(127), some_date timestamp, old_boolean number(1) default 0 not null, old_boolean2 number(1), 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 index 4f2337db3..68847f4cc 100644 --- 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 @@ -1,5 +1,7 @@ -- Migrationscripts for ebean unittest -- apply changes +alter table migtest_e_basic drop column description2; + alter table migtest_e_basic drop column old_boolean; alter table migtest_e_basic drop column old_boolean2; 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 784f0c1d5..f549ab768 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,6 +1,6 @@ -1164675950, 1.0__initial.sql +-1818229777, 1.0__initial.sql -411370666, 1.1.sql -238598298, 1.2__dropsFor_1.1.sql +521762942, 1.2__dropsFor_1.1.sql 483114276, 1.3.sql -629809805, 1.4__dropsFor_1.3.sql 1357801733, R__oracle_only_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 index 8c9b8aefb..89dacfbe7 100644 --- 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 @@ -68,6 +68,7 @@ create table migtest_e_basic ( status2 varchar2(1) default 'N' not null, name varchar2(127), description varchar2(127), + description2 varchar2(127), some_date timestamp, old_boolean number(1) default 0 not null, old_boolean2 number(1), 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 index 4f2337db3..68847f4cc 100644 --- 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 @@ -1,5 +1,7 @@ -- Migrationscripts for ebean unittest -- apply changes +alter table migtest_e_basic drop column description2; + alter table migtest_e_basic drop column old_boolean; alter table migtest_e_basic drop column old_boolean2; 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 index 0d92c64be..407f8042b 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/oracle11/idx_oracle.migrations +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/oracle11/idx_oracle.migrations @@ -1,6 +1,6 @@ -1839897438, 1.0__initial.sql +-135608451, 1.0__initial.sql 1927010726, 1.1.sql -238598298, 1.2__dropsFor_1.1.sql +521762942, 1.2__dropsFor_1.1.sql 1543053715, 1.3.sql -629809805, 1.4__dropsFor_1.3.sql 1357801733, R__oracle_only_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 af08de6d3..c181e29d5 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 @@ -60,6 +60,7 @@ create table migtest_e_basic ( status2 varchar(1) default 'N' not null, name varchar(127), description varchar(127), + description2 varchar(127), some_date timestamptz, old_boolean boolean default false not null, old_boolean2 boolean, 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 index c9a6d03e6..c98a15504 100644 --- 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 @@ -3,6 +3,8 @@ drop view if exists migtest_e_history2_with_history; -- apply changes +alter table migtest_e_basic drop column description2; + alter table migtest_e_basic drop column old_boolean; alter table migtest_e_basic drop column old_boolean2; 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 38e13bc57..8870c305e 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,6 +1,6 @@ -1329543701, 1.0__initial.sql +1713516005, 1.0__initial.sql 1548995254, 1.1.sql --1861367028, 1.2__dropsFor_1.1.sql +-1155149746, 1.2__dropsFor_1.1.sql -1798982281, 1.3.sql -1991941691, 1.4__dropsFor_1.3.sql 783227075, R__multi_comments.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 index 3e610644e..cd0cf0f7d 100644 --- 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 @@ -60,6 +60,7 @@ create table migtest_e_basic ( status2 varchar(1) default 'N' not null, name varchar(127), description varchar(127), + description2 varchar(127), some_date timestamptz, old_boolean boolean default false not null, old_boolean2 boolean, 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 index c9a6d03e6..c98a15504 100644 --- 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 @@ -3,6 +3,8 @@ drop view if exists migtest_e_history2_with_history; -- apply changes +alter table migtest_e_basic drop column description2; + alter table migtest_e_basic drop column old_boolean; alter table migtest_e_basic drop column old_boolean2; 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 index 370c64f13..d445fd00e 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/postgres9/idx_postgres.migrations +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/postgres9/idx_postgres.migrations @@ -1,6 +1,6 @@ -1428934272, 1.0__initial.sql +-582258071, 1.0__initial.sql 1253246780, 1.1.sql --1861367028, 1.2__dropsFor_1.1.sql +-1155149746, 1.2__dropsFor_1.1.sql 326342179, 1.3.sql -1991941691, 1.4__dropsFor_1.3.sql 783227075, R__multi_comments.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 index abe7271bc..ef262f2a9 100644 --- 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 @@ -60,6 +60,7 @@ create table migtest_e_basic ( status2 varchar(1) default 'N' not null, name varchar(127), description varchar(127), + description2 varchar(127), some_date timestamp, old_boolean bit default false not null, old_boolean2 bit, 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 index 3f8f468ba..6ca9bbadc 100644 --- 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 @@ -1,5 +1,7 @@ -- Migrationscripts for ebean unittest -- apply changes +alter table migtest_e_basic drop column description2; + alter table migtest_e_basic drop column old_boolean; alter table migtest_e_basic drop column old_boolean2; 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 684ce1c07..c3f962ea2 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 +1714992528, 1.0__initial.sql 776493598, 1.1.sql -1359055889, 1.2__dropsFor_1.1.sql +519662611, 1.2__dropsFor_1.1.sql -1656705954, 1.3.sql -1045594368, 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 index 1a4944f30..d6641c368 100644 --- 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 @@ -62,6 +62,7 @@ create table migtest_e_basic ( status2 varchar(1) default 'N' not null, name varchar(127), description varchar(127), + description2 varchar(127), some_date timestamp, old_boolean int default 0 not null, old_boolean2 int, 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 index 3f8f468ba..6ca9bbadc 100644 --- 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 @@ -1,5 +1,7 @@ -- Migrationscripts for ebean unittest -- apply changes +alter table migtest_e_basic drop column description2; + alter table migtest_e_basic drop column old_boolean; alter table migtest_e_basic drop column old_boolean2; 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 25e367a67..10931cc54 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,6 +1,6 @@ -1429491518, 1.0__initial.sql +1636161797, 1.0__initial.sql -1974335860, 1.1.sql -1359055889, 1.2__dropsFor_1.1.sql +519662611, 1.2__dropsFor_1.1.sql -1764531063, 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/sqlserver16/1.0__initial.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/1.0__initial.sql index 72cd2daf4..33a9e7032 100644 --- 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 @@ -60,6 +60,7 @@ create table migtest_e_basic ( status2 varchar(1) default 'N' not null, name varchar(127), description varchar(127), + description2 varchar(227), some_date datetime2, old_boolean bit default 0 not null, old_boolean2 bit, diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/1.2__dropsFor_1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/1.2__dropsFor_1.1.sql index b34091486..e88590502 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/1.2__dropsFor_1.1.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/1.2__dropsFor_1.1.sql @@ -1,5 +1,7 @@ -- Migrationscripts for ebean unittest -- apply changes +EXEC usp_ebean_drop_column migtest_e_basic, description2; + EXEC usp_ebean_drop_column migtest_e_basic, old_boolean; EXEC usp_ebean_drop_column migtest_e_basic, old_boolean2; 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 index 00693e947..6c9a7762a 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/idx_sqlserver.migrations +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/idx_sqlserver.migrations @@ -1,7 +1,7 @@ -2122378240, I__create_procs.sql -802205012, 1.0__initial.sql +-390904708, 1.0__initial.sql -1042228916, 1.1.sql --1805601919, 1.2__dropsFor_1.1.sql +1470614292, 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/sqlserver17/1.0__initial.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/1.0__initial.sql index 13b5da203..3c089ee50 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/1.0__initial.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/1.0__initial.sql @@ -68,6 +68,7 @@ create table migtest_e_basic ( status2 nvarchar(1) default 'N' not null, name nvarchar(127), description nvarchar(127), + description2 nvarchar(227), some_date datetime2, old_boolean bit default 0 not null, old_boolean2 bit, 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 index b34091486..e88590502 100644 --- 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 @@ -1,5 +1,7 @@ -- Migrationscripts for ebean unittest -- apply changes +EXEC usp_ebean_drop_column migtest_e_basic, description2; + EXEC usp_ebean_drop_column migtest_e_basic, old_boolean; EXEC usp_ebean_drop_column migtest_e_basic, old_boolean2; diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/idx_sqlserver.migrations b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/idx_sqlserver.migrations index 388adffc2..e6a71e48d 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/idx_sqlserver.migrations +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/idx_sqlserver.migrations @@ -1,7 +1,7 @@ -2122378240, I__create_procs.sql --1048913407, 1.0__initial.sql +-1036149520, 1.0__initial.sql -898063858, 1.1.sql --1805601919, 1.2__dropsFor_1.1.sql +1470614292, 1.2__dropsFor_1.1.sql -1791137342, 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.0__initial.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/yugabyte/1.0__initial.sql index 702b0317d..11f764f24 100644 --- 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 @@ -60,6 +60,7 @@ create table migtest_e_basic ( status2 varchar(1) default 'N' not null, name varchar(127), description varchar(127), + description2 varchar(127), some_date timestamptz, old_boolean boolean default false not null, old_boolean2 boolean, 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 index c9a6d03e6..c98a15504 100644 --- 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 @@ -3,6 +3,8 @@ drop view if exists migtest_e_history2_with_history; -- apply changes +alter table migtest_e_basic drop column description2; + alter table migtest_e_basic drop column old_boolean; alter table migtest_e_basic drop column old_boolean2; 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 4dd2bc71e..4e6378338 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,6 +1,6 @@ --1449071956, 1.0__initial.sql +603721056, 1.0__initial.sql 1985413053, 1.1.sql --1861367028, 1.2__dropsFor_1.1.sql +-1155149746, 1.2__dropsFor_1.1.sql 2034977550, 1.3.sql -1991941691, 1.4__dropsFor_1.3.sql 561281075, R__order_views.sql From e3980a14a2d7fe441c433d24361e7180e88f4698 Mon Sep 17 00:00:00 2001 From: Noemi Szemenyei Date: Thu, 17 Feb 2022 09:52:23 +0100 Subject: [PATCH 021/114] review changes --- .../ddlgeneration/platform/PlatformDdl.java | 10 ++++++---- .../src/test/java/misc/migration/v1_2/EBasic.java | 4 ++++ 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformDdl.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformDdl.java index 36a712122..d9030a07b 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformDdl.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformDdl.java @@ -333,16 +333,18 @@ public class PlatformDdl { // e.g. @Column(columnDefinition = "db2;blob(64M);sqlserver,h2;varchar(227);varchar(127)") private String extract(String type) { String[] tmp = type.split(";"); - assert tmp.length % 2 == 1; - for (int i = 0; i < tmp.length - 2; i+=2) { + if (tmp.length % 2 == 0) { + throw new IllegalArgumentException("You need an odd number of arguments. See Issue #2559 for details"); + } + for (int i = 0; i < tmp.length - 2; i += 2) { String[] platforms = tmp[i].split(","); for (String plat : platforms) { if (platform.isPlatform(Platform.valueOf(plat.toUpperCase(Locale.ENGLISH)))) { - return tmp[i+1]; + return tmp[i + 1]; } } } - return tmp[tmp.length-1]; // else + return tmp[tmp.length - 1]; // else } /** diff --git a/ebean-test/src/test/java/misc/migration/v1_2/EBasic.java b/ebean-test/src/test/java/misc/migration/v1_2/EBasic.java index 8ebd0776a..4b10b8c73 100644 --- a/ebean-test/src/test/java/misc/migration/v1_2/EBasic.java +++ b/ebean-test/src/test/java/misc/migration/v1_2/EBasic.java @@ -5,6 +5,7 @@ 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; @@ -41,6 +42,9 @@ public class EBasic { @Size(max=127) String description; + + @Column(columnDefinition = "db2;blob(64M);sqlserver,h2;varchar(227);varchar(127)") + String description2; Timestamp someDate; From 137a7950ffbd4972ff6ebde8302b575f8076aafd Mon Sep 17 00:00:00 2001 From: Noemi Szemenyei Date: Thu, 17 Feb 2022 09:53:26 +0100 Subject: [PATCH 022/114] new migrations --- .../test/resources/migrationtest/dbmigration/clickhouse/1.3.sql | 1 + .../dbmigration/clickhouse/idx_clickhouse.migrations | 2 +- .../test/resources/migrationtest/dbmigration/cockroach/1.3.sql | 1 + .../dbmigration/cockroach/idx_cockroach.migrations | 2 +- .../test/resources/migrationtest/dbmigration/db2fori/1.3.sql | 1 + .../migrationtest/dbmigration/db2fori/idx_db2.migrations | 2 +- .../test/resources/migrationtest/dbmigration/db2legacy/1.3.sql | 1 + .../migrationtest/dbmigration/db2legacy/idx_db2.migrations | 2 +- .../src/test/resources/migrationtest/dbmigration/db2luw/1.3.sql | 1 + .../migrationtest/dbmigration/db2luw/idx_db2.migrations | 2 +- .../src/test/resources/migrationtest/dbmigration/db2zos/1.3.sql | 1 + .../migrationtest/dbmigration/db2zos/idx_db2.migrations | 2 +- .../test/resources/migrationtest/dbmigration/generic/1.3.sql | 1 + .../migrationtest/dbmigration/generic/idx_generic.migrations | 2 +- .../src/test/resources/migrationtest/dbmigration/h2/1.3.sql | 1 + .../resources/migrationtest/dbmigration/h2/idx_h2.migrations | 2 +- .../src/test/resources/migrationtest/dbmigration/hana/1.3.sql | 1 + .../migrationtest/dbmigration/hana/idx_hana.migrations | 2 +- .../src/test/resources/migrationtest/dbmigration/hsqldb/1.3.sql | 1 + .../migrationtest/dbmigration/hsqldb/idx_hsqldb.migrations | 2 +- .../resources/migrationtest/dbmigration/mariadb-noprocs/1.3.sql | 1 + .../dbmigration/mariadb-noprocs/idx_mariadb.migrations | 2 +- .../test/resources/migrationtest/dbmigration/mariadb/1.3.sql | 1 + .../migrationtest/dbmigration/mariadb/idx_mariadb.migrations | 2 +- .../resources/migrationtest/dbmigration/model/1.3.model.xml | 1 + .../src/test/resources/migrationtest/dbmigration/mysql/1.3.sql | 1 + .../migrationtest/dbmigration/mysql/idx_mysql.migrations | 2 +- .../test/resources/migrationtest/dbmigration/mysql55/1.3.sql | 1 + .../migrationtest/dbmigration/mysql55/idx_mysql.migrations | 2 +- .../src/test/resources/migrationtest/dbmigration/nuodb/1.3.sql | 1 + .../migrationtest/dbmigration/nuodb/idx_nuodb.migrations | 2 +- .../src/test/resources/migrationtest/dbmigration/oracle/1.3.sql | 1 + .../migrationtest/dbmigration/oracle/idx_oracle.migrations | 2 +- .../test/resources/migrationtest/dbmigration/oracle11/1.3.sql | 1 + .../migrationtest/dbmigration/oracle11/idx_oracle.migrations | 2 +- .../test/resources/migrationtest/dbmigration/postgres/1.3.sql | 1 + .../migrationtest/dbmigration/postgres/idx_postgres.migrations | 2 +- .../test/resources/migrationtest/dbmigration/postgres9/1.3.sql | 1 + .../migrationtest/dbmigration/postgres9/idx_postgres.migrations | 2 +- .../resources/migrationtest/dbmigration/sqlanywhere/1.3.sql | 1 + .../dbmigration/sqlanywhere/idx_sqlanywhere.migrations | 2 +- .../src/test/resources/migrationtest/dbmigration/sqlite/1.3.sql | 1 + .../migrationtest/dbmigration/sqlite/idx_sqlite.migrations | 2 +- .../resources/migrationtest/dbmigration/sqlserver16/1.3.sql | 1 + .../dbmigration/sqlserver16/idx_sqlserver.migrations | 2 +- .../resources/migrationtest/dbmigration/sqlserver17/1.3.sql | 1 + .../dbmigration/sqlserver17/idx_sqlserver.migrations | 2 +- .../test/resources/migrationtest/dbmigration/yugabyte/1.3.sql | 1 + .../migrationtest/dbmigration/yugabyte/idx_yugabyte.migrations | 2 +- 49 files changed, 49 insertions(+), 24 deletions(-) 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 index a9becf417..8e0ffdef5 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/clickhouse/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/clickhouse/1.3.sql @@ -21,6 +21,7 @@ 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 description2 String; 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; 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 b948dd31c..8d0005bd9 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 @@ -429555051, 1.0__initial.sql 1864520180, 1.1.sql 519662611, 1.2__dropsFor_1.1.sql --715327671, 1.3.sql +-1108954500, 1.3.sql -1045594368, 1.4__dropsFor_1.3.sql 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 index 3784bbb0c..0b6ce1041 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/cockroach/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/cockroach/1.3.sql @@ -31,6 +31,7 @@ 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 description2 varchar(127); 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; 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 2a2b4e44f..e23ea759d 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 @@ 1784035212, 1.0__initial.sql -1108404951, 1.1.sql -979513548, 1.2__dropsFor_1.1.sql -735879716, 1.3.sql +-162585387, 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/db2fori/1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/db2fori/1.3.sql index c791cef2d..b3dafa3f2 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/db2fori/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2fori/1.3.sql @@ -31,6 +31,7 @@ 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 description2 blob(64M); 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; 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 index 30c6b2b8e..4e1016ce9 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/db2fori/idx_db2.migrations +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2fori/idx_db2.migrations @@ -1,7 +1,7 @@ 1959738162, 1.0__initial.sql -1594597621, 1.1.sql 1791049503, 1.2__dropsFor_1.1.sql -99025497, 1.3.sql +-1860778446, 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.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/db2legacy/1.3.sql index ab2148795..06f323238 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/db2legacy/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2legacy/1.3.sql @@ -31,6 +31,7 @@ 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 description2 blob(64M); 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; 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 index e50c9477c..f8b41e5fc 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/db2legacy/idx_db2.migrations +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2legacy/idx_db2.migrations @@ -1,7 +1,7 @@ 254148970, 1.0__initial.sql -1126979163, 1.1.sql 1791049503, 1.2__dropsFor_1.1.sql --183167227, 1.3.sql +-191324018, 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/db2luw/1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/db2luw/1.3.sql index e6dd4b34a..e5cf08d5a 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/db2luw/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2luw/1.3.sql @@ -31,6 +31,7 @@ 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 description2 blob(64M); 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; diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/db2luw/idx_db2.migrations b/ebean-test/src/test/resources/migrationtest/dbmigration/db2luw/idx_db2.migrations index c4559ee6f..5a92d457a 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/db2luw/idx_db2.migrations +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2luw/idx_db2.migrations @@ -1,7 +1,7 @@ 662450113, 1.0__initial.sql 1615151513, 1.1.sql 1791049503, 1.2__dropsFor_1.1.sql --1206650320, 1.3.sql +1024337021, 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/db2zos/1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/db2zos/1.3.sql index e6dd4b34a..e5cf08d5a 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/db2zos/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2zos/1.3.sql @@ -31,6 +31,7 @@ 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 description2 blob(64M); 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; 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 index c4559ee6f..5a92d457a 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/db2zos/idx_db2.migrations +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2zos/idx_db2.migrations @@ -1,7 +1,7 @@ 662450113, 1.0__initial.sql 1615151513, 1.1.sql 1791049503, 1.2__dropsFor_1.1.sql --1206650320, 1.3.sql +1024337021, 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.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/generic/1.3.sql index 8e3122e17..13b1f7901 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/generic/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/generic/1.3.sql @@ -31,6 +31,7 @@ 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 description2 varchar(127); 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; 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 f487f916b..835412d75 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 @@ -1383651907, 1.0__initial.sql -1825206641, 1.1.sql 519662611, 1.2__dropsFor_1.1.sql -297569863, 1.3.sql +-694156372, 1.3.sql -1045594368, 1.4__dropsFor_1.3.sql 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 index a1d6ccad1..f4e5cdbf7 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/h2/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/h2/1.3.sql @@ -36,6 +36,7 @@ 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 description2 varchar(227); 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; 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 a99a1d97f..91caca6ba 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,7 +1,7 @@ -1018429770, 1.0__initial.sql 1409369419, 1.1.sql -1904864828, 1.2__dropsFor_1.1.sql --1513154593, 1.3.sql +955423690, 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.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/hana/1.3.sql index 9e3ba6f9f..f5e4268bb 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/hana/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/hana/1.3.sql @@ -46,6 +46,7 @@ $$; 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 ( description2 nvarchar(127)); 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); 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 a9537f7d5..d6bdd1488 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 @@ -809467006, 1.0__initial.sql -1152055114, 1.1.sql 1569252375, 1.2__dropsFor_1.1.sql -1566488731, 1.3.sql +-5080522, 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.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/hsqldb/1.3.sql index f7f307719..e2f99c94a 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/hsqldb/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/hsqldb/1.3.sql @@ -31,6 +31,7 @@ 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 description2 varchar(127); 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; 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 96334f2ea..a1067cf9f 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 @@ 1113607799, 1.0__initial.sql -865579750, 1.1.sql 2029151368, 1.2__dropsFor_1.1.sql --2039573992, 1.3.sql +1688061039, 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.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb-noprocs/1.3.sql index 5930c283a..32868f369 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb-noprocs/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb-noprocs/1.3.sql @@ -26,6 +26,7 @@ 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 description2 varchar(127); 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; 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 8c71ab965..e15facf52 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 @@ 629411155, 1.0__initial.sql 128637084, 1.1.sql 2029151368, 1.2__dropsFor_1.1.sql --1957738355, 1.3.sql +2066375527, 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.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb/1.3.sql index 5930c283a..32868f369 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb/1.3.sql @@ -26,6 +26,7 @@ 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 description2 varchar(127); 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; 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 0d2f8e861..db5e5fdde 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 @@ -2,7 +2,7 @@ 629411155, 1.0__initial.sql 128637084, 1.1.sql -1078955818, 1.2__dropsFor_1.1.sql --1957738355, 1.3.sql +2066375527, 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.3.model.xml b/ebean-test/src/test/resources/migrationtest/dbmigration/model/1.3.model.xml index 296b101b0..a45f74384 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 @@ -11,6 +11,7 @@ + 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 index 6953c06f5..4db93c716 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/mysql/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/mysql/1.3.sql @@ -31,6 +31,7 @@ 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 description2 varchar(127); 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; 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 127648cc0..6411d3b61 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 @@ -2,7 +2,7 @@ -625233983, 1.0__initial.sql -1627573867, 1.1.sql 426154419, 1.2__dropsFor_1.1.sql --380371830, 1.3.sql +-912122613, 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/mysql55/1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/mysql55/1.3.sql index 6953c06f5..4db93c716 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/mysql55/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/mysql55/1.3.sql @@ -31,6 +31,7 @@ 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 description2 varchar(127); 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; 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 index c456088a8..b6eaabb70 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/mysql55/idx_mysql.migrations +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/mysql55/idx_mysql.migrations @@ -2,7 +2,7 @@ -753661440, 1.0__initial.sql -1627573867, 1.1.sql 426154419, 1.2__dropsFor_1.1.sql --380371830, 1.3.sql +-912122613, 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.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/nuodb/1.3.sql index 0dac2cb68..dd2cc1316 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/nuodb/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/nuodb/1.3.sql @@ -36,6 +36,7 @@ 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 description2 varchar(127); 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; 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 c79573427..31a151683 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 @@ -1938088728, 1.0__initial.sql 667708916, 1.1.sql 1794931214, 1.2__dropsFor_1.1.sql -870952105, 1.3.sql +-393070431, 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.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/oracle/1.3.sql index ceafdbcff..ed27922b2 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 @@ -31,6 +31,7 @@ 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 description2 varchar2(127); 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); 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 f549ab768..95ddb4adb 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 @@ -1818229777, 1.0__initial.sql -411370666, 1.1.sql 521762942, 1.2__dropsFor_1.1.sql -483114276, 1.3.sql +371950917, 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.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/oracle11/1.3.sql index 0b528fe86..c2f59614c 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/oracle11/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/oracle11/1.3.sql @@ -32,6 +32,7 @@ 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 description2 varchar2(127); 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); 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 index 407f8042b..a9520a367 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/oracle11/idx_oracle.migrations +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/oracle11/idx_oracle.migrations @@ -1,7 +1,7 @@ -135608451, 1.0__initial.sql 1927010726, 1.1.sql 521762942, 1.2__dropsFor_1.1.sql -1543053715, 1.3.sql +1449510461, 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.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/postgres/1.3.sql index dbcb50aac..e3a825a2c 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 @@ -36,6 +36,7 @@ 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 description2 varchar(127); 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; 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 8870c305e..7eeb91a48 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 @@ 1713516005, 1.0__initial.sql 1548995254, 1.1.sql -1155149746, 1.2__dropsFor_1.1.sql --1798982281, 1.3.sql +-303061649, 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.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/postgres9/1.3.sql index b6e8c3a34..ff5c60830 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/postgres9/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/postgres9/1.3.sql @@ -36,6 +36,7 @@ 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 description2 varchar(127); 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; 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 index d445fd00e..f23717ef8 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/postgres9/idx_postgres.migrations +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/postgres9/idx_postgres.migrations @@ -1,7 +1,7 @@ -582258071, 1.0__initial.sql 1253246780, 1.1.sql -1155149746, 1.2__dropsFor_1.1.sql -326342179, 1.3.sql +22458812, 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/sqlanywhere/1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlanywhere/1.3.sql index 0133a0673..16a6242b9 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlanywhere/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlanywhere/1.3.sql @@ -31,6 +31,7 @@ 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 description2 varchar(127); 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; 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 c3f962ea2..c95356d8d 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 @@ 1714992528, 1.0__initial.sql 776493598, 1.1.sql 519662611, 1.2__dropsFor_1.1.sql --1656705954, 1.3.sql +1025160700, 1.3.sql -1045594368, 1.4__dropsFor_1.3.sql 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 index 3812d6e38..2f08cf01a 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlite/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlite/1.3.sql @@ -29,6 +29,7 @@ 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 description2 varchar(127); 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; 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 10931cc54..ea522c240 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 @@ 1636161797, 1.0__initial.sql -1974335860, 1.1.sql 519662611, 1.2__dropsFor_1.1.sql --1764531063, 1.3.sql +981819594, 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/sqlserver16/1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/1.3.sql index 9a143282f..ff6aa310d 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/1.3.sql @@ -31,6 +31,7 @@ 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 description2 varchar(227); 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; 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 index 6c9a7762a..ad8e7e852 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/idx_sqlserver.migrations +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/idx_sqlserver.migrations @@ -2,7 +2,7 @@ -390904708, 1.0__initial.sql -1042228916, 1.1.sql 1470614292, 1.2__dropsFor_1.1.sql --807119885, 1.3.sql +-948255182, 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/sqlserver17/1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/1.3.sql index 76564b73c..fc7b9e959 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/1.3.sql @@ -32,6 +32,7 @@ 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 description2 nvarchar(227); 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; diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/idx_sqlserver.migrations b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/idx_sqlserver.migrations index e6a71e48d..bc9ade414 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/idx_sqlserver.migrations +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/idx_sqlserver.migrations @@ -2,7 +2,7 @@ -1036149520, 1.0__initial.sql -898063858, 1.1.sql 1470614292, 1.2__dropsFor_1.1.sql --1791137342, 1.3.sql +790811814, 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.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/yugabyte/1.3.sql index d0e444fc4..754e29b06 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/yugabyte/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/yugabyte/1.3.sql @@ -36,6 +36,7 @@ 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 description2 varchar(127); 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; 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 4e6378338..e7ccfb6ad 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 @@ 603721056, 1.0__initial.sql 1985413053, 1.1.sql -1155149746, 1.2__dropsFor_1.1.sql -2034977550, 1.3.sql +-27599186, 1.3.sql -1991941691, 1.4__dropsFor_1.3.sql 561281075, R__order_views.sql From 08838770e95c7507f6a34bc9100868037b8bc62c Mon Sep 17 00:00:00 2001 From: Roland Praml Date: Thu, 17 Feb 2022 14:45:02 +0100 Subject: [PATCH 023/114] No effective code change: Removed obsolete IOExceptions --- .../dbmigration/DdlGenerator.java | 16 +-- .../ddlgeneration/BaseDdlHandler.java | 31 +++-- .../dbmigration/ddlgeneration/ColumnDdl.java | 8 +- .../dbmigration/ddlgeneration/DdlHandler.java | 32 +++--- .../dbmigration/ddlgeneration/TableDdl.java | 30 +++-- .../ddlgeneration/platform/BaseTableDdl.java | 107 +++++++++--------- .../ddlgeneration/platform/HanaTableDdl.java | 9 +- .../dbmigration/model/CurrentModel.java | 7 +- .../platform/BaseTableDdlTest.java | 15 ++- .../ddlgeneration/platform/HanaDdlTest.java | 6 +- .../platform/PlatformDdl_AlterColumnTest.java | 4 +- 11 files changed, 121 insertions(+), 144 deletions(-) diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/DdlGenerator.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/DdlGenerator.java index b9fead35b..9e6d7ea28 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/DdlGenerator.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/DdlGenerator.java @@ -305,21 +305,13 @@ public class DdlGenerator implements SpiDdlGenerator { } protected String generateDropAllDdl() { - try { - dropAllContent = currentModel().getDropAllDdl(); - return dropAllContent; - } catch (IOException e) { - throw new RuntimeException(e); - } + dropAllContent = currentModel().getDropAllDdl(); + return dropAllContent; } protected String generateCreateAllDdl() { - try { - createAllContent = currentModel().getCreateDdl(); - return createAllContent; - } catch (IOException e) { - throw new RuntimeException(e); - } + createAllContent = currentModel().getCreateDdl(); + return createAllContent; } protected String getDropFileName() { diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/BaseDdlHandler.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/BaseDdlHandler.java index 870d90472..a78219962 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/BaseDdlHandler.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/BaseDdlHandler.java @@ -17,7 +17,6 @@ import io.ebeaninternal.dbmigration.migration.DropHistoryTable; import io.ebeaninternal.dbmigration.migration.DropIndex; import io.ebeaninternal.dbmigration.migration.DropTable; -import java.io.IOException; import java.util.List; /** @@ -36,7 +35,7 @@ public class BaseDdlHandler implements DdlHandler { } @Override - public void generate(DdlWrite writer, ChangeSet changeSet) throws IOException { + public void generate(DdlWrite writer, ChangeSet changeSet) { List changeSetChildren = changeSet.getChangeSetChildren(); for (Object change : changeSetChildren) { @@ -76,72 +75,72 @@ public class BaseDdlHandler implements DdlHandler { } @Override - public void generateProlog(DdlWrite write) throws IOException { + public void generateProlog(DdlWrite write) { tableDdl.generateProlog(write); } @Override - public void generateEpilog(DdlWrite write) throws IOException { + public void generateEpilog(DdlWrite write) { tableDdl.generateEpilog(write); } @Override - public void generate(DdlWrite writer, CreateTable createTable) throws IOException { + public void generate(DdlWrite writer, CreateTable createTable) { tableDdl.generate(writer, createTable); } @Override - public void generate(DdlWrite writer, DropTable dropTable) throws IOException { + public void generate(DdlWrite writer, DropTable dropTable) { tableDdl.generate(writer, dropTable); } @Override - public void generate(DdlWrite writer, AddTableComment addTableComment) throws IOException { + public void generate(DdlWrite writer, AddTableComment addTableComment) { tableDdl.generate(writer, addTableComment); } @Override - public void generate(DdlWrite writer, AddColumn addColumn) throws IOException { + public void generate(DdlWrite writer, AddColumn addColumn) { tableDdl.generate(writer, addColumn); } @Override - public void generate(DdlWrite writer, DropColumn dropColumn) throws IOException { + public void generate(DdlWrite writer, DropColumn dropColumn) { tableDdl.generate(writer, dropColumn); } @Override - public void generate(DdlWrite writer, AlterColumn alterColumn) throws IOException { + public void generate(DdlWrite writer, AlterColumn alterColumn) { tableDdl.generate(writer, alterColumn); } @Override - public void generate(DdlWrite writer, AddHistoryTable addHistoryTable) throws IOException { + public void generate(DdlWrite writer, AddHistoryTable addHistoryTable) { tableDdl.generate(writer, addHistoryTable); } @Override - public void generate(DdlWrite writer, DropHistoryTable dropHistoryTable) throws IOException { + public void generate(DdlWrite writer, DropHistoryTable dropHistoryTable) { tableDdl.generate(writer, dropHistoryTable); } @Override - public void generate(DdlWrite writer, CreateIndex createIndex) throws IOException { + public void generate(DdlWrite writer, CreateIndex createIndex) { tableDdl.generate(writer, createIndex); } @Override - public void generate(DdlWrite writer, DropIndex dropIndex) throws IOException { + public void generate(DdlWrite writer, DropIndex dropIndex) { tableDdl.generate(writer, dropIndex); } @Override - public void generate(DdlWrite writer, AddUniqueConstraint constraint) throws IOException { + public void generate(DdlWrite writer, AddUniqueConstraint constraint) { tableDdl.generate(writer, constraint); } @Override - public void generate(DdlWrite writer, AlterForeignKey alterForeignKey) throws IOException { + public void generate(DdlWrite writer, AlterForeignKey alterForeignKey) { tableDdl.generate(writer, alterForeignKey); } } diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/ColumnDdl.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/ColumnDdl.java index fa334e88a..e4189997f 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/ColumnDdl.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/ColumnDdl.java @@ -4,8 +4,6 @@ import io.ebeaninternal.dbmigration.migration.AddColumn; import io.ebeaninternal.dbmigration.migration.AlterColumn; import io.ebeaninternal.dbmigration.migration.DropColumn; -import java.io.IOException; - /** * Write DDL for AddColumn , DropColumn or AlterColumn. */ @@ -14,15 +12,15 @@ public interface ColumnDdl { /** * Write the add column change. */ - void generate(DdlWrite writer, AddColumn addColumn) throws IOException; + void generate(DdlWrite writer, AddColumn addColumn); /** * Write the drop column change. */ - void generate(DdlWrite writer, DropColumn dropColumn) throws IOException; + void generate(DdlWrite writer, DropColumn dropColumn); /** * Write the alter column changes. */ - void generate(DdlWrite writer, AlterColumn alterColumn) throws IOException; + void generate(DdlWrite writer, AlterColumn alterColumn); } diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/DdlHandler.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/DdlHandler.java index 9a693640f..b16939527 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/DdlHandler.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/DdlHandler.java @@ -14,40 +14,38 @@ import io.ebeaninternal.dbmigration.migration.DropHistoryTable; import io.ebeaninternal.dbmigration.migration.DropIndex; import io.ebeaninternal.dbmigration.migration.DropTable; -import java.io.IOException; - /** * DDL generation interface. */ public interface DdlHandler { - void generate(DdlWrite writer, ChangeSet changeSet) throws IOException; + void generate(DdlWrite writer, ChangeSet changeSet); - void generate(DdlWrite writer, CreateTable createTable) throws IOException; + void generate(DdlWrite writer, CreateTable createTable); - void generate(DdlWrite writer, DropTable dropTable) throws IOException; + void generate(DdlWrite writer, DropTable dropTable); - void generate(DdlWrite writer, AddTableComment addTableComment) throws IOException; + void generate(DdlWrite writer, AddTableComment addTableComment); - void generate(DdlWrite writer, AddColumn addColumn) throws IOException; + void generate(DdlWrite writer, AddColumn addColumn); - void generate(DdlWrite writer, DropColumn dropColumn) throws IOException; + void generate(DdlWrite writer, DropColumn dropColumn); - void generate(DdlWrite writer, AlterColumn alterColumn) throws IOException; + void generate(DdlWrite writer, AlterColumn alterColumn); - void generate(DdlWrite writer, AddHistoryTable addHistoryTable) throws IOException; + void generate(DdlWrite writer, AddHistoryTable addHistoryTable); - void generate(DdlWrite writer, DropHistoryTable dropHistoryTable) throws IOException; + void generate(DdlWrite writer, DropHistoryTable dropHistoryTable); - void generate(DdlWrite writer, CreateIndex createIndex) throws IOException; + void generate(DdlWrite writer, CreateIndex createIndex); - void generate(DdlWrite writer, DropIndex dropIndex) throws IOException; + void generate(DdlWrite writer, DropIndex dropIndex); - void generate(DdlWrite writer, AddUniqueConstraint constraint) throws IOException; + void generate(DdlWrite writer, AddUniqueConstraint constraint); - void generate(DdlWrite writer, AlterForeignKey alterForeignKey) throws IOException; + void generate(DdlWrite writer, AlterForeignKey alterForeignKey); - void generateProlog(DdlWrite write) throws IOException; + void generateProlog(DdlWrite write); - void generateEpilog(DdlWrite write) throws IOException; + void generateEpilog(DdlWrite write); } diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/TableDdl.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/TableDdl.java index 1ef34384b..493a0f10d 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/TableDdl.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/TableDdl.java @@ -13,8 +13,6 @@ import io.ebeaninternal.dbmigration.migration.DropHistoryTable; import io.ebeaninternal.dbmigration.migration.DropIndex; import io.ebeaninternal.dbmigration.migration.DropTable; -import java.io.IOException; - /** * Write table DDL. */ @@ -23,70 +21,70 @@ public interface TableDdl { /** * Generate the create table change. */ - void generate(DdlWrite writer, CreateTable createTable) throws IOException; + void generate(DdlWrite writer, CreateTable createTable); /** * Write the drop column change. */ - void generate(DdlWrite writer, DropTable dropTable) throws IOException; + void generate(DdlWrite writer, DropTable dropTable); /** * Write the add column change. */ - void generate(DdlWrite writer, AddColumn addColumn) throws IOException; + void generate(DdlWrite writer, AddColumn addColumn); /** * Write the alter column changes. */ - void generate(DdlWrite writer, AlterColumn alterColumn) throws IOException; + void generate(DdlWrite writer, AlterColumn alterColumn); /** * Write the drop column change. */ - void generate(DdlWrite writer, DropColumn dropColumn) throws IOException; + void generate(DdlWrite writer, DropColumn dropColumn); /** * Write the AddTableComment change. */ - void generate(DdlWrite writer, AddTableComment addTableComment) throws IOException; + void generate(DdlWrite writer, AddTableComment addTableComment); /** * Write the AddHistoryTable change. */ - void generate(DdlWrite writer, AddHistoryTable addHistoryTable) throws IOException; + void generate(DdlWrite writer, AddHistoryTable addHistoryTable); /** * Write the DropHistoryTable change. */ - void generate(DdlWrite writer, DropHistoryTable dropHistoryTable) throws IOException; + void generate(DdlWrite writer, DropHistoryTable dropHistoryTable); /** * Generate the create index change. */ - void generate(DdlWrite writer, CreateIndex createIndex) throws IOException; + void generate(DdlWrite writer, CreateIndex createIndex); /** * Write the drop index change. */ - void generate(DdlWrite writer, DropIndex dropIndex) throws IOException; + void generate(DdlWrite writer, DropIndex dropIndex); /** * Write add unique constraint. */ - void generate(DdlWrite writer, AddUniqueConstraint constraint) throws IOException; + void generate(DdlWrite writer, AddUniqueConstraint constraint); /** * Writes alter foreign key statements. */ - void generate(DdlWrite writer, AlterForeignKey alterForeignKey) throws IOException; + void generate(DdlWrite writer, AlterForeignKey alterForeignKey); /** * Generate any extra DDL such as stored procedures or TableValueParameters. */ - void generateProlog(DdlWrite write) throws IOException; + void generateProlog(DdlWrite write); /** * Generate any extra DDL such as regeneration of history triggers. */ - void generateEpilog(DdlWrite write) throws IOException; + void generateEpilog(DdlWrite write); } diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/BaseTableDdl.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/BaseTableDdl.java index 0e80c2676..34839184c 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/BaseTableDdl.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/BaseTableDdl.java @@ -32,7 +32,6 @@ import io.ebeaninternal.dbmigration.model.MTable; import io.ebeaninternal.dbmigration.model.MTableIdentity; import io.ebeaninternal.server.deploy.IdentityMode; -import java.io.IOException; import java.util.ArrayList; import java.util.Collections; import java.util.LinkedHashMap; @@ -141,7 +140,7 @@ public class BaseTableDdl implements TableDdl { after = getScriptsForPlatform(alter.getAfter()); } - void writeBefore(DdlBuffer buffer) throws IOException { + void writeBefore(DdlBuffer buffer) { if (!before.isEmpty()) { buffer.end(); } @@ -154,7 +153,7 @@ public class BaseTableDdl implements TableDdl { } } - void writeAfter(DdlBuffer buffer) throws IOException { + void writeAfter(DdlBuffer buffer) { if (!after.isEmpty() && withHistory) { buffer.append("-- NOTE: table has @History - special migration may be necessary").newLine(); } @@ -235,7 +234,7 @@ public class BaseTableDdl implements TableDdl { * and add them to the appropriate 'apply' and 'rollback' buffers. */ @Override - public void generate(DdlWrite writer, CreateTable createTable) throws IOException { + public void generate(DdlWrite writer, CreateTable createTable) { reset(); String tableName = lowerTableName(createTable.getName()); @@ -308,7 +307,7 @@ public class BaseTableDdl implements TableDdl { /** * Add table and column comments (separate from the create table statement). */ - private void addComments(DdlBuffer apply, CreateTable createTable) throws IOException { + private void addComments(DdlBuffer apply, CreateTable createTable) { if (!platformDdl.isInlineComments()) { String tableComment = createTable.getComment(); if (hasValue(tableComment)) { @@ -325,7 +324,7 @@ public class BaseTableDdl implements TableDdl { /** * Add the table storage engine clause. */ - private void addTableStorageEngine(DdlBuffer apply, CreateTable createTable) throws IOException { + private void addTableStorageEngine(DdlBuffer apply, CreateTable createTable) { if (platformDdl.isIncludeStorageEngine()) { platformDdl.tableStorageEngine(apply, createTable.getStorageEngine()); } @@ -334,7 +333,7 @@ public class BaseTableDdl implements TableDdl { /** * Add the table comment inline with the create table statement. */ - private void addTableCommentInline(DdlBuffer apply, CreateTable createTable) throws IOException { + private void addTableCommentInline(DdlBuffer apply, CreateTable createTable) { if (platformDdl.isInlineComments()) { String tableComment = createTable.getComment(); if (!StringHelper.isNull(tableComment)) { @@ -343,7 +342,7 @@ public class BaseTableDdl implements TableDdl { } } - private void writeTableColumns(DdlBuffer apply, List columns, DdlIdentity identity) throws IOException { + private void writeTableColumns(DdlBuffer apply, List columns, DdlIdentity identity) { platformDdl.writeTableColumns(apply, columns, identity); } @@ -351,7 +350,7 @@ public class BaseTableDdl implements TableDdl { * Specific handling of OneToOne unique constraints for MsSqlServer. * For all other DB platforms these unique constraints are done inline as per normal. */ - protected void writeUniqueOneToOneConstraints(DdlWrite write, CreateTable createTable) throws IOException { + protected void writeUniqueOneToOneConstraints(DdlWrite write, CreateTable createTable) { String tableName = createTable.getName(); for (Column col : externalUnique) { String uqName = col.getUniqueOneToOne(); @@ -373,7 +372,7 @@ public class BaseTableDdl implements TableDdl { } } - protected void writeSequence(DdlWrite writer, DdlIdentity identity) throws IOException { + protected void writeSequence(DdlWrite writer, DdlIdentity identity) { String seqName = identity.getSequenceName(); String createSeq = platformDdl.createSequence(seqName, identity); if (hasValue(createSeq)) { @@ -382,12 +381,12 @@ public class BaseTableDdl implements TableDdl { } } - protected void createWithHistory(DdlWrite writer, String name) throws IOException { + protected void createWithHistory(DdlWrite writer, String name) { MTable table = writer.getTable(name); platformDdl.createWithHistory(writer, table); } - protected void writeInlineForeignKeys(DdlWrite write, CreateTable createTable) throws IOException { + protected void writeInlineForeignKeys(DdlWrite write, CreateTable createTable) { for (Column column : createTable.getColumn()) { String references = column.getReferences(); if (hasValue(references)) { @@ -397,19 +396,19 @@ public class BaseTableDdl implements TableDdl { writeInlineCompoundForeignKeys(write, createTable); } - protected void writeInlineForeignKey(DdlWrite write, Column column) throws IOException { + protected void writeInlineForeignKey(DdlWrite write, Column column) { String fkConstraint = platformDdl.tableInlineForeignKey(new WriteForeignKey(null, column)); write.apply().append(",").newLine().append(" ").append(fkConstraint); } - protected void writeInlineCompoundForeignKeys(DdlWrite write, CreateTable createTable) throws IOException { + protected void writeInlineCompoundForeignKeys(DdlWrite write, CreateTable createTable) { for (ForeignKey key : createTable.getForeignKey()) { String fkConstraint = platformDdl.tableInlineForeignKey(new WriteForeignKey(null, key)); write.apply().append(",").newLine().append(" ").append(fkConstraint); } } - protected void writeAddForeignKeys(DdlWrite write, CreateTable createTable) throws IOException { + protected void writeAddForeignKeys(DdlWrite write, CreateTable createTable) { for (Column column : createTable.getColumn()) { String references = column.getReferences(); if (hasValue(references)) { @@ -419,17 +418,17 @@ public class BaseTableDdl implements TableDdl { writeAddCompoundForeignKeys(write, createTable); } - protected void writeAddCompoundForeignKeys(DdlWrite write, CreateTable createTable) throws IOException { + protected void writeAddCompoundForeignKeys(DdlWrite write, CreateTable createTable) { for (ForeignKey key : createTable.getForeignKey()) { writeForeignKey(write, new WriteForeignKey(createTable.getName(), key)); } } - protected void writeForeignKey(DdlWrite write, String tableName, Column column) throws IOException { + protected void writeForeignKey(DdlWrite write, String tableName, Column column) { writeForeignKey(write, new WriteForeignKey(tableName, column)); } - protected void writeForeignKey(DdlWrite write, WriteForeignKey request) throws IOException { + protected void writeForeignKey(DdlWrite write, WriteForeignKey request) { DdlBuffer fkeyBuffer = write.applyForeignKeys(); String tableName = lowerTableName(request.table()); if (request.indexName() != null) { @@ -446,11 +445,11 @@ public class BaseTableDdl implements TableDdl { write.dropAllForeignKeys().end(); } - protected void alterTableAddForeignKey(DdlOptions options, DdlBuffer buffer, WriteForeignKey request) throws IOException { + protected void alterTableAddForeignKey(DdlOptions options, DdlBuffer buffer, WriteForeignKey request) { buffer.appendStatement(platformDdl.alterTableAddForeignKey(options, request)); } - protected void appendColumns(String[] columns, DdlBuffer buffer) throws IOException { + protected void appendColumns(String[] columns, DdlBuffer buffer) { buffer.append(" ("); for (int i = 0; i < columns.length; i++) { if (i > 0) { @@ -464,18 +463,18 @@ public class BaseTableDdl implements TableDdl { /** * Add 'drop table' statement to the buffer. */ - protected void dropTable(DdlBuffer buffer, String tableName) throws IOException { + protected void dropTable(DdlBuffer buffer, String tableName) { buffer.appendStatement(platformDdl.dropTable(tableName)); } /** * Add 'drop sequence' statement to the buffer. */ - protected void dropSequence(DdlBuffer buffer, String sequenceName) throws IOException { + protected void dropSequence(DdlBuffer buffer, String sequenceName) { buffer.appendStatement(platformDdl.dropSequence(sequenceName)); } - protected void writeCompoundUniqueConstraints(DdlBuffer apply, CreateTable createTable) throws IOException { + protected void writeCompoundUniqueConstraints(DdlBuffer apply, CreateTable createTable) { boolean inlineUniqueWhenNull = platformDdl.isInlineUniqueWhenNullable(); for (UniqueConstraint uniqueConstraint : createTable.getUniqueConstraint()) { if (platformInclude(uniqueConstraint.getPlatforms())) { @@ -498,7 +497,7 @@ public class BaseTableDdl implements TableDdl { /** * Write the unique constraints inline with the create table statement. */ - protected void writeUniqueConstraints(DdlBuffer apply, CreateTable createTable) throws IOException { + protected void writeUniqueConstraints(DdlBuffer apply, CreateTable createTable) { boolean inlineUniqueWhenNullable = platformDdl.isInlineUniqueWhenNullable(); List columns = new WriteUniqueConstraint(createTable.getColumn()).uniqueKeys(); for (Column column : columns) { @@ -515,7 +514,7 @@ public class BaseTableDdl implements TableDdl { /** * Write the unique constraint inline with the create table statement. */ - protected void inlineUniqueConstraintSingle(DdlBuffer buffer, Column column) throws IOException { + protected void inlineUniqueConstraintSingle(DdlBuffer buffer, Column column) { String uqName = column.getUnique(); if (uqName == null) { uqName = column.getUniqueOneToOne(); @@ -530,7 +529,7 @@ public class BaseTableDdl implements TableDdl { /** * Write the primary key constraint inline with the create table statement. */ - protected void writePrimaryKeyConstraint(DdlBuffer buffer, String pkName, String[] pkColumns) throws IOException { + protected void writePrimaryKeyConstraint(DdlBuffer buffer, String pkName, String[] pkColumns) { buffer.append(",").newLine(); buffer.append(" constraint ").append(pkName).append(" primary key"); appendColumns(pkColumns, buffer); @@ -575,7 +574,7 @@ public class BaseTableDdl implements TableDdl { } @Override - public void generate(DdlWrite writer, CreateIndex index) throws IOException { + public void generate(DdlWrite writer, CreateIndex index) { if (platformInclude(index.getPlatforms())) { writer.apply().appendStatement(platformDdl.createIndex(new WriteCreateIndex(index))); writer.dropAll().appendStatement(platformDdl.dropIndex(index.getIndexName(), index.getTableName(), Boolean.TRUE.equals(index.isConcurrent()))); @@ -583,14 +582,14 @@ public class BaseTableDdl implements TableDdl { } @Override - public void generate(DdlWrite writer, DropIndex dropIndex) throws IOException { + public void generate(DdlWrite writer, DropIndex dropIndex) { if (platformInclude(dropIndex.getPlatforms())) { writer.apply().appendStatement(platformDdl.dropIndex(dropIndex.getIndexName(), dropIndex.getTableName(), Boolean.TRUE.equals(dropIndex.isConcurrent()))); } } @Override - public void generate(DdlWrite writer, AddUniqueConstraint constraint) throws IOException { + public void generate(DdlWrite writer, AddUniqueConstraint constraint) { if (platformInclude(constraint.getPlatforms())) { if (DdlHelp.isDropConstraint(constraint.getColumnNames())) { writer.apply().appendStatement(platformDdl.alterTableDropUniqueConstraint(constraint.getTableName(), constraint.getConstraintName())); @@ -604,7 +603,7 @@ public class BaseTableDdl implements TableDdl { } @Override - public void generate(DdlWrite writer, AlterForeignKey alterForeignKey) throws IOException { + public void generate(DdlWrite writer, AlterForeignKey alterForeignKey) { if (DdlHelp.isDropForeignKey(alterForeignKey.getColumnNames())) { writer.apply().appendStatement(platformDdl.alterTableDropForeignKey(alterForeignKey.getTableName(), alterForeignKey.getName())); } else { @@ -616,7 +615,7 @@ public class BaseTableDdl implements TableDdl { * Add add history table DDL. */ @Override - public void generate(DdlWrite writer, AddHistoryTable addHistoryTable) throws IOException { + public void generate(DdlWrite writer, AddHistoryTable addHistoryTable) { platformDdl.addHistoryTable(writer, addHistoryTable); } @@ -624,12 +623,12 @@ public class BaseTableDdl implements TableDdl { * Add drop history table DDL. */ @Override - public void generate(DdlWrite writer, DropHistoryTable dropHistoryTable) throws IOException { + public void generate(DdlWrite writer, DropHistoryTable dropHistoryTable) { platformDdl.dropHistoryTable(writer, dropHistoryTable); } @Override - public void generateProlog(DdlWrite write) throws IOException { + public void generateProlog(DdlWrite write) { platformDdl.generateProlog(write); } @@ -637,7 +636,7 @@ public class BaseTableDdl implements TableDdl { * Called at the end to generate additional ddl such as regenerate history triggers. */ @Override - public void generateEpilog(DdlWrite write) throws IOException { + public void generateEpilog(DdlWrite write) { if (!regenerateHistoryTriggers.isEmpty()) { platformDdl.lockTables(write.applyHistoryTrigger(), regenerateHistoryTriggers.keySet()); @@ -651,7 +650,7 @@ public class BaseTableDdl implements TableDdl { } @Override - public void generate(DdlWrite writer, AddTableComment addTableComment) throws IOException { + public void generate(DdlWrite writer, AddTableComment addTableComment) { if (hasValue(addTableComment.getComment())) { platformDdl.addTableComment(writer.apply(), addTableComment.getName(), addTableComment.getComment()); } @@ -661,7 +660,7 @@ public class BaseTableDdl implements TableDdl { * Add add column DDL. */ @Override - public void generate(DdlWrite writer, AddColumn addColumn) throws IOException { + public void generate(DdlWrite writer, AddColumn addColumn) { String tableName = addColumn.getTableName(); List columns = addColumn.getColumn(); for (Column column : columns) { @@ -687,7 +686,7 @@ public class BaseTableDdl implements TableDdl { * Add drop table DDL. */ @Override - public void generate(DdlWrite writer, DropTable dropTable) throws IOException { + public void generate(DdlWrite writer, DropTable dropTable) { dropTable(writer.apply(), dropTable.getName()); if (hasValue(dropTable.getSequenceCol()) && platformDdl.getPlatform().getDbIdentity().isSupportsSequence()) { @@ -703,7 +702,7 @@ public class BaseTableDdl implements TableDdl { * Add drop column DDL. */ @Override - public void generate(DdlWrite writer, DropColumn dropColumn) throws IOException { + public void generate(DdlWrite writer, DropColumn dropColumn) { String tableName = dropColumn.getTableName(); alterTableDropColumn(writer.apply(), tableName, dropColumn.getColumnName()); @@ -719,7 +718,7 @@ public class BaseTableDdl implements TableDdl { * Add all the appropriate changes based on the column changes. */ @Override - public void generate(DdlWrite writer, AlterColumn alterColumn) throws IOException { + public void generate(DdlWrite writer, AlterColumn alterColumn) { DdlMigrationHelp ddlHelp = new DdlMigrationHelp(alterColumn); ddlHelp.writeBefore(writer.apply()); @@ -781,7 +780,7 @@ public class BaseTableDdl implements TableDdl { ddlHelp.writeAfter(writer.apply()); } - private void alterColumnComment(DdlWrite writer, AlterColumn alterColumn) throws IOException { + private void alterColumnComment(DdlWrite writer, AlterColumn alterColumn) { platformDdl.addColumnComment(writer.apply(), alterColumn.getTableName(), alterColumn.getColumnName(), alterColumn.getComment()); } @@ -804,7 +803,7 @@ public class BaseTableDdl implements TableDdl { * This is mysql specific - alter all the base attributes of the column together. * Will be called, if there is a type, dbdefault or notnull change. */ - protected void alterColumnBaseAttributes(DdlWrite writer, AlterColumn alter) throws IOException { + protected void alterColumnBaseAttributes(DdlWrite writer, AlterColumn alter) { String ddl = platformDdl.alterColumnBaseAttributes(alter); if (hasValue(ddl)) { writer.apply().appendStatement(ddl); @@ -824,23 +823,23 @@ public class BaseTableDdl implements TableDdl { } } - protected void alterColumnDefaultValue(DdlWrite writer, AlterColumn alter) throws IOException { + protected void alterColumnDefaultValue(DdlWrite writer, AlterColumn alter) { writer.apply().appendStatement(platformDdl.alterColumnDefaultValue(alter.getTableName(), alter.getColumnName(), alter.getDefaultValue())); } - protected void dropCheckConstraint(DdlWrite writer, AlterColumn alter, String constraintName) throws IOException { + protected void dropCheckConstraint(DdlWrite writer, AlterColumn alter, String constraintName) { writer.apply().appendStatement(platformDdl.alterTableDropConstraint(alter.getTableName(), constraintName)); } - protected void addCheckConstraint(DdlWrite writer, AlterColumn alter) throws IOException { + protected void addCheckConstraint(DdlWrite writer, AlterColumn alter) { writer.apply().appendStatement(platformDdl.alterTableAddCheckConstraint(alter.getTableName(), alter.getCheckConstraintName(), alter.getCheckConstraint())); } - protected void alterColumnNotnull(DdlWrite writer, AlterColumn alter) throws IOException { + protected void alterColumnNotnull(DdlWrite writer, AlterColumn alter) { writer.apply().appendStatement(platformDdl.alterColumnNotnull(alter.getTableName(), alter.getColumnName(), alter.isNotnull())); } - protected void alterColumnType(DdlWrite writer, AlterColumn alter) throws IOException { + protected void alterColumnType(DdlWrite writer, AlterColumn alter) { String ddl = platformDdl.alterColumnType(alter.getTableName(), alter.getColumnName(), alter.getType()); if (hasValue(ddl)) { writer.apply().appendStatement(ddl); @@ -853,27 +852,27 @@ public class BaseTableDdl implements TableDdl { } } - protected void alterColumnAddForeignKey(DdlWrite writer, AlterColumn alterColumn) throws IOException { + protected void alterColumnAddForeignKey(DdlWrite writer, AlterColumn alterColumn) { alterTableAddForeignKey(writer.getOptions(), writer.apply(), new WriteForeignKey(alterColumn)); } - protected void alterColumnDropForeignKey(DdlWrite writer, AlterColumn alter) throws IOException { + protected void alterColumnDropForeignKey(DdlWrite writer, AlterColumn alter) { writer.apply().appendStatement(platformDdl.alterTableDropForeignKey(alter.getTableName(), alter.getDropForeignKey())); } - protected void alterColumnDropUniqueConstraint(DdlWrite writer, AlterColumn alter) throws IOException { + protected void alterColumnDropUniqueConstraint(DdlWrite writer, AlterColumn alter) { writer.apply().appendStatement(platformDdl.alterTableDropUniqueConstraint(alter.getTableName(), alter.getDropUnique())); } - protected void alterColumnAddUniqueOneToOneConstraint(DdlWrite writer, AlterColumn alter) throws IOException { + protected void alterColumnAddUniqueOneToOneConstraint(DdlWrite writer, AlterColumn alter) { addUniqueConstraint(writer, alter, alter.getUniqueOneToOne()); } - protected void alterColumnAddUniqueConstraint(DdlWrite writer, AlterColumn alter) throws IOException { + protected void alterColumnAddUniqueConstraint(DdlWrite writer, AlterColumn alter) { addUniqueConstraint(writer, alter, alter.getUnique()); } - protected void addUniqueConstraint(DdlWrite writer, AlterColumn alter, String uqName) throws IOException { + protected void addUniqueConstraint(DdlWrite writer, AlterColumn alter, String uqName) { String[] cols = {alter.getColumnName()}; boolean notNull = alter.isNotnull() != null ? alter.isNotnull() : Boolean.TRUE.equals(alter.isNotnull()); writer.apply().appendStatement(platformDdl.alterTableAddUniqueConstraint(alter.getTableName(), uqName, cols, notNull ? null : cols)); @@ -882,11 +881,11 @@ public class BaseTableDdl implements TableDdl { } - protected void alterTableDropColumn(DdlBuffer buffer, String tableName, String columnName) throws IOException { + protected void alterTableDropColumn(DdlBuffer buffer, String tableName, String columnName) { platformDdl.alterTableDropColumn(buffer, tableName, columnName); } - protected void alterTableAddColumn(DdlBuffer buffer, String tableName, Column column, boolean onHistoryTable, boolean withHistory) throws IOException { + protected void alterTableAddColumn(DdlBuffer buffer, String tableName, Column column, boolean onHistoryTable, boolean withHistory) { DdlMigrationHelp help = new DdlMigrationHelp(tableName, column, withHistory); if (!onHistoryTable) { help.writeBefore(buffer); diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/HanaTableDdl.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/HanaTableDdl.java index 341fe9517..f15d7c718 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/HanaTableDdl.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/HanaTableDdl.java @@ -9,7 +9,6 @@ import io.ebeaninternal.dbmigration.migration.Column; import io.ebeaninternal.dbmigration.migration.DropColumn; import io.ebeaninternal.dbmigration.model.MTable; -import java.io.IOException; import java.util.List; public class HanaTableDdl extends BaseTableDdl { @@ -29,12 +28,12 @@ public class HanaTableDdl extends BaseTableDdl { } @Override - protected void alterColumnDefaultValue(DdlWrite writer, AlterColumn alter) throws IOException { + protected void alterColumnDefaultValue(DdlWrite writer, AlterColumn alter) { // done in alterColumnBaseAttributes } @Override - public void generate(DdlWrite writer, AddColumn addColumn) throws IOException { + public void generate(DdlWrite writer, AddColumn addColumn) { String tableName = addColumn.getTableName(); MTable table = writer.getTable(tableName); if (table == null) { @@ -63,7 +62,7 @@ public class HanaTableDdl extends BaseTableDdl { } @Override - public void generate(DdlWrite writer, AlterColumn alterColumn) throws IOException { + public void generate(DdlWrite writer, AlterColumn alterColumn) { String tableName = alterColumn.getTableName(); MTable table = writer.getTable(tableName); if (table == null) { @@ -103,7 +102,7 @@ public class HanaTableDdl extends BaseTableDdl { } @Override - public void generate(DdlWrite writer, DropColumn dropColumn) throws IOException { + public void generate(DdlWrite writer, DropColumn dropColumn) { String tableName = dropColumn.getTableName(); MTable table = writer.getTable(tableName); if (table == null) { diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/model/CurrentModel.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/model/CurrentModel.java index e5c8743d2..f9b46f866 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/model/CurrentModel.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/model/CurrentModel.java @@ -16,7 +16,6 @@ import io.ebeaninternal.extraddl.model.ExtraDdl; import io.ebeaninternal.extraddl.model.ExtraDdlXmlReader; import io.ebeaninternal.dbmigration.ddlgeneration.PlatformDdlBuilder; -import java.io.IOException; import java.util.List; import static io.ebeaninternal.api.PlatformMatch.matchPlatform; @@ -117,7 +116,7 @@ public class CurrentModel { /** * Return the 'Create' DDL. */ - public String getCreateDdl() throws IOException { + public String getCreateDdl() { createDdl(); @@ -150,7 +149,7 @@ public class CurrentModel { /** * Return the 'Drop' DDL. */ - public String getDropAllDdl() throws IOException { + public String getDropAllDdl() { createDdl(); @@ -166,7 +165,7 @@ public class CurrentModel { /** * Create all the DDL based on the changeSet. */ - private void createDdl() throws IOException { + private void createDdl() { if (write == null) { ChangeSet createChangeSet = getChangeSet(); write = new DdlWrite(new MConfiguration(), model, ddlOptions); diff --git a/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/BaseTableDdlTest.java b/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/BaseTableDdlTest.java index d6af52969..3383898b5 100644 --- a/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/BaseTableDdlTest.java +++ b/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/BaseTableDdlTest.java @@ -15,7 +15,6 @@ import io.ebeaninternal.dbmigration.migration.Column; import io.ebeaninternal.dbmigration.migration.CreateTable; import org.junit.jupiter.api.Test; -import java.io.IOException; import java.util.List; import static org.assertj.core.api.Assertions.assertThat; @@ -28,7 +27,7 @@ public class BaseTableDdlTest { private final PlatformDdl h2ddl = PlatformDdlBuilder.create(new H2Platform()); @Test - public void testAlterColumn() throws IOException { + public void testAlterColumn() { BaseTableDdl ddlGen = new BaseTableDdl(serverConfig, h2ddl); DdlWrite write = new DdlWrite(); @@ -46,7 +45,7 @@ public class BaseTableDdlTest { } @Test - public void testAddColumn_withTypeConversion() throws IOException { + public void testAddColumn_withTypeConversion() { BaseTableDdl ddlGen = new BaseTableDdl(serverConfig, PlatformDdlBuilder.create(new OraclePlatform())); @@ -63,7 +62,7 @@ public class BaseTableDdlTest { } @Test - public void testAddColumn_withTypeConversion_clickHouseVarchar() throws IOException { + public void testAddColumn_withTypeConversion_clickHouseVarchar() { ClickHouseTableDdl ddlGen = new ClickHouseTableDdl(serverConfig, PlatformDdlBuilder.create(new ClickHousePlatform())); @@ -80,7 +79,7 @@ public class BaseTableDdlTest { } @Test - public void testAlterColumnComment() throws IOException { + public void testAlterColumnComment() { BaseTableDdl ddlGen = new BaseTableDdl(serverConfig, h2ddl); @@ -98,7 +97,7 @@ public class BaseTableDdlTest { } @Test - public void alterTableAddColumnWithComment() throws IOException { + public void alterTableAddColumnWithComment() { BaseTableDdl ddl = new BaseTableDdl(serverConfig, h2ddl); DdlWrite write = new DdlWrite(); Column column = new Column(); @@ -113,7 +112,7 @@ public class BaseTableDdlTest { } @Test - public void testAddTableComment() throws IOException { + public void testAddTableComment() { BaseTableDdl ddlGen = new BaseTableDdl(serverConfig, h2ddl); @@ -130,7 +129,7 @@ public class BaseTableDdlTest { } @Test - public void testAddTableComment_mysql() throws IOException { + public void testAddTableComment_mysql() { BaseTableDdl ddlGen = new BaseTableDdl(serverConfig, PlatformDdlBuilder.create(new MySqlPlatform())); diff --git a/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/HanaDdlTest.java b/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/HanaDdlTest.java index 3e467babe..64bb09d9a 100644 --- a/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/HanaDdlTest.java +++ b/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/HanaDdlTest.java @@ -5,14 +5,12 @@ import io.ebeaninternal.dbmigration.ddlgeneration.DdlWrite; import io.ebeaninternal.dbmigration.migration.Column; import org.junit.jupiter.api.Test; -import java.io.IOException; - import static org.junit.jupiter.api.Assertions.assertEquals; public class HanaDdlTest { @Test - public void alterTableDropColumn() throws IOException { + public void alterTableDropColumn() { HanaColumnStoreDdl ddl = new HanaColumnStoreDdl(new HanaPlatform()); DdlWrite write = new DdlWrite(); ddl.alterTableDropColumn(write.apply(), "my_table", "my_column"); @@ -20,7 +18,7 @@ public class HanaDdlTest { } @Test - public void alterTableAddColumn() throws IOException { + public void alterTableAddColumn() { HanaColumnStoreDdl ddl = new HanaColumnStoreDdl(new HanaPlatform()); DdlWrite write = new DdlWrite(); Column column = new Column(); diff --git a/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformDdl_AlterColumnTest.java b/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformDdl_AlterColumnTest.java index 2ae1118f1..193385e5f 100644 --- a/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformDdl_AlterColumnTest.java +++ b/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformDdl_AlterColumnTest.java @@ -16,8 +16,6 @@ import io.ebeaninternal.dbmigration.migration.AlterForeignKey; import io.ebeaninternal.dbmigration.migration.Column; import org.junit.jupiter.api.Test; -import java.io.IOException; - import static org.assertj.core.api.Assertions.assertThat; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNull; @@ -252,7 +250,7 @@ public class PlatformDdl_AlterColumnTest { } @Test - public void oracle_alterTableAddColumn() throws IOException { + public void oracle_alterTableAddColumn() { DdlWrite write = new DdlWrite(); oraDdl.alterTableAddColumn(write.apply(), "my_table", simpleColumn(), false, "1"); assertThat(write.apply().getBuffer()).isEqualTo("alter table my_table add my_column int default 1 not null;\n"); From 36bda117a6f6962fe493e2360fbac718446c8ce0 Mon Sep 17 00:00:00 2001 From: Roland Praml Date: Thu, 17 Feb 2022 14:47:05 +0100 Subject: [PATCH 024/114] No effective code change: Tidy up (organize imports/fix java warnings) --- .../java/io/ebeaninternal/dbmigration/DefaultDbMigration.java | 3 --- .../dbmigration/UnknownResourcePathException.java | 2 ++ .../dbmigration/ddlgeneration/platform/BaseDdlBuffer.java | 1 - .../dbmigration/ddlgeneration/platform/SqlServerDdl.java | 1 + .../io/ebeaninternal/dbmigration/model/MTableIdentity.java | 3 ++- .../src/test/java/io/localtest/BaseTestCase.java | 3 --- .../src/test/java/io/localtest/DbMigrationSqlServerTest.java | 1 - 7 files changed, 5 insertions(+), 9 deletions(-) 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 1d7f9e562..1f233092a 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 @@ -8,7 +8,6 @@ import java.io.Writer; import java.util.ArrayList; import java.util.List; import java.util.Properties; -import java.util.StringJoiner; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -16,7 +15,6 @@ import org.slf4j.LoggerFactory; import io.ebean.DB; import io.ebean.Database; import io.ebean.annotation.Platform; -import io.ebean.config.ClassLoadConfig; import io.ebean.config.DatabaseConfig; import io.ebean.config.DbConstraintNaming; import io.ebean.config.PlatformConfig; @@ -46,7 +44,6 @@ 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; import io.ebeaninternal.api.DbOffline; import io.ebeaninternal.api.SpiEbeanServer; import io.ebeaninternal.dbmigration.ddlgeneration.DdlOptions; diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/UnknownResourcePathException.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/UnknownResourcePathException.java index c8b29872a..ed8d65987 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/UnknownResourcePathException.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/UnknownResourcePathException.java @@ -7,6 +7,8 @@ package io.ebeaninternal.dbmigration; */ public class UnknownResourcePathException extends RuntimeException { + private static final long serialVersionUID = 8533769929372106003L; + public UnknownResourcePathException(String msg) { super(msg); } diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/BaseDdlBuffer.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/BaseDdlBuffer.java index 78e0632b6..674c07063 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/BaseDdlBuffer.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/BaseDdlBuffer.java @@ -1,7 +1,6 @@ package io.ebeaninternal.dbmigration.ddlgeneration.platform; import io.ebeaninternal.dbmigration.ddlgeneration.DdlBuffer; -import io.ebeaninternal.dbmigration.model.MConfiguration; /** diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/SqlServerDdl.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/SqlServerDdl.java index ca155653c..b522b6b7a 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/SqlServerDdl.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/SqlServerDdl.java @@ -239,6 +239,7 @@ public class SqlServerDdl extends PlatformDdl { .append("_tvp') drop type ebean_").append(name).append("_tvp").endOfStatement(); } + @SuppressWarnings("unused") private void createTVP(DdlBuffer ddl, String name, String definition) { ddl.append("if not exists (select name from sys.types where name = 'ebean_").append(name) .append("_tvp') create type ebean_").append(name).append("_tvp as table (c1 ").append(definition).append(")") diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/model/MTableIdentity.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/model/MTableIdentity.java index f226ebaec..aea2425d8 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/model/MTableIdentity.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/model/MTableIdentity.java @@ -89,8 +89,9 @@ public class MTableIdentity { return IdentityType.EXTERNAL; case GENERATOR: return IdentityType.GENERATOR; + default: + return null; } - return null; } private static int toInt(BigInteger firstVal, BigInteger secVal) { 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 c8cd4d400..06390a20e 100644 --- a/ebean-ddl-generator/src/test/java/io/localtest/BaseTestCase.java +++ b/ebean-ddl-generator/src/test/java/io/localtest/BaseTestCase.java @@ -5,14 +5,11 @@ import io.ebean.Database; import io.ebean.annotation.PersistBatch; import io.ebean.annotation.Platform; import io.ebeaninternal.api.SpiEbeanServer; -import org.junit.jupiter.api.extension.ExtendWith; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.sql.Types; -import static org.assertj.core.api.Assertions.assertThat; - public abstract class BaseTestCase { protected static Logger logger = LoggerFactory.getLogger(BaseTestCase.class); diff --git a/ebean-ddl-generator/src/test/java/io/localtest/DbMigrationSqlServerTest.java b/ebean-ddl-generator/src/test/java/io/localtest/DbMigrationSqlServerTest.java index 3e63179ec..fbe23d7b3 100644 --- a/ebean-ddl-generator/src/test/java/io/localtest/DbMigrationSqlServerTest.java +++ b/ebean-ddl-generator/src/test/java/io/localtest/DbMigrationSqlServerTest.java @@ -3,7 +3,6 @@ package io.localtest; import io.ebean.annotation.Platform; import io.ebean.dbmigration.DbMigration; import io.ebeaninternal.api.DbOffline; -import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; import static org.junit.jupiter.api.Assertions.assertThrows; From c2e4f862bc32377b7a8b9f172339fc273c7c3954 Mon Sep 17 00:00:00 2001 From: Noemi Szemenyei Date: Fri, 18 Feb 2022 10:02:48 +0100 Subject: [PATCH 025/114] default columnDef should be calculated from ebean --- .../java/io/ebeaninternal/server/deploy/BeanProperty.java | 3 +++ ebean-test/src/test/java/misc/migration/v1_0/EBasic.java | 8 ++++++-- ebean-test/src/test/java/misc/migration/v1_2/EBasic.java | 8 ++++++-- 3 files changed, 15 insertions(+), 4 deletions(-) diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanProperty.java b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanProperty.java index 72379b232..e83804be1 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanProperty.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanProperty.java @@ -992,6 +992,9 @@ public class BeanProperty implements ElPropertyValue, Property, STreeProperty { */ public String renderDbType(DbPlatformType dbType, boolean strict) { if (dbColumnDefn != null) { + if(dbColumnDefn.endsWith(";")) { + return dbColumnDefn + dbType.renderType(dbLength, dbScale, strict); + } return dbColumnDefn; } return dbType.renderType(dbLength, dbScale, strict); diff --git a/ebean-test/src/test/java/misc/migration/v1_0/EBasic.java b/ebean-test/src/test/java/misc/migration/v1_0/EBasic.java index abc55e33a..0a2a3d7da 100644 --- a/ebean-test/src/test/java/misc/migration/v1_0/EBasic.java +++ b/ebean-test/src/test/java/misc/migration/v1_0/EBasic.java @@ -8,9 +8,12 @@ import io.ebean.annotation.NotNull; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.Id; +import javax.persistence.Lob; import javax.persistence.ManyToOne; import javax.persistence.Table; import javax.validation.constraints.Size; + +import java.io.File; import java.sql.Timestamp; @Entity @@ -43,8 +46,9 @@ public class EBasic { @Size(max=127) String description; - @Column(columnDefinition = "db2;blob(64M);sqlserver,h2;varchar(227);varchar(127)") - String description2; + @Lob + @Column(columnDefinition = "db2;blob(64M);") + File descriptionFile; Timestamp someDate; diff --git a/ebean-test/src/test/java/misc/migration/v1_2/EBasic.java b/ebean-test/src/test/java/misc/migration/v1_2/EBasic.java index 4b10b8c73..7dd688941 100644 --- a/ebean-test/src/test/java/misc/migration/v1_2/EBasic.java +++ b/ebean-test/src/test/java/misc/migration/v1_2/EBasic.java @@ -8,9 +8,12 @@ import io.ebean.annotation.NotNull; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.Id; +import javax.persistence.Lob; import javax.persistence.ManyToOne; import javax.persistence.Table; import javax.validation.constraints.Size; + +import java.io.File; import java.sql.Timestamp; @Entity @@ -43,8 +46,9 @@ public class EBasic { @Size(max=127) String description; - @Column(columnDefinition = "db2;blob(64M);sqlserver,h2;varchar(227);varchar(127)") - String description2; + @Lob + @Column(columnDefinition = "db2;blob(64M);") + File descriptionFile; Timestamp someDate; From 7ccea9ff7e5cdf51c908c4cf8293781ce6476dcb Mon Sep 17 00:00:00 2001 From: Noemi Szemenyei Date: Fri, 18 Feb 2022 10:03:04 +0100 Subject: [PATCH 026/114] migrations --- .../migrationtest/dbmigration/clickhouse/1.0__initial.sql | 2 +- .../dbmigration/clickhouse/1.2__dropsFor_1.1.sql | 2 +- .../resources/migrationtest/dbmigration/clickhouse/1.3.sql | 2 +- .../dbmigration/clickhouse/idx_clickhouse.migrations | 6 +++--- .../migrationtest/dbmigration/cockroach/1.0__initial.sql | 2 +- .../dbmigration/cockroach/1.2__dropsFor_1.1.sql | 2 +- .../resources/migrationtest/dbmigration/cockroach/1.3.sql | 2 +- .../dbmigration/cockroach/idx_cockroach.migrations | 6 +++--- .../migrationtest/dbmigration/db2fori/1.0__initial.sql | 2 +- .../migrationtest/dbmigration/db2fori/1.2__dropsFor_1.1.sql | 2 +- .../resources/migrationtest/dbmigration/db2fori/1.3.sql | 2 +- .../migrationtest/dbmigration/db2fori/idx_db2.migrations | 6 +++--- .../migrationtest/dbmigration/db2legacy/1.0__initial.sql | 2 +- .../dbmigration/db2legacy/1.2__dropsFor_1.1.sql | 2 +- .../resources/migrationtest/dbmigration/db2legacy/1.3.sql | 2 +- .../migrationtest/dbmigration/db2legacy/idx_db2.migrations | 6 +++--- .../migrationtest/dbmigration/db2luw/1.0__initial.sql | 2 +- .../migrationtest/dbmigration/db2luw/1.2__dropsFor_1.1.sql | 2 +- .../test/resources/migrationtest/dbmigration/db2luw/1.3.sql | 2 +- .../migrationtest/dbmigration/db2luw/idx_db2.migrations | 6 +++--- .../migrationtest/dbmigration/db2zos/1.0__initial.sql | 2 +- .../migrationtest/dbmigration/db2zos/1.2__dropsFor_1.1.sql | 2 +- .../test/resources/migrationtest/dbmigration/db2zos/1.3.sql | 2 +- .../migrationtest/dbmigration/db2zos/idx_db2.migrations | 6 +++--- .../migrationtest/dbmigration/generic/1.0__initial.sql | 2 +- .../migrationtest/dbmigration/generic/1.2__dropsFor_1.1.sql | 2 +- .../resources/migrationtest/dbmigration/generic/1.3.sql | 2 +- .../dbmigration/generic/idx_generic.migrations | 6 +++--- .../resources/migrationtest/dbmigration/h2/1.0__initial.sql | 2 +- .../migrationtest/dbmigration/h2/1.2__dropsFor_1.1.sql | 2 +- .../src/test/resources/migrationtest/dbmigration/h2/1.3.sql | 2 +- .../migrationtest/dbmigration/h2/idx_h2.migrations | 6 +++--- .../migrationtest/dbmigration/hana/1.0__initial.sql | 2 +- .../migrationtest/dbmigration/hana/1.2__dropsFor_1.1.sql | 2 +- .../test/resources/migrationtest/dbmigration/hana/1.3.sql | 2 +- .../migrationtest/dbmigration/hana/idx_hana.migrations | 6 +++--- .../migrationtest/dbmigration/hsqldb/1.0__initial.sql | 2 +- .../migrationtest/dbmigration/hsqldb/1.2__dropsFor_1.1.sql | 2 +- .../test/resources/migrationtest/dbmigration/hsqldb/1.3.sql | 2 +- .../migrationtest/dbmigration/hsqldb/idx_hsqldb.migrations | 6 +++--- .../dbmigration/mariadb-noprocs/1.0__initial.sql | 2 +- .../dbmigration/mariadb-noprocs/1.2__dropsFor_1.1.sql | 2 +- .../migrationtest/dbmigration/mariadb-noprocs/1.3.sql | 2 +- .../dbmigration/mariadb-noprocs/idx_mariadb.migrations | 6 +++--- .../migrationtest/dbmigration/mariadb/1.0__initial.sql | 2 +- .../migrationtest/dbmigration/mariadb/1.2__dropsFor_1.1.sql | 2 +- .../resources/migrationtest/dbmigration/mariadb/1.3.sql | 2 +- .../dbmigration/mariadb/idx_mariadb.migrations | 6 +++--- .../migrationtest/dbmigration/model/1.0__initial.model.xml | 2 +- .../resources/migrationtest/dbmigration/model/1.1.model.xml | 2 +- .../dbmigration/model/1.2__dropsFor_1.1.model.xml | 2 +- .../resources/migrationtest/dbmigration/model/1.3.model.xml | 2 +- .../migrationtest/dbmigration/mysql/1.0__initial.sql | 2 +- .../migrationtest/dbmigration/mysql/1.2__dropsFor_1.1.sql | 2 +- .../test/resources/migrationtest/dbmigration/mysql/1.3.sql | 2 +- .../migrationtest/dbmigration/mysql/idx_mysql.migrations | 6 +++--- .../migrationtest/dbmigration/mysql55/1.0__initial.sql | 2 +- .../migrationtest/dbmigration/mysql55/1.2__dropsFor_1.1.sql | 2 +- .../resources/migrationtest/dbmigration/mysql55/1.3.sql | 2 +- .../migrationtest/dbmigration/mysql55/idx_mysql.migrations | 6 +++--- .../migrationtest/dbmigration/nuodb/1.0__initial.sql | 2 +- .../migrationtest/dbmigration/nuodb/1.2__dropsFor_1.1.sql | 2 +- .../test/resources/migrationtest/dbmigration/nuodb/1.3.sql | 2 +- .../migrationtest/dbmigration/nuodb/idx_nuodb.migrations | 6 +++--- .../migrationtest/dbmigration/oracle/1.0__initial.sql | 2 +- .../migrationtest/dbmigration/oracle/1.2__dropsFor_1.1.sql | 2 +- .../test/resources/migrationtest/dbmigration/oracle/1.3.sql | 2 +- .../migrationtest/dbmigration/oracle/idx_oracle.migrations | 6 +++--- .../migrationtest/dbmigration/oracle11/1.0__initial.sql | 2 +- .../dbmigration/oracle11/1.2__dropsFor_1.1.sql | 2 +- .../resources/migrationtest/dbmigration/oracle11/1.3.sql | 2 +- .../dbmigration/oracle11/idx_oracle.migrations | 6 +++--- .../migrationtest/dbmigration/postgres/1.0__initial.sql | 2 +- .../dbmigration/postgres/1.2__dropsFor_1.1.sql | 2 +- .../resources/migrationtest/dbmigration/postgres/1.3.sql | 2 +- .../dbmigration/postgres/idx_postgres.migrations | 6 +++--- .../migrationtest/dbmigration/postgres9/1.0__initial.sql | 2 +- .../dbmigration/postgres9/1.2__dropsFor_1.1.sql | 2 +- .../resources/migrationtest/dbmigration/postgres9/1.3.sql | 2 +- .../dbmigration/postgres9/idx_postgres.migrations | 6 +++--- .../migrationtest/dbmigration/sqlanywhere/1.0__initial.sql | 2 +- .../dbmigration/sqlanywhere/1.2__dropsFor_1.1.sql | 2 +- .../resources/migrationtest/dbmigration/sqlanywhere/1.3.sql | 2 +- .../dbmigration/sqlanywhere/idx_sqlanywhere.migrations | 6 +++--- .../migrationtest/dbmigration/sqlite/1.0__initial.sql | 2 +- .../migrationtest/dbmigration/sqlite/1.2__dropsFor_1.1.sql | 2 +- .../test/resources/migrationtest/dbmigration/sqlite/1.3.sql | 2 +- .../migrationtest/dbmigration/sqlite/idx_sqlite.migrations | 6 +++--- .../migrationtest/dbmigration/sqlserver16/1.0__initial.sql | 2 +- .../dbmigration/sqlserver16/1.2__dropsFor_1.1.sql | 2 +- .../resources/migrationtest/dbmigration/sqlserver16/1.3.sql | 2 +- .../dbmigration/sqlserver16/idx_sqlserver.migrations | 6 +++--- .../migrationtest/dbmigration/sqlserver17/1.0__initial.sql | 2 +- .../dbmigration/sqlserver17/1.2__dropsFor_1.1.sql | 2 +- .../resources/migrationtest/dbmigration/sqlserver17/1.3.sql | 2 +- .../dbmigration/sqlserver17/idx_sqlserver.migrations | 6 +++--- .../migrationtest/dbmigration/yugabyte/1.0__initial.sql | 2 +- .../dbmigration/yugabyte/1.2__dropsFor_1.1.sql | 2 +- .../resources/migrationtest/dbmigration/yugabyte/1.3.sql | 2 +- .../dbmigration/yugabyte/idx_yugabyte.migrations | 6 +++--- 100 files changed, 148 insertions(+), 148 deletions(-) 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 index c5eddf5ad..1d41eabbe 100644 --- 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 @@ -51,7 +51,7 @@ create table migtest_e_basic ( status2 String default 'N', name String, description String, - description2 String, + description_file blob, some_date DateTime, old_boolean UInt8 default false, old_boolean2 UInt8, 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 index 6ca9bbadc..bf1e082c9 100644 --- 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 @@ -1,6 +1,6 @@ -- Migrationscripts for ebean unittest -- apply changes -alter table migtest_e_basic drop column description2; +alter table migtest_e_basic drop column description_file; alter table migtest_e_basic drop column old_boolean; 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 index 8e0ffdef5..88cea0bee 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/clickhouse/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/clickhouse/1.3.sql @@ -21,7 +21,7 @@ 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 description2 String; +alter table migtest_e_basic add column description_file blob; 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; 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 8d0005bd9..83e4a9ccc 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 @@ --429555051, 1.0__initial.sql +-697238714, 1.0__initial.sql 1864520180, 1.1.sql -519662611, 1.2__dropsFor_1.1.sql --1108954500, 1.3.sql +628353409, 1.2__dropsFor_1.1.sql +-489730240, 1.3.sql -1045594368, 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 index e0719c8a8..c4788bf9a 100644 --- 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 @@ -60,7 +60,7 @@ create table migtest_e_basic ( status2 varchar(1) default 'N' not null, name varchar(127), description varchar(127), - description2 varchar(127), + description_file bytea, some_date timestamptz, old_boolean boolean default false not null, old_boolean2 boolean, 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 index b50b1071a..43d6a8119 100644 --- 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 @@ -1,6 +1,6 @@ -- Migrationscripts for ebean unittest -- apply changes -alter table migtest_e_basic drop column description2; +alter table migtest_e_basic drop column description_file; alter table migtest_e_basic drop column old_boolean; 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 index 0b6ce1041..167a362ff 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/cockroach/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/cockroach/1.3.sql @@ -31,7 +31,7 @@ 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 description2 varchar(127); +alter table migtest_e_basic add column description_file bytea; 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; 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 e23ea759d..6ccb81618 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 @@ -1784035212, 1.0__initial.sql +-1611775717, 1.0__initial.sql -1108404951, 1.1.sql --979513548, 1.2__dropsFor_1.1.sql --162585387, 1.3.sql +-835109514, 1.2__dropsFor_1.1.sql +-30927192, 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/db2fori/1.0__initial.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/db2fori/1.0__initial.sql index 4dafd604d..05b097f9e 100644 --- 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 @@ -60,7 +60,7 @@ create table migtest_e_basic ( status2 varchar(1) default 'N' not null, name varchar(127), description varchar(127), - description2 blob(64M), + description_file blob(64M), some_date timestamp, old_boolean smallint default 0 default false not null, old_boolean2 smallint default 0, diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/db2fori/1.2__dropsFor_1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/db2fori/1.2__dropsFor_1.1.sql index 95857c382..6dd324358 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/db2fori/1.2__dropsFor_1.1.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2fori/1.2__dropsFor_1.1.sql @@ -1,6 +1,6 @@ -- Migrationscripts for ebean unittest -- apply changes -alter table migtest_e_basic drop column description2; +alter table migtest_e_basic drop column description_file; alter table migtest_e_basic drop column old_boolean; 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 index b3dafa3f2..67dc88e93 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/db2fori/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2fori/1.3.sql @@ -31,7 +31,7 @@ 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 description2 blob(64M); +alter table migtest_e_basic add column description_file blob(64M); 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; 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 index 4e1016ce9..4b0730bca 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/db2fori/idx_db2.migrations +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2fori/idx_db2.migrations @@ -1,7 +1,7 @@ -1959738162, 1.0__initial.sql +-1545566871, 1.0__initial.sql -1594597621, 1.1.sql -1791049503, 1.2__dropsFor_1.1.sql --1860778446, 1.3.sql +-1093742153, 1.2__dropsFor_1.1.sql +217221833, 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 index 7c3f05efa..436ede7d6 100644 --- 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 @@ -60,7 +60,7 @@ create table migtest_e_basic ( status2 varchar(1) default 'N' not null, name varchar(127), description varchar(127), - description2 blob(64M), + description_file blob(64M), some_date timestamp, old_boolean boolean default false not null, old_boolean2 boolean, 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 index 95857c382..6dd324358 100644 --- 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 @@ -1,6 +1,6 @@ -- Migrationscripts for ebean unittest -- apply changes -alter table migtest_e_basic drop column description2; +alter table migtest_e_basic drop column description_file; alter table migtest_e_basic drop column old_boolean; 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 index 06f323238..c14e3c85b 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/db2legacy/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2legacy/1.3.sql @@ -31,7 +31,7 @@ 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 description2 blob(64M); +alter table migtest_e_basic add column description_file blob(64M); 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; 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 index f8b41e5fc..e9d6d9fb7 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/db2legacy/idx_db2.migrations +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2legacy/idx_db2.migrations @@ -1,7 +1,7 @@ -254148970, 1.0__initial.sql +835032311, 1.0__initial.sql -1126979163, 1.1.sql -1791049503, 1.2__dropsFor_1.1.sql --191324018, 1.3.sql +-1093742153, 1.2__dropsFor_1.1.sql +661912050, 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/db2luw/1.0__initial.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/db2luw/1.0__initial.sql index 4cfd1f6ac..9123e160b 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/db2luw/1.0__initial.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2luw/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), - description2 blob(64M), + description_file blob(64M), some_date timestamp, old_boolean boolean default false not null, old_boolean2 boolean, 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 index 95857c382..6dd324358 100644 --- 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 @@ -1,6 +1,6 @@ -- Migrationscripts for ebean unittest -- apply changes -alter table migtest_e_basic drop column description2; +alter table migtest_e_basic drop column description_file; alter table migtest_e_basic drop column old_boolean; diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/db2luw/1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/db2luw/1.3.sql index e5cf08d5a..c0d33b5f0 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/db2luw/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2luw/1.3.sql @@ -31,7 +31,7 @@ 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 description2 blob(64M); +alter table migtest_e_basic add column description_file blob(64M); 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; diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/db2luw/idx_db2.migrations b/ebean-test/src/test/resources/migrationtest/dbmigration/db2luw/idx_db2.migrations index 5a92d457a..08a6b5282 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/db2luw/idx_db2.migrations +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2luw/idx_db2.migrations @@ -1,7 +1,7 @@ -662450113, 1.0__initial.sql +-376187636, 1.0__initial.sql 1615151513, 1.1.sql -1791049503, 1.2__dropsFor_1.1.sql -1024337021, 1.3.sql +-1093742153, 1.2__dropsFor_1.1.sql +1569705465, 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/db2zos/1.0__initial.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/db2zos/1.0__initial.sql index 4cfd1f6ac..9123e160b 100644 --- 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 @@ -60,7 +60,7 @@ create table migtest_e_basic ( status2 varchar(1) default 'N' not null, name varchar(127), description varchar(127), - description2 blob(64M), + description_file blob(64M), some_date timestamp, old_boolean boolean default false not null, old_boolean2 boolean, 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 index 95857c382..6dd324358 100644 --- 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 @@ -1,6 +1,6 @@ -- Migrationscripts for ebean unittest -- apply changes -alter table migtest_e_basic drop column description2; +alter table migtest_e_basic drop column description_file; alter table migtest_e_basic drop column old_boolean; 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 index e5cf08d5a..c0d33b5f0 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/db2zos/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2zos/1.3.sql @@ -31,7 +31,7 @@ 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 description2 blob(64M); +alter table migtest_e_basic add column description_file blob(64M); 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; 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 index 5a92d457a..08a6b5282 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/db2zos/idx_db2.migrations +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2zos/idx_db2.migrations @@ -1,7 +1,7 @@ -662450113, 1.0__initial.sql +-376187636, 1.0__initial.sql 1615151513, 1.1.sql -1791049503, 1.2__dropsFor_1.1.sql -1024337021, 1.3.sql +-1093742153, 1.2__dropsFor_1.1.sql +1569705465, 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.0__initial.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/generic/1.0__initial.sql index abf2a9c91..988f55d66 100644 --- 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 @@ -60,7 +60,7 @@ create table migtest_e_basic ( status2 varchar(1) default 'N' not null, name varchar(127), description varchar(127), - description2 varchar(127), + description_file blob, some_date timestamp, old_boolean boolean default false not null, old_boolean2 boolean, 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 index 6ca9bbadc..bf1e082c9 100644 --- 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 @@ -1,6 +1,6 @@ -- Migrationscripts for ebean unittest -- apply changes -alter table migtest_e_basic drop column description2; +alter table migtest_e_basic drop column description_file; alter table migtest_e_basic drop column old_boolean; 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 index 13b1f7901..583276331 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/generic/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/generic/1.3.sql @@ -31,7 +31,7 @@ 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 description2 varchar(127); +alter table migtest_e_basic add column description_file blob; 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; 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 835412d75..1e82b78f3 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 @@ --1383651907, 1.0__initial.sql +-2041271676, 1.0__initial.sql -1825206641, 1.1.sql -519662611, 1.2__dropsFor_1.1.sql --694156372, 1.3.sql +628353409, 1.2__dropsFor_1.1.sql +-1404280556, 1.3.sql -1045594368, 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 index 19f353e7f..af98aa479 100644 --- 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 @@ -60,7 +60,7 @@ create table migtest_e_basic ( status2 varchar(1) default 'N' not null, name varchar(127), description varchar(127), - description2 varchar(227), + description_file blob, some_date timestamp, old_boolean boolean default false not null, old_boolean2 boolean, 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 index d0d876e15..d19ef84f0 100644 --- 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 @@ -3,7 +3,7 @@ drop view if exists migtest_e_history2_with_history; -- apply changes -alter table migtest_e_basic drop column description2; +alter table migtest_e_basic drop column description_file; alter table migtest_e_basic drop column old_boolean; 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 index f4e5cdbf7..b96413090 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/h2/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/h2/1.3.sql @@ -36,7 +36,7 @@ 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 description2 varchar(227); +alter table migtest_e_basic add column description_file blob; 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; 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 91caca6ba..a91fe3b62 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,7 +1,7 @@ --1018429770, 1.0__initial.sql +817061778, 1.0__initial.sql 1409369419, 1.1.sql --1904864828, 1.2__dropsFor_1.1.sql -955423690, 1.3.sql +-1095443625, 1.2__dropsFor_1.1.sql +62715852, 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.0__initial.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/hana/1.0__initial.sql index aee46f613..38bc72854 100644 --- 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 @@ -60,7 +60,7 @@ create column table migtest_e_basic ( status2 nvarchar(1) default 'N' not null, name nvarchar(127), description nvarchar(127), - description2 nvarchar(127), + description_file blob, some_date timestamp, old_boolean boolean default false not null, old_boolean2 boolean, 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 index 64f40e605..c50f9687c 100644 --- 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 @@ -1,6 +1,6 @@ -- Migrationscripts for ebean unittest -- apply changes -CALL usp_ebean_drop_column('migtest_e_basic', 'description2'); +CALL usp_ebean_drop_column('migtest_e_basic', 'description_file'); CALL usp_ebean_drop_column('migtest_e_basic', 'old_boolean'); 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 index f5e4268bb..8090b369c 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/hana/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/hana/1.3.sql @@ -46,7 +46,7 @@ $$; 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 ( description2 nvarchar(127)); +alter table migtest_e_basic add ( description_file blob); 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); 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 d6bdd1488..8f3461ab1 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 @@ --809467006, 1.0__initial.sql +513351138, 1.0__initial.sql -1152055114, 1.1.sql -1569252375, 1.2__dropsFor_1.1.sql --5080522, 1.3.sql +1830946249, 1.2__dropsFor_1.1.sql +1073423108, 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.0__initial.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/hsqldb/1.0__initial.sql index bfd24e3b1..ad740f297 100644 --- 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 @@ -60,7 +60,7 @@ create table migtest_e_basic ( status2 varchar(1) default 'N' not null, name varchar(127), description varchar(127), - description2 varchar(127), + description_file blob, some_date timestamp, old_boolean boolean default false not null, old_boolean2 boolean, 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 index bfe2be7bb..f38f547e1 100644 --- 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 @@ -1,6 +1,6 @@ -- Migrationscripts for ebean unittest -- apply changes -alter table migtest_e_basic drop column description2; +alter table migtest_e_basic drop column description_file; alter table migtest_e_basic drop column old_boolean; 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 index e2f99c94a..ebdeba1c0 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/hsqldb/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/hsqldb/1.3.sql @@ -31,7 +31,7 @@ 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 description2 varchar(127); +alter table migtest_e_basic add column description_file blob; 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; 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 a1067cf9f..f9096bcde 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 @@ -1113607799, 1.0__initial.sql +1469726733, 1.0__initial.sql -865579750, 1.1.sql -2029151368, 1.2__dropsFor_1.1.sql -1688061039, 1.3.sql +-2077736415, 1.2__dropsFor_1.1.sql +-982162181, 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.0__initial.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb-noprocs/1.0__initial.sql index 1d2a9a5b8..ea67bcb04 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb-noprocs/1.0__initial.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb-noprocs/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), - description2 varchar(127), + description_file longblob, some_date datetime(6), old_boolean tinyint(1) default 0 not null, old_boolean2 tinyint(1), diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb-noprocs/1.2__dropsFor_1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb-noprocs/1.2__dropsFor_1.1.sql index bfe2be7bb..f38f547e1 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb-noprocs/1.2__dropsFor_1.1.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb-noprocs/1.2__dropsFor_1.1.sql @@ -1,6 +1,6 @@ -- Migrationscripts for ebean unittest -- apply changes -alter table migtest_e_basic drop column description2; +alter table migtest_e_basic drop column description_file; alter table migtest_e_basic drop column old_boolean; diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb-noprocs/1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb-noprocs/1.3.sql index 32868f369..c3f1dd68f 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb-noprocs/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb-noprocs/1.3.sql @@ -26,7 +26,7 @@ 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 description2 varchar(127); +alter table migtest_e_basic add column description_file longblob; 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; 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 e15facf52..a66b70c10 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 @@ -629411155, 1.0__initial.sql +-616900688, 1.0__initial.sql 128637084, 1.1.sql -2029151368, 1.2__dropsFor_1.1.sql -2066375527, 1.3.sql +-2077736415, 1.2__dropsFor_1.1.sql +-1744111309, 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.0__initial.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb/1.0__initial.sql index 1d2a9a5b8..ea67bcb04 100644 --- 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 @@ -60,7 +60,7 @@ create table migtest_e_basic ( status2 varchar(1) default 'N' not null, name varchar(127), description varchar(127), - description2 varchar(127), + description_file longblob, some_date datetime(6), old_boolean tinyint(1) default 0 not null, old_boolean2 tinyint(1), 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 e92aaf712..70da35eb5 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,6 +1,6 @@ -- Migrationscripts for ebean unittest -- apply changes -CALL usp_ebean_drop_column('migtest_e_basic', 'description2'); +CALL usp_ebean_drop_column('migtest_e_basic', 'description_file'); CALL usp_ebean_drop_column('migtest_e_basic', 'old_boolean'); 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 index 32868f369..c3f1dd68f 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb/1.3.sql @@ -26,7 +26,7 @@ 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 description2 varchar(127); +alter table migtest_e_basic add column description_file longblob; 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; 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 db5e5fdde..d7958ff29 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 -629411155, 1.0__initial.sql +-616900688, 1.0__initial.sql 128637084, 1.1.sql --1078955818, 1.2__dropsFor_1.1.sql -2066375527, 1.3.sql +-2098746494, 1.2__dropsFor_1.1.sql +-1744111309, 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.0__initial.model.xml b/ebean-test/src/test/resources/migrationtest/dbmigration/model/1.0__initial.model.xml index 3b9f431c8..69b8c6851 100644 --- 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 @@ -43,7 +43,7 @@ - + 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 a87d01c57..0edbb49da 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 @@ -110,7 +110,7 @@ - + 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 index 19ff281e3..ff94a6767 100644 --- 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 @@ -1,7 +1,7 @@ - + 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 a45f74384..a8189b797 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 @@ -11,7 +11,7 @@ - + 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 c4ae8fe79..92ceaaf21 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), - description2 varchar(127), + description_file longblob, some_date datetime(6), old_boolean tinyint(1) default 0 not null, old_boolean2 tinyint(1), 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 3e6410977..68f5324da 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,7 +3,7 @@ drop view if exists migtest_e_history2_with_history; -- apply changes -CALL usp_ebean_drop_column('migtest_e_basic', 'description2'); +CALL usp_ebean_drop_column('migtest_e_basic', 'description_file'); CALL usp_ebean_drop_column('migtest_e_basic', 'old_boolean'); 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 index 4db93c716..b3d9845a5 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/mysql/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/mysql/1.3.sql @@ -31,7 +31,7 @@ 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 description2 varchar(127); +alter table migtest_e_basic add column description_file longblob; 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; 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 6411d3b61..5dbbf2fd2 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 --625233983, 1.0__initial.sql +890673066, 1.0__initial.sql -1627573867, 1.1.sql -426154419, 1.2__dropsFor_1.1.sql --912122613, 1.3.sql +1986189381, 1.2__dropsFor_1.1.sql +798979911, 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/mysql55/1.0__initial.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/mysql55/1.0__initial.sql index a7229076e..a0d087761 100644 --- 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 @@ -60,7 +60,7 @@ create table migtest_e_basic ( status2 varchar(1) default 'N' not null, name varchar(127), description varchar(127), - description2 varchar(127), + description_file longblob, some_date datetime, old_boolean tinyint(1) default 0 not null, old_boolean2 tinyint(1), 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 index 3e6410977..68f5324da 100644 --- 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 @@ -3,7 +3,7 @@ drop view if exists migtest_e_history2_with_history; -- apply changes -CALL usp_ebean_drop_column('migtest_e_basic', 'description2'); +CALL usp_ebean_drop_column('migtest_e_basic', 'description_file'); CALL usp_ebean_drop_column('migtest_e_basic', 'old_boolean'); 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 index 4db93c716..b3d9845a5 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/mysql55/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/mysql55/1.3.sql @@ -31,7 +31,7 @@ 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 description2 varchar(127); +alter table migtest_e_basic add column description_file longblob; 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; 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 index b6eaabb70..5994ca140 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/mysql55/idx_mysql.migrations +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/mysql55/idx_mysql.migrations @@ -1,8 +1,8 @@ 1835064798, I__create_procs.sql --753661440, 1.0__initial.sql +881444156, 1.0__initial.sql -1627573867, 1.1.sql -426154419, 1.2__dropsFor_1.1.sql --912122613, 1.3.sql +1986189381, 1.2__dropsFor_1.1.sql +798979911, 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.0__initial.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/nuodb/1.0__initial.sql index 52477bd2d..598ba6f2d 100644 --- 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 @@ -60,7 +60,7 @@ create table migtest_e_basic ( status2 varchar(1) default 'N' not null, name varchar(127), description varchar(127), - description2 varchar(127), + description_file blob, some_date timestamp, old_boolean boolean default false not null, old_boolean2 boolean, 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 index c33aa5fc1..392d707e3 100644 --- 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 @@ -3,7 +3,7 @@ drop view if exists migtest_e_history2_with_history; -- apply changes -alter table migtest_e_basic drop column description2; +alter table migtest_e_basic drop column description_file; alter table migtest_e_basic drop column old_boolean; 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 index dd2cc1316..fa3e3b33d 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/nuodb/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/nuodb/1.3.sql @@ -36,7 +36,7 @@ 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 description2 varchar(127); +alter table migtest_e_basic add column description_file blob; 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; 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 31a151683..f019b05ef 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 @@ --1938088728, 1.0__initial.sql +-1343627271, 1.0__initial.sql 667708916, 1.1.sql -1794931214, 1.2__dropsFor_1.1.sql --393070431, 1.3.sql +-430421425, 1.2__dropsFor_1.1.sql +360040564, 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.0__initial.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/oracle/1.0__initial.sql index 5dd163926..4d151f191 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 @@ -60,7 +60,7 @@ create table migtest_e_basic ( status2 varchar2(1) default 'N' not null, name varchar2(127), description varchar2(127), - description2 varchar2(127), + description_file blob, some_date timestamp, old_boolean number(1) default 0 not null, old_boolean2 number(1), 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 index 68847f4cc..ee9cc6325 100644 --- 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 @@ -1,6 +1,6 @@ -- Migrationscripts for ebean unittest -- apply changes -alter table migtest_e_basic drop column description2; +alter table migtest_e_basic drop column description_file; alter table migtest_e_basic drop column old_boolean; 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 ed27922b2..3dc30312f 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 @@ -31,7 +31,7 @@ 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 description2 varchar2(127); +alter table migtest_e_basic add description_file blob; 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); 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 95ddb4adb..86e8f1206 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 @@ --1818229777, 1.0__initial.sql +1732845114, 1.0__initial.sql -411370666, 1.1.sql -521762942, 1.2__dropsFor_1.1.sql -371950917, 1.3.sql +-1698942539, 1.2__dropsFor_1.1.sql +1355736100, 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 index 89dacfbe7..2178953b6 100644 --- 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 @@ -68,7 +68,7 @@ create table migtest_e_basic ( status2 varchar2(1) default 'N' not null, name varchar2(127), description varchar2(127), - description2 varchar2(127), + description_file blob, some_date timestamp, old_boolean number(1) default 0 not null, old_boolean2 number(1), 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 index 68847f4cc..ee9cc6325 100644 --- 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 @@ -1,6 +1,6 @@ -- Migrationscripts for ebean unittest -- apply changes -alter table migtest_e_basic drop column description2; +alter table migtest_e_basic drop column description_file; alter table migtest_e_basic drop column old_boolean; 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 index c2f59614c..a40a2bece 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/oracle11/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/oracle11/1.3.sql @@ -32,7 +32,7 @@ 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 description2 varchar2(127); +alter table migtest_e_basic add description_file blob; 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); 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 index a9520a367..fc08855e1 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/oracle11/idx_oracle.migrations +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/oracle11/idx_oracle.migrations @@ -1,7 +1,7 @@ --135608451, 1.0__initial.sql +-756544611, 1.0__initial.sql 1927010726, 1.1.sql -521762942, 1.2__dropsFor_1.1.sql -1449510461, 1.3.sql +-1698942539, 1.2__dropsFor_1.1.sql +1883580424, 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 c181e29d5..9dfbbd842 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 @@ -60,7 +60,7 @@ create table migtest_e_basic ( status2 varchar(1) default 'N' not null, name varchar(127), description varchar(127), - description2 varchar(127), + description_file bytea, some_date timestamptz, old_boolean boolean default false not null, old_boolean2 boolean, 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 index c98a15504..35a7e2b4a 100644 --- 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 @@ -3,7 +3,7 @@ drop view if exists migtest_e_history2_with_history; -- apply changes -alter table migtest_e_basic drop column description2; +alter table migtest_e_basic drop column description_file; alter table migtest_e_basic drop column old_boolean; 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 e3a825a2c..79cc955b5 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 @@ -36,7 +36,7 @@ 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 description2 varchar(127); +alter table migtest_e_basic add column description_file bytea; 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; 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 7eeb91a48..36d862b83 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 @@ -1713516005, 1.0__initial.sql +-757334590, 1.0__initial.sql 1548995254, 1.1.sql --1155149746, 1.2__dropsFor_1.1.sql --303061649, 1.3.sql +1360771849, 1.2__dropsFor_1.1.sql +592037553, 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 index cd0cf0f7d..259f541c4 100644 --- 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 @@ -60,7 +60,7 @@ create table migtest_e_basic ( status2 varchar(1) default 'N' not null, name varchar(127), description varchar(127), - description2 varchar(127), + description_file bytea, some_date timestamptz, old_boolean boolean default false not null, old_boolean2 boolean, 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 index c98a15504..35a7e2b4a 100644 --- 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 @@ -3,7 +3,7 @@ drop view if exists migtest_e_history2_with_history; -- apply changes -alter table migtest_e_basic drop column description2; +alter table migtest_e_basic drop column description_file; alter table migtest_e_basic drop column old_boolean; 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 index ff5c60830..86910344d 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/postgres9/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/postgres9/1.3.sql @@ -36,7 +36,7 @@ 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 description2 varchar(127); +alter table migtest_e_basic add column description_file bytea; 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; 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 index f23717ef8..334503fd9 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/postgres9/idx_postgres.migrations +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/postgres9/idx_postgres.migrations @@ -1,7 +1,7 @@ --582258071, 1.0__initial.sql +36350976, 1.0__initial.sql 1253246780, 1.1.sql --1155149746, 1.2__dropsFor_1.1.sql -22458812, 1.3.sql +1360771849, 1.2__dropsFor_1.1.sql +-1114998431, 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/sqlanywhere/1.0__initial.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlanywhere/1.0__initial.sql index ef262f2a9..65f593fc0 100644 --- 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 @@ -60,7 +60,7 @@ create table migtest_e_basic ( status2 varchar(1) default 'N' not null, name varchar(127), description varchar(127), - description2 varchar(127), + description_file binary(4500), some_date timestamp, old_boolean bit default false not null, old_boolean2 bit, 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 index 6ca9bbadc..bf1e082c9 100644 --- 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 @@ -1,6 +1,6 @@ -- Migrationscripts for ebean unittest -- apply changes -alter table migtest_e_basic drop column description2; +alter table migtest_e_basic drop column description_file; alter table migtest_e_basic drop column old_boolean; 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 index 16a6242b9..b8349412b 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlanywhere/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlanywhere/1.3.sql @@ -31,7 +31,7 @@ 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 description2 varchar(127); +alter table migtest_e_basic add column description_file binary(4500); 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; 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 c95356d8d..8ad7c45a6 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 @@ -1714992528, 1.0__initial.sql +-1152950940, 1.0__initial.sql 776493598, 1.1.sql -519662611, 1.2__dropsFor_1.1.sql -1025160700, 1.3.sql +628353409, 1.2__dropsFor_1.1.sql +436164575, 1.3.sql -1045594368, 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 index d6641c368..8afe5c89e 100644 --- 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 @@ -62,7 +62,7 @@ create table migtest_e_basic ( status2 varchar(1) default 'N' not null, name varchar(127), description varchar(127), - description2 varchar(127), + description_file blob, some_date timestamp, old_boolean int default 0 not null, old_boolean2 int, 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 index 6ca9bbadc..bf1e082c9 100644 --- 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 @@ -1,6 +1,6 @@ -- Migrationscripts for ebean unittest -- apply changes -alter table migtest_e_basic drop column description2; +alter table migtest_e_basic drop column description_file; alter table migtest_e_basic drop column old_boolean; 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 index 2f08cf01a..fa47a26c1 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlite/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlite/1.3.sql @@ -29,7 +29,7 @@ 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 description2 varchar(127); +alter table migtest_e_basic add column description_file blob; 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; 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 ea522c240..9909a4923 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 @@ -1636161797, 1.0__initial.sql +181087169, 1.0__initial.sql -1974335860, 1.1.sql -519662611, 1.2__dropsFor_1.1.sql -981819594, 1.3.sql +628353409, 1.2__dropsFor_1.1.sql +1537582239, 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/sqlserver16/1.0__initial.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/1.0__initial.sql index 33a9e7032..2058f54b6 100644 --- 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 @@ -60,7 +60,7 @@ create table migtest_e_basic ( status2 varchar(1) default 'N' not null, name varchar(127), description varchar(127), - description2 varchar(227), + description_file image, some_date datetime2, old_boolean bit default 0 not null, old_boolean2 bit, diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/1.2__dropsFor_1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/1.2__dropsFor_1.1.sql index e88590502..a49969d1e 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/1.2__dropsFor_1.1.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/1.2__dropsFor_1.1.sql @@ -1,6 +1,6 @@ -- Migrationscripts for ebean unittest -- apply changes -EXEC usp_ebean_drop_column migtest_e_basic, description2; +EXEC usp_ebean_drop_column migtest_e_basic, description_file; EXEC usp_ebean_drop_column migtest_e_basic, old_boolean; 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 index ff6aa310d..004107385 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/1.3.sql @@ -31,7 +31,7 @@ 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 description2 varchar(227); +alter table migtest_e_basic add description_file image; 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; 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 index ad8e7e852..a147ed2f5 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/idx_sqlserver.migrations +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/idx_sqlserver.migrations @@ -1,8 +1,8 @@ -2122378240, I__create_procs.sql --390904708, 1.0__initial.sql +1983037247, 1.0__initial.sql -1042228916, 1.1.sql -1470614292, 1.2__dropsFor_1.1.sql --948255182, 1.3.sql +1019731053, 1.2__dropsFor_1.1.sql +-897790738, 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/sqlserver17/1.0__initial.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/1.0__initial.sql index 3c089ee50..2fa18fa18 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/1.0__initial.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/1.0__initial.sql @@ -68,7 +68,7 @@ create table migtest_e_basic ( status2 nvarchar(1) default 'N' not null, name nvarchar(127), description nvarchar(127), - description2 nvarchar(227), + description_file image, some_date datetime2, old_boolean bit default 0 not null, old_boolean2 bit, 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 index e88590502..a49969d1e 100644 --- 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 @@ -1,6 +1,6 @@ -- Migrationscripts for ebean unittest -- apply changes -EXEC usp_ebean_drop_column migtest_e_basic, description2; +EXEC usp_ebean_drop_column migtest_e_basic, description_file; EXEC usp_ebean_drop_column migtest_e_basic, old_boolean; diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/1.3.sql index fc7b9e959..fde85d001 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/1.3.sql @@ -32,7 +32,7 @@ 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 description2 nvarchar(227); +alter table migtest_e_basic add description_file image; 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; diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/idx_sqlserver.migrations b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/idx_sqlserver.migrations index bc9ade414..95435eb0b 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/idx_sqlserver.migrations +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/idx_sqlserver.migrations @@ -1,8 +1,8 @@ -2122378240, I__create_procs.sql --1036149520, 1.0__initial.sql +-813787447, 1.0__initial.sql -898063858, 1.1.sql -1470614292, 1.2__dropsFor_1.1.sql -790811814, 1.3.sql +1019731053, 1.2__dropsFor_1.1.sql +-494373130, 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.0__initial.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/yugabyte/1.0__initial.sql index 11f764f24..88e5ba9cf 100644 --- 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 @@ -60,7 +60,7 @@ create table migtest_e_basic ( status2 varchar(1) default 'N' not null, name varchar(127), description varchar(127), - description2 varchar(127), + description_file bytea, some_date timestamptz, old_boolean boolean default false not null, old_boolean2 boolean, 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 index c98a15504..35a7e2b4a 100644 --- 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 @@ -3,7 +3,7 @@ drop view if exists migtest_e_history2_with_history; -- apply changes -alter table migtest_e_basic drop column description2; +alter table migtest_e_basic drop column description_file; alter table migtest_e_basic drop column old_boolean; 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 index 754e29b06..5a5ef8226 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/yugabyte/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/yugabyte/1.3.sql @@ -36,7 +36,7 @@ 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 description2 varchar(127); +alter table migtest_e_basic add column description_file bytea; 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; 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 e7ccfb6ad..0d28a6487 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 @@ -603721056, 1.0__initial.sql +78788203, 1.0__initial.sql 1985413053, 1.1.sql --1155149746, 1.2__dropsFor_1.1.sql --27599186, 1.3.sql +1360771849, 1.2__dropsFor_1.1.sql +-1862150074, 1.3.sql -1991941691, 1.4__dropsFor_1.3.sql 561281075, R__order_views.sql From dad4837b50f2701f4c2ac97e35e2826faa176472 Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Tue, 22 Feb 2022 13:15:28 +1300 Subject: [PATCH 027/114] No change - format code only --- .../server/deploy/BeanProperty.java | 24 +++++++++---------- .../ddlgeneration/platform/PlatformDdl.java | 8 +------ 2 files changed, 13 insertions(+), 19 deletions(-) diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanProperty.java b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanProperty.java index e83804be1..27327f1b9 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanProperty.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanProperty.java @@ -992,7 +992,7 @@ public class BeanProperty implements ElPropertyValue, Property, STreeProperty { */ public String renderDbType(DbPlatformType dbType, boolean strict) { if (dbColumnDefn != null) { - if(dbColumnDefn.endsWith(";")) { + if (dbColumnDefn.endsWith(";")) { return dbColumnDefn + dbType.renderType(dbLength, dbScale, strict); } return dbColumnDefn; @@ -1163,26 +1163,26 @@ public class BeanProperty implements ElPropertyValue, Property, STreeProperty { public boolean isLob() { return lob; } - + /** - * Returns true if this isLob() or the type will effectively map to a lob. + * Returns true if this isLob() or the type will effectively map to a lob. */ public boolean isDbLob() { if (lob) { return true; } switch (dbType) { - case DbPlatformType.JSON: - case DbPlatformType.JSONB: - return dbLength == 0; // must be analog to DbPlatformTypeMapping.lookup - case DbPlatformType.JSONBlob: - case DbPlatformType.JSONClob: - return true; - default: - return false; + case DbPlatformType.JSON: + case DbPlatformType.JSONB: + return dbLength == 0; // must be analog to DbPlatformTypeMapping.lookup + case DbPlatformType.JSONBlob: + case DbPlatformType.JSONClob: + return true; + default: + return false; } } - + public static boolean isLobType(int type) { switch (type) { case Types.CLOB: diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformDdl.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformDdl.java index d9030a07b..67a11d1e6 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformDdl.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformDdl.java @@ -9,11 +9,7 @@ import io.ebean.config.dbplatform.DbDefaultValue; import io.ebean.config.dbplatform.DbIdentity; import io.ebean.config.dbplatform.IdType; import io.ebean.util.StringHelper; -import io.ebeaninternal.dbmigration.ddlgeneration.BaseDdlHandler; -import io.ebeaninternal.dbmigration.ddlgeneration.DdlBuffer; -import io.ebeaninternal.dbmigration.ddlgeneration.DdlHandler; -import io.ebeaninternal.dbmigration.ddlgeneration.DdlOptions; -import io.ebeaninternal.dbmigration.ddlgeneration.DdlWrite; +import io.ebeaninternal.dbmigration.ddlgeneration.*; import io.ebeaninternal.dbmigration.ddlgeneration.platform.util.PlatformTypeConverter; import io.ebeaninternal.dbmigration.ddlgeneration.platform.util.VowelRemover; import io.ebeaninternal.dbmigration.migration.AddHistoryTable; @@ -319,9 +315,7 @@ public class PlatformDdl { if (type == null) { return null; } - type = extract(type); - if (type.contains("[]")) { return convertArrayType(type); } From 7a3494ebd965be2ab93af30a77ac87642fa86fec Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Tue, 22 Feb 2022 14:51:54 +1300 Subject: [PATCH 028/114] Update to the newer Apache2 licence text (from older Apache2 license text) --- LICENSE | 201 ++++++++++++++++++++++++++++++++++++++++++++++++++++ LICENSE.TXT | 15 ---- 2 files changed, 201 insertions(+), 15 deletions(-) create mode 100644 LICENSE delete mode 100644 LICENSE.TXT diff --git a/LICENSE b/LICENSE new file mode 100644 index 000000000..1ab0a32fa --- /dev/null +++ b/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright 2012 Authors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/LICENSE.TXT b/LICENSE.TXT deleted file mode 100644 index d62eb869b..000000000 --- a/LICENSE.TXT +++ /dev/null @@ -1,15 +0,0 @@ -EbeanORM - -Copyright 2012 Authors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. \ No newline at end of file From 2dfa9d2e7789030de5a7c9064501101db3e0f43d Mon Sep 17 00:00:00 2001 From: Roland Praml Date: Wed, 23 Feb 2022 11:14:22 +0100 Subject: [PATCH 029/114] No effective code change: Normalized "DdlWrite write" to "DdlWrite writer" --- .../dbmigration/DefaultDbMigration.java | 10 +- .../ddlgeneration/BaseDdlHandler.java | 8 +- .../dbmigration/ddlgeneration/DdlHandler.java | 4 +- .../dbmigration/ddlgeneration/TableDdl.java | 4 +- .../ddlgeneration/platform/BaseTableDdl.java | 64 +++--- .../platform/HanaHistoryDdl.java | 2 +- .../platform/NoHistorySupportDdl.java | 2 +- .../ddlgeneration/platform/PlatformDdl.java | 8 +- .../platform/PlatformHistoryDdl.java | 2 +- .../ddlgeneration/platform/SqlServerDdl.java | 22 +-- .../dbmigration/model/CurrentModel.java | 24 +-- .../dbmigration/model/PlatformDdlWriter.java | 31 +-- .../ddlgeneration/BaseDdlHandlerTest.java | 184 +++++++++--------- .../platform/BaseTableDdlTest.java | 55 +++--- .../platform/H2HistoryDdlTest.java | 14 +- .../ddlgeneration/platform/HanaDdlTest.java | 12 +- .../platform/PlatformDdl_AlterColumnTest.java | 6 +- 17 files changed, 228 insertions(+), 224 deletions(-) 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 1f233092a..87dd177b1 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 @@ -582,9 +582,9 @@ public class DefaultDbMigration implements DbMigration { // writer needs the current model to provide table/column details for // history ddl generation (triggers, history tables etc) DdlOptions options = new DdlOptions(addForeignKeySkipCheck); - DdlWrite write = new DdlWrite(new MConfiguration(), request.current, options); - PlatformDdlWriter writer = createDdlWriter(databasePlatform); - writer.processMigration(dbMigration, write, request.migrationDir, fullVersion); + DdlWrite writer = new DdlWrite(new MConfiguration(), request.current, options); + PlatformDdlWriter platformWriter = createDdlWriter(databasePlatform); + platformWriter.processMigration(dbMigration, writer, request.migrationDir, fullVersion); } return fullVersion; } @@ -651,10 +651,10 @@ public class DefaultDbMigration implements DbMigration { private void writeExtraPlatformDdl(String fullVersion, CurrentModel currentModel, Migration dbMigration, File writePath) throws IOException { DdlOptions options = new DdlOptions(addForeignKeySkipCheck); for (Pair pair : platforms) { - DdlWrite platformBuffer = new DdlWrite(new MConfiguration(), currentModel.read(), options); + DdlWrite writer = new DdlWrite(new MConfiguration(), currentModel.read(), options); PlatformDdlWriter platformWriter = createDdlWriter(pair.platform); File subPath = platformWriter.subPath(writePath, pair.prefix); - platformWriter.processMigration(dbMigration, platformBuffer, subPath, fullVersion); + platformWriter.processMigration(dbMigration, writer, subPath, fullVersion); } } diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/BaseDdlHandler.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/BaseDdlHandler.java index a78219962..a2f3f0e8e 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/BaseDdlHandler.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/BaseDdlHandler.java @@ -75,13 +75,13 @@ public class BaseDdlHandler implements DdlHandler { } @Override - public void generateProlog(DdlWrite write) { - tableDdl.generateProlog(write); + public void generateProlog(DdlWrite writer) { + tableDdl.generateProlog(writer); } @Override - public void generateEpilog(DdlWrite write) { - tableDdl.generateEpilog(write); + public void generateEpilog(DdlWrite writer) { + tableDdl.generateEpilog(writer); } @Override diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/DdlHandler.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/DdlHandler.java index b16939527..5f4d31090 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/DdlHandler.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/DdlHandler.java @@ -45,7 +45,7 @@ public interface DdlHandler { void generate(DdlWrite writer, AlterForeignKey alterForeignKey); - void generateProlog(DdlWrite write); + void generateProlog(DdlWrite writer); - void generateEpilog(DdlWrite write); + void generateEpilog(DdlWrite writer); } diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/TableDdl.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/TableDdl.java index 493a0f10d..744826a15 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/TableDdl.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/TableDdl.java @@ -81,10 +81,10 @@ public interface TableDdl { /** * Generate any extra DDL such as stored procedures or TableValueParameters. */ - void generateProlog(DdlWrite write); + void generateProlog(DdlWrite writer); /** * Generate any extra DDL such as regeneration of history triggers. */ - void generateEpilog(DdlWrite write); + void generateEpilog(DdlWrite writer); } diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/BaseTableDdl.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/BaseTableDdl.java index 34839184c..7fdaf7218 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/BaseTableDdl.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/BaseTableDdl.java @@ -350,7 +350,7 @@ public class BaseTableDdl implements TableDdl { * Specific handling of OneToOne unique constraints for MsSqlServer. * For all other DB platforms these unique constraints are done inline as per normal. */ - protected void writeUniqueOneToOneConstraints(DdlWrite write, CreateTable createTable) { + protected void writeUniqueOneToOneConstraints(DdlWrite writer, CreateTable createTable) { String tableName = createTable.getName(); for (Column col : externalUnique) { String uqName = col.getUniqueOneToOne(); @@ -358,8 +358,8 @@ public class BaseTableDdl implements TableDdl { uqName = col.getUnique(); } String[] columnNames = {col.getName()}; - write.apply().appendStatement(platformDdl.alterTableAddUniqueConstraint(tableName, uqName, columnNames, Boolean.TRUE.equals(col.isNotnull()) ? null : columnNames)); - write.dropAllForeignKeys().appendStatement(platformDdl.dropIndex(uqName, tableName)); + writer.apply().appendStatement(platformDdl.alterTableAddUniqueConstraint(tableName, uqName, columnNames, Boolean.TRUE.equals(col.isNotnull()) ? null : columnNames)); + writer.dropAllForeignKeys().appendStatement(platformDdl.dropIndex(uqName, tableName)); } for (UniqueConstraint constraint : externalCompoundUnique) { @@ -367,8 +367,8 @@ public class BaseTableDdl implements TableDdl { String[] columnNames = split(constraint.getColumnNames()); String[] nullableColumns = split(constraint.getNullableColumns()); - write.apply().appendStatement(platformDdl.alterTableAddUniqueConstraint(tableName, uqName, columnNames, nullableColumns)); - write.dropAllForeignKeys().appendStatement(platformDdl.dropIndex(uqName, tableName)); + writer.apply().appendStatement(platformDdl.alterTableAddUniqueConstraint(tableName, uqName, columnNames, nullableColumns)); + writer.dropAllForeignKeys().appendStatement(platformDdl.dropIndex(uqName, tableName)); } } @@ -386,63 +386,63 @@ public class BaseTableDdl implements TableDdl { platformDdl.createWithHistory(writer, table); } - protected void writeInlineForeignKeys(DdlWrite write, CreateTable createTable) { + protected void writeInlineForeignKeys(DdlWrite writer, CreateTable createTable) { for (Column column : createTable.getColumn()) { String references = column.getReferences(); if (hasValue(references)) { - writeInlineForeignKey(write, column); + writeInlineForeignKey(writer, column); } } - writeInlineCompoundForeignKeys(write, createTable); + writeInlineCompoundForeignKeys(writer, createTable); } - protected void writeInlineForeignKey(DdlWrite write, Column column) { + protected void writeInlineForeignKey(DdlWrite writer, Column column) { String fkConstraint = platformDdl.tableInlineForeignKey(new WriteForeignKey(null, column)); - write.apply().append(",").newLine().append(" ").append(fkConstraint); + writer.apply().append(",").newLine().append(" ").append(fkConstraint); } - protected void writeInlineCompoundForeignKeys(DdlWrite write, CreateTable createTable) { + protected void writeInlineCompoundForeignKeys(DdlWrite writer, CreateTable createTable) { for (ForeignKey key : createTable.getForeignKey()) { String fkConstraint = platformDdl.tableInlineForeignKey(new WriteForeignKey(null, key)); - write.apply().append(",").newLine().append(" ").append(fkConstraint); + writer.apply().append(",").newLine().append(" ").append(fkConstraint); } } - protected void writeAddForeignKeys(DdlWrite write, CreateTable createTable) { + protected void writeAddForeignKeys(DdlWrite writer, CreateTable createTable) { for (Column column : createTable.getColumn()) { String references = column.getReferences(); if (hasValue(references)) { - writeForeignKey(write, createTable.getName(), column); + writeForeignKey(writer, createTable.getName(), column); } } - writeAddCompoundForeignKeys(write, createTable); + writeAddCompoundForeignKeys(writer, createTable); } - protected void writeAddCompoundForeignKeys(DdlWrite write, CreateTable createTable) { + protected void writeAddCompoundForeignKeys(DdlWrite writer, CreateTable createTable) { for (ForeignKey key : createTable.getForeignKey()) { - writeForeignKey(write, new WriteForeignKey(createTable.getName(), key)); + writeForeignKey(writer, new WriteForeignKey(createTable.getName(), key)); } } - protected void writeForeignKey(DdlWrite write, String tableName, Column column) { - writeForeignKey(write, new WriteForeignKey(tableName, column)); + protected void writeForeignKey(DdlWrite writer, String tableName, Column column) { + writeForeignKey(writer, new WriteForeignKey(tableName, column)); } - protected void writeForeignKey(DdlWrite write, WriteForeignKey request) { - DdlBuffer fkeyBuffer = write.applyForeignKeys(); + protected void writeForeignKey(DdlWrite writer, WriteForeignKey request) { + DdlBuffer fkeyBuffer = writer.applyForeignKeys(); String tableName = lowerTableName(request.table()); if (request.indexName() != null) { // no matching unique constraint so add the index fkeyBuffer.appendStatement(platformDdl.createIndex(new WriteCreateIndex(request.indexName(), tableName, request.cols(), false))); } - alterTableAddForeignKey(write.getOptions(), fkeyBuffer, request); + alterTableAddForeignKey(writer.getOptions(), fkeyBuffer, request); fkeyBuffer.end(); - write.dropAllForeignKeys().appendStatement(platformDdl.alterTableDropForeignKey(tableName, request.fkName())); + writer.dropAllForeignKeys().appendStatement(platformDdl.alterTableDropForeignKey(tableName, request.fkName())); if (hasValue(request.indexName())) { - write.dropAllForeignKeys().appendStatement(platformDdl.dropIndex(request.indexName(), tableName)); + writer.dropAllForeignKeys().appendStatement(platformDdl.dropIndex(request.indexName(), tableName)); } - write.dropAllForeignKeys().end(); + writer.dropAllForeignKeys().end(); } protected void alterTableAddForeignKey(DdlOptions options, DdlBuffer buffer, WriteForeignKey request) { @@ -628,25 +628,25 @@ public class BaseTableDdl implements TableDdl { } @Override - public void generateProlog(DdlWrite write) { - platformDdl.generateProlog(write); + public void generateProlog(DdlWrite writer) { + platformDdl.generateProlog(writer); } /** * Called at the end to generate additional ddl such as regenerate history triggers. */ @Override - public void generateEpilog(DdlWrite write) { + public void generateEpilog(DdlWrite writer) { if (!regenerateHistoryTriggers.isEmpty()) { - platformDdl.lockTables(write.applyHistoryTrigger(), regenerateHistoryTriggers.keySet()); + platformDdl.lockTables(writer.applyHistoryTrigger(), regenerateHistoryTriggers.keySet()); for (HistoryTableUpdate update : this.regenerateHistoryTriggers.values()) { - platformDdl.regenerateHistoryTriggers(write, update); + platformDdl.regenerateHistoryTriggers(writer, update); } - platformDdl.unlockTables(write.applyHistoryTrigger(), regenerateHistoryTriggers.keySet()); + platformDdl.unlockTables(writer.applyHistoryTrigger(), regenerateHistoryTriggers.keySet()); } - platformDdl.generateEpilog(write); + platformDdl.generateEpilog(writer); } @Override diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/HanaHistoryDdl.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/HanaHistoryDdl.java index 94432fe38..7e743048c 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/HanaHistoryDdl.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/HanaHistoryDdl.java @@ -101,7 +101,7 @@ public class HanaHistoryDdl implements PlatformHistoryDdl { } @Override - public void updateTriggers(DdlWrite write, HistoryTableUpdate baseTable) { + public void updateTriggers(DdlWrite writer, HistoryTableUpdate baseTable) { // nothing to do } diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/NoHistorySupportDdl.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/NoHistorySupportDdl.java index f479ec75d..64e42952b 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/NoHistorySupportDdl.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/NoHistorySupportDdl.java @@ -33,7 +33,7 @@ public class NoHistorySupportDdl implements PlatformHistoryDdl { } @Override - public void updateTriggers(DdlWrite write, HistoryTableUpdate update) { + public void updateTriggers(DdlWrite writer, HistoryTableUpdate update) { // does nothing } } diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformDdl.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformDdl.java index 968dd0053..285e962fa 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformDdl.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformDdl.java @@ -375,8 +375,8 @@ public class PlatformDdl { /** * Regenerate the history triggers (or function) due to a column being added/dropped/excluded or included. */ - public void regenerateHistoryTriggers(DdlWrite write, HistoryTableUpdate update) { - historyDdl.updateTriggers(write, update); + public void regenerateHistoryTriggers(DdlWrite writer, HistoryTableUpdate update) { + historyDdl.updateTriggers(writer, update); } /** @@ -727,14 +727,14 @@ public class PlatformDdl { /** * Use this to generate a prolog for each script (stored procedures) */ - public void generateProlog(DdlWrite write) { + public void generateProlog(DdlWrite writer) { } /** * Use this to generate an epilog. Will be added at the end of script */ - public void generateEpilog(DdlWrite write) { + public void generateEpilog(DdlWrite writer) { } diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformHistoryDdl.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformHistoryDdl.java index 517c390e2..ca7236228 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformHistoryDdl.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformHistoryDdl.java @@ -34,5 +34,5 @@ public interface PlatformHistoryDdl { /** * Regenerate the history triggers/stored function due to column added/dropped/included or excluded. */ - void updateTriggers(DdlWrite write, HistoryTableUpdate baseTable); + void updateTriggers(DdlWrite writer, HistoryTableUpdate baseTable); } diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/SqlServerDdl.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/SqlServerDdl.java index b522b6b7a..62b86be4a 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/SqlServerDdl.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/SqlServerDdl.java @@ -211,25 +211,25 @@ public class SqlServerDdl extends PlatformDdl { * This writes the multi value datatypes needed for MultiValueBind. */ @Override - public void generateProlog(DdlWrite write) { - super.generateProlog(write); + public void generateProlog(DdlWrite writer) { + super.generateProlog(writer); - generateTVPDefinitions(write, "bigint"); - generateTVPDefinitions(write, "float"); - generateTVPDefinitions(write, "bit"); - generateTVPDefinitions(write, "date"); - generateTVPDefinitions(write, "time"); + generateTVPDefinitions(writer, "bigint"); + generateTVPDefinitions(writer, "float"); + generateTVPDefinitions(writer, "bit"); + generateTVPDefinitions(writer, "date"); + generateTVPDefinitions(writer, "time"); //generateTVPDefinitions(write, "datetime2"); - generateTVPDefinitions(write, "uniqueidentifier"); - generateTVPDefinitions(write, "nvarchar(max)"); + generateTVPDefinitions(writer, "uniqueidentifier"); + generateTVPDefinitions(writer, "nvarchar(max)"); } - private void generateTVPDefinitions(DdlWrite write, String definition) { + private void generateTVPDefinitions(DdlWrite writer, String definition) { int pos = definition.indexOf('('); String name = pos == -1 ? definition : definition.substring(0, pos); - dropTVP(write.dropAll(), name); + dropTVP(writer.dropAll(), name); //TVPs are included in "I__create_procs.sql" //createTVP(write.apply(), name, definition); } diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/model/CurrentModel.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/model/CurrentModel.java index f9b46f866..a369097f7 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/model/CurrentModel.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/model/CurrentModel.java @@ -35,7 +35,7 @@ public class CurrentModel { private ModelContainer model; private ChangeSet changeSet; - private DdlWrite write; + private DdlWrite writer; /** * Construct with a given EbeanServer instance for DDL create all generation, not migration. @@ -127,10 +127,10 @@ public class CurrentModel { if (jaxbPresent) { addExtraDdl(ddl, ExtraDdlXmlReader.readBuiltin(), "-- init script "); } - ddl.append(write.apply().getBuffer()); - ddl.append(write.applyForeignKeys().getBuffer()); - ddl.append(write.applyHistoryView().getBuffer()); - ddl.append(write.applyHistoryTrigger().getBuffer()); + ddl.append(writer.apply().getBuffer()); + ddl.append(writer.applyForeignKeys().getBuffer()); + ddl.append(writer.applyHistoryView().getBuffer()); + ddl.append(writer.applyHistoryTrigger().getBuffer()); return ddl.toString(); } @@ -157,8 +157,8 @@ public class CurrentModel { if (ddlHeader != null && !ddlHeader.isEmpty()) { ddl.append(ddlHeader).append('\n'); } - ddl.append(write.dropAllForeignKeys().getBuffer()); - ddl.append(write.dropAll().getBuffer()); + ddl.append(writer.dropAllForeignKeys().getBuffer()); + ddl.append(writer.dropAll().getBuffer()); return ddl.toString(); } @@ -166,13 +166,13 @@ public class CurrentModel { * Create all the DDL based on the changeSet. */ private void createDdl() { - if (write == null) { + if (writer == null) { ChangeSet createChangeSet = getChangeSet(); - write = new DdlWrite(new MConfiguration(), model, ddlOptions); + writer = new DdlWrite(new MConfiguration(), model, ddlOptions); DdlHandler handler = handler(); - handler.generateProlog(write); - handler.generate(write, createChangeSet); - handler.generateEpilog(write); + handler.generateProlog(writer); + handler.generate(writer, createChangeSet); + handler.generateEpilog(writer); } } diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/model/PlatformDdlWriter.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/model/PlatformDdlWriter.java index ec55dd9a9..1755e04a9 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/model/PlatformDdlWriter.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/model/PlatformDdlWriter.java @@ -39,23 +39,24 @@ public class PlatformDdlWriter { /** * Write the migration as platform specific ddl. */ - public void processMigration(Migration dbMigration, DdlWrite write, File writePath, String fullVersion) throws IOException { + public void processMigration(Migration dbMigration, DdlWrite writer, File writePath, String fullVersion) + throws IOException { DdlHandler handler = handler(); - handler.generateProlog(write); + handler.generateProlog(writer); if (lockTimeoutSeconds > 0) { String lockSql = platformDdl.setLockTimeout(lockTimeoutSeconds); if (lockSql != null) { - write.apply().append(lockSql).endOfStatement().newLine(); + writer.apply().append(lockSql).endOfStatement().newLine(); } } List changeSets = dbMigration.getChangeSet(); for (ChangeSet changeSet : changeSets) { if (isApply(changeSet)) { - handler.generate(write, changeSet); + handler.generate(writer, changeSet); } } - handler.generateEpilog(write); - writePlatformDdl(write, writePath, fullVersion); + handler.generateEpilog(writer); + writePlatformDdl(writer, writePath, fullVersion); } /** @@ -68,10 +69,10 @@ public class PlatformDdlWriter { /** * Write the ddl files. */ - protected void writePlatformDdl(DdlWrite write, File resourcePath, String fullVersion) throws IOException { - if (!write.isApplyEmpty()) { + protected void writePlatformDdl(DdlWrite writer, File resourcePath, String fullVersion) throws IOException { + if (!writer.isApplyEmpty()) { try (Writer applyWriter = createWriter(resourcePath, fullVersion, ".sql")) { - writeApplyDdl(applyWriter, write); + writeApplyDdl(applyWriter, writer); applyWriter.flush(); } } @@ -85,18 +86,18 @@ public class PlatformDdlWriter { /** * Write the 'Apply' DDL buffers to the writer. */ - protected void writeApplyDdl(Writer writer, DdlWrite write) throws IOException { + protected void writeApplyDdl(Writer writer, DdlWrite ddl) throws IOException { String header = databaseConfig.getDdlHeader(); if (header != null && !header.isEmpty()) { writer.append(header).append('\n'); } // merge the apply buffers in the appropriate order - prependDropDependencies(writer, write.applyDropDependencies()); + prependDropDependencies(writer, ddl.applyDropDependencies()); writer.append("-- apply changes\n"); - writer.append(write.apply().getBuffer()); - writer.append(write.applyForeignKeys().getBuffer()); - writer.append(write.applyHistoryView().getBuffer()); - writer.append(write.applyHistoryTrigger().getBuffer()); + writer.append(ddl.apply().getBuffer()); + writer.append(ddl.applyForeignKeys().getBuffer()); + writer.append(ddl.applyHistoryView().getBuffer()); + writer.append(ddl.applyHistoryTrigger().getBuffer()); } private void prependDropDependencies(Writer writer, DdlBuffer buffer) throws IOException { diff --git a/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/BaseDdlHandlerTest.java b/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/BaseDdlHandlerTest.java index 550d508ad..ef1bd4081 100644 --- a/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/BaseDdlHandlerTest.java +++ b/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/BaseDdlHandlerTest.java @@ -45,30 +45,30 @@ public class BaseDdlHandlerTest extends BaseTestCase { @Test public void addColumn_nullable_noConstraint() throws Exception { - DdlWrite write = new DdlWrite(); - h2Handler().generate(write, Helper.getAddColumn()); - assertThat(write.apply().getBuffer()).isEqualTo("alter table foo add column added_to_foo varchar(20);\n\n"); + DdlWrite writer = new DdlWrite(); + h2Handler().generate(writer, Helper.getAddColumn()); + assertThat(writer.apply().getBuffer()).isEqualTo("alter table foo add column added_to_foo varchar(20);\n\n"); - write = new DdlWrite(); - sqlserverHandler().generate(write, Helper.getAddColumn()); - assertThat(write.apply().getBuffer()).isEqualTo("alter table foo add added_to_foo nvarchar(20);\n\n"); + writer = new DdlWrite(); + sqlserverHandler().generate(writer, Helper.getAddColumn()); + assertThat(writer.apply().getBuffer()).isEqualTo("alter table foo add added_to_foo nvarchar(20);\n\n"); - write = new DdlWrite(); - hanaHandler().generate(write, Helper.getAddColumn()); - assertThat(write.apply().getBuffer()).isEqualTo("alter table foo add ( added_to_foo nvarchar(20));\n\n"); + writer = new DdlWrite(); + hanaHandler().generate(writer, Helper.getAddColumn()); + assertThat(writer.apply().getBuffer()).isEqualTo("alter table foo add ( added_to_foo nvarchar(20));\n\n"); } @Test public void addColumn_withCheckConstraint() throws Exception { - DdlWrite write = new DdlWrite(); - h2Handler().generate(write, Helper.getAlterTableAddColumnWithCheckConstraint()); - assertThat(write.apply().getBuffer()).isEqualTo("alter table foo add column status integer;\n" + DdlWrite writer = new DdlWrite(); + h2Handler().generate(writer, Helper.getAlterTableAddColumnWithCheckConstraint()); + assertThat(writer.apply().getBuffer()).isEqualTo("alter table foo add column status integer;\n" + "alter table foo add constraint ck_ordering_status check ( status in (0,1));\n\n"); - write = new DdlWrite(); - hanaHandler().generate(write, Helper.getAlterTableAddColumnWithCheckConstraint()); - assertThat(write.apply().getBuffer()).isEqualTo("alter table foo add ( status integer);\n" + writer = new DdlWrite(); + hanaHandler().generate(writer, Helper.getAlterTableAddColumnWithCheckConstraint()); + assertThat(writer.apply().getBuffer()).isEqualTo("alter table foo add ( status integer);\n" + "alter table foo add constraint ck_ordering_status check ( status in (0,1));\n\n"); } @@ -79,158 +79,160 @@ public class BaseDdlHandlerTest extends BaseTestCase { @Test public void addColumn_dbarray() throws Exception { - DdlWrite write = new DdlWrite(); + DdlWrite writer = new DdlWrite(); DdlHandler postgresHandler = postgresHandler(); - postgresHandler.generate(write, Helper.getAlterTableAddDbArrayColumn()); + postgresHandler.generate(writer, Helper.getAlterTableAddDbArrayColumn()); - assertThat(write.apply().getBuffer()).isEqualTo("alter table foo add column dbarray_added_to_foo varchar[];\n\n"); + assertThat(writer.apply().getBuffer()).isEqualTo("alter table foo add column dbarray_added_to_foo varchar[];\n\n"); - write = new DdlWrite(); + writer = new DdlWrite(); DdlHandler sqlserverHandler = sqlserverHandler(); - sqlserverHandler.generate(write, Helper.getAlterTableAddDbArrayColumn()); - assertThat(write.apply().getBuffer()).isEqualTo("alter table foo add dbarray_added_to_foo varchar(1000);\n\n"); + sqlserverHandler.generate(writer, Helper.getAlterTableAddDbArrayColumn()); + assertThat(writer.apply().getBuffer()).isEqualTo("alter table foo add dbarray_added_to_foo varchar(1000);\n\n"); - write = new DdlWrite(); + writer = new DdlWrite(); DdlHandler hanaHandler = hanaHandler(); - hanaHandler.generate(write, Helper.getAlterTableAddDbArrayColumn()); - assertThat(write.apply().getBuffer()).isEqualTo("alter table foo add ( dbarray_added_to_foo nvarchar(255) array);\n\n"); + hanaHandler.generate(writer, Helper.getAlterTableAddDbArrayColumn()); + assertThat(writer.apply().getBuffer()) + .isEqualTo("alter table foo add ( dbarray_added_to_foo nvarchar(255) array);\n\n"); } @Test public void addColumn_dbarray_withLength() throws Exception { - DdlWrite write = new DdlWrite(); + DdlWrite writer = new DdlWrite(); - postgresHandler().generate(write, Helper.getAlterTableAddDbArrayColumnWithLength()); - assertThat(write.apply().getBuffer()).isEqualTo("alter table foo add column dbarray_ninety varchar[];\n\n"); + postgresHandler().generate(writer, Helper.getAlterTableAddDbArrayColumnWithLength()); + assertThat(writer.apply().getBuffer()).isEqualTo("alter table foo add column dbarray_ninety varchar[];\n\n"); - write = new DdlWrite(); - h2Handler().generate(write, Helper.getAlterTableAddDbArrayColumnWithLength()); + writer = new DdlWrite(); + h2Handler().generate(writer, Helper.getAlterTableAddDbArrayColumnWithLength()); if (useV1Syntax) { - assertThat(write.apply().getBuffer()).isEqualTo("alter table foo add column dbarray_ninety array;\n\n"); + assertThat(writer.apply().getBuffer()).isEqualTo("alter table foo add column dbarray_ninety array;\n\n"); } else { - assertThat(write.apply().getBuffer()).isEqualTo("alter table foo add column dbarray_ninety varchar array;\n\n"); + assertThat(writer.apply().getBuffer()).isEqualTo("alter table foo add column dbarray_ninety varchar array;\n\n"); } - write = new DdlWrite(); - sqlserverHandler().generate(write, Helper.getAlterTableAddDbArrayColumnWithLength()); - assertThat(write.apply().getBuffer()).isEqualTo("alter table foo add dbarray_ninety varchar(90);\n\n"); + writer = new DdlWrite(); + sqlserverHandler().generate(writer, Helper.getAlterTableAddDbArrayColumnWithLength()); + assertThat(writer.apply().getBuffer()).isEqualTo("alter table foo add dbarray_ninety varchar(90);\n\n"); - write = new DdlWrite(); - hanaHandler().generate(write, Helper.getAlterTableAddDbArrayColumnWithLength()); - assertThat(write.apply().getBuffer()).isEqualTo("alter table foo add ( dbarray_ninety nvarchar(255) array(90));\n\n"); + writer = new DdlWrite(); + hanaHandler().generate(writer, Helper.getAlterTableAddDbArrayColumnWithLength()); + assertThat(writer.apply().getBuffer()) + .isEqualTo("alter table foo add ( dbarray_ninety nvarchar(255) array(90));\n\n"); } @Test public void addColumn_dbarray_integer_withLength() throws Exception { - DdlWrite write = new DdlWrite(); - postgresHandler().generate(write, Helper.getAlterTableAddDbArrayColumnIntegerWithLength()); - assertThat(write.apply().getBuffer()).isEqualTo("alter table foo add column dbarray_integer integer[];\n\n"); + DdlWrite writer = new DdlWrite(); + postgresHandler().generate(writer, Helper.getAlterTableAddDbArrayColumnIntegerWithLength()); + assertThat(writer.apply().getBuffer()).isEqualTo("alter table foo add column dbarray_integer integer[];\n\n"); - write = new DdlWrite(); - h2Handler().generate(write, Helper.getAlterTableAddDbArrayColumnIntegerWithLength()); + writer = new DdlWrite(); + h2Handler().generate(writer, Helper.getAlterTableAddDbArrayColumnIntegerWithLength()); if (useV1Syntax) { - assertThat(write.apply().getBuffer()).isEqualTo("alter table foo add column dbarray_integer array;\n\n"); + assertThat(writer.apply().getBuffer()).isEqualTo("alter table foo add column dbarray_integer array;\n\n"); } else { - assertThat(write.apply().getBuffer()).isEqualTo("alter table foo add column dbarray_integer integer array;\n\n"); + assertThat(writer.apply().getBuffer()).isEqualTo("alter table foo add column dbarray_integer integer array;\n\n"); } - write = new DdlWrite(); - sqlserverHandler().generate(write, Helper.getAlterTableAddDbArrayColumnIntegerWithLength()); - assertThat(write.apply().getBuffer()).isEqualTo("alter table foo add dbarray_integer varchar(90);\n\n"); + writer = new DdlWrite(); + sqlserverHandler().generate(writer, Helper.getAlterTableAddDbArrayColumnIntegerWithLength()); + assertThat(writer.apply().getBuffer()).isEqualTo("alter table foo add dbarray_integer varchar(90);\n\n"); - write = new DdlWrite(); - sqlserverHandler().generate(write, Helper.getAlterTableAddDbArrayColumnInteger()); - assertThat(write.apply().getBuffer()).isEqualTo("alter table foo add dbarray_integer varchar(1000);\n\n"); + writer = new DdlWrite(); + sqlserverHandler().generate(writer, Helper.getAlterTableAddDbArrayColumnInteger()); + assertThat(writer.apply().getBuffer()).isEqualTo("alter table foo add dbarray_integer varchar(1000);\n\n"); - write = new DdlWrite(); - hanaHandler().generate(write, Helper.getAlterTableAddDbArrayColumnIntegerWithLength()); - assertThat(write.apply().getBuffer()).isEqualTo("alter table foo add ( dbarray_integer integer array(90));\n\n"); + writer = new DdlWrite(); + hanaHandler().generate(writer, Helper.getAlterTableAddDbArrayColumnIntegerWithLength()); + assertThat(writer.apply().getBuffer()).isEqualTo("alter table foo add ( dbarray_integer integer array(90));\n\n"); - write = new DdlWrite(); - hanaHandler().generate(write, Helper.getAlterTableAddDbArrayColumnInteger()); - assertThat(write.apply().getBuffer()).isEqualTo("alter table foo add ( dbarray_integer integer array);\n\n"); + writer = new DdlWrite(); + hanaHandler().generate(writer, Helper.getAlterTableAddDbArrayColumnInteger()); + assertThat(writer.apply().getBuffer()).isEqualTo("alter table foo add ( dbarray_integer integer array);\n\n"); } @Test public void addColumn_withForeignKey() throws Exception { - DdlWrite write = new DdlWrite(); + DdlWrite writer = new DdlWrite(); DdlHandler handler = h2Handler(); - handler.generate(write, Helper.getAlterTableAddColumn()); + handler.generate(writer, Helper.getAlterTableAddColumn()); - String buffer = write.apply().getBuffer(); + String buffer = writer.apply().getBuffer(); assertThat(buffer).contains("alter table foo add column some_id integer;"); - String fkBuffer = write.applyForeignKeys().getBuffer(); + String fkBuffer = writer.applyForeignKeys().getBuffer(); assertThat(fkBuffer).contains( "alter table foo add constraint fk_foo_some_id foreign key (some_id) references bar (id) on delete restrict on update restrict;"); assertThat(fkBuffer).contains("create index idx_foo_some_id on foo (some_id);"); - assertThat(write.dropAll().getBuffer()).isEqualTo(""); + assertThat(writer.dropAll().getBuffer()).isEqualTo(""); } @Test public void dropColumn() throws Exception { - DdlWrite write = new DdlWrite(); + DdlWrite writer = new DdlWrite(); DdlHandler handler = h2Handler(); - handler.generate(write, Helper.getDropColumn()); + handler.generate(writer, Helper.getDropColumn()); - assertThat(write.apply().getBuffer()).isEqualTo("alter table foo drop column col2;\n\n"); - assertThat(write.dropAll().getBuffer()).isEqualTo(""); + assertThat(writer.apply().getBuffer()).isEqualTo("alter table foo drop column col2;\n\n"); + assertThat(writer.dropAll().getBuffer()).isEqualTo(""); - write = new DdlWrite(); + writer = new DdlWrite(); DdlHandler hanaHandler = hanaHandler(); - hanaHandler.generate(write, Helper.getDropColumn()); + hanaHandler.generate(writer, Helper.getDropColumn()); - assertThat(write.apply().getBuffer()).isEqualTo("CALL usp_ebean_drop_column('foo', 'col2');\n\n"); - assertThat(write.dropAll().getBuffer()).isEqualTo(""); + assertThat(writer.apply().getBuffer()).isEqualTo("CALL usp_ebean_drop_column('foo', 'col2');\n\n"); + assertThat(writer.dropAll().getBuffer()).isEqualTo(""); } @Test public void createTable() throws Exception { - DdlWrite write = new DdlWrite(); + DdlWrite writer = new DdlWrite(); DdlHandler handler = h2Handler(); - handler.generate(write, Helper.getCreateTable()); + handler.generate(writer, Helper.getCreateTable()); String createTableDDL = Helper.asText(this, "/assert/create-table.txt"); - assertThat(write.apply().getBuffer()).isEqualTo(createTableDDL); - assertThat(write.dropAll().getBuffer().trim()).isEqualTo("drop table if exists foo;"); + assertThat(writer.apply().getBuffer()).isEqualTo(createTableDDL); + assertThat(writer.dropAll().getBuffer().trim()).isEqualTo("drop table if exists foo;"); - write = new DdlWrite(); + writer = new DdlWrite(); DdlHandler hanaHandler = hanaHandler(); - hanaHandler.generate(write, Helper.getCreateTable()); + hanaHandler.generate(writer, Helper.getCreateTable()); String createColumnTableDDL = Helper.asText(this, "/assert/create-column-table.txt"); - assertThat(write.apply().getBuffer()).isEqualTo(createColumnTableDDL); - assertThat(write.dropAll().getBuffer().trim()).isEqualTo("drop table foo cascade;"); + assertThat(writer.apply().getBuffer()).isEqualTo(createColumnTableDDL); + assertThat(writer.dropAll().getBuffer().trim()).isEqualTo("drop table foo cascade;"); } @Test public void generateChangeSet() throws Exception { - DdlWrite write = new DdlWrite(); + DdlWrite writer = new DdlWrite(); DdlHandler handler = h2Handler(); - handler.generate(write, Helper.getChangeSet()); + handler.generate(writer, Helper.getChangeSet()); String apply = Helper.asText(this, "/assert/BaseDdlHandlerTest/baseApply.sql"); String rollbackLast = Helper.asText(this, "/assert/BaseDdlHandlerTest/baseDropAll.sql"); - assertThat(write.apply().getBuffer()).isEqualTo(apply); - assertThat(write.dropAll().getBuffer()).isEqualTo(rollbackLast); + assertThat(writer.apply().getBuffer()).isEqualTo(apply); + assertThat(writer.dropAll().getBuffer()).isEqualTo(rollbackLast); } @Disabled @@ -241,16 +243,16 @@ public class BaseDdlHandlerTest extends BaseTestCase { ChangeSet createChangeSet = new CurrentModel(defaultServer).getChangeSet(); - DdlWrite write = new DdlWrite(); + DdlWrite writer = new DdlWrite(); DdlHandler handler = h2Handler(); - handler.generate(write, createChangeSet); + handler.generate(writer, createChangeSet); String apply = Helper.asText(this, "/assert/changeset-apply.txt"); String rollbackLast = Helper.asText(this, "/assert/changeset-dropAll.txt"); - assertThat(write.apply().getBuffer()).isEqualTo(apply); - assertThat(write.dropAll().getBuffer()).isEqualTo(rollbackLast); + assertThat(writer.apply().getBuffer()).isEqualTo(apply); + assertThat(writer.dropAll().getBuffer()).isEqualTo(rollbackLast); } @Disabled @@ -260,20 +262,20 @@ public class BaseDdlHandlerTest extends BaseTestCase { ChangeSet createChangeSet = new CurrentModel(defaultServer).getChangeSet(); - DdlWrite write = new DdlWrite(); + DdlWrite writer = new DdlWrite(); DdlHandler handler = postgresHandler(); - handler.generate(write, createChangeSet); + handler.generate(writer, createChangeSet); String apply = Helper.asText(this, "/assert/changeset-pg-apply.sql"); String applyLast = Helper.asText(this, "/assert/changeset-pg-applyLast.sql"); String rollbackFirst = Helper.asText(this, "/assert/changeset-pg-rollbackFirst.sql"); String rollbackLast = Helper.asText(this, "/assert/changeset-pg-rollbackLast.sql"); - assertThat(write.apply().getBuffer()).isEqualTo(apply); - assertThat(write.applyForeignKeys().getBuffer()).isEqualTo(applyLast); - assertThat(write.dropAllForeignKeys().getBuffer()).isEqualTo(rollbackFirst); - assertThat(write.dropAll().getBuffer()).isEqualTo(rollbackLast); + assertThat(writer.apply().getBuffer()).isEqualTo(apply); + assertThat(writer.applyForeignKeys().getBuffer()).isEqualTo(applyLast); + assertThat(writer.dropAllForeignKeys().getBuffer()).isEqualTo(rollbackFirst); + assertThat(writer.dropAll().getBuffer()).isEqualTo(rollbackLast); } } diff --git a/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/BaseTableDdlTest.java b/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/BaseTableDdlTest.java index 3383898b5..737916367 100644 --- a/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/BaseTableDdlTest.java +++ b/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/BaseTableDdlTest.java @@ -30,16 +30,16 @@ public class BaseTableDdlTest { public void testAlterColumn() { BaseTableDdl ddlGen = new BaseTableDdl(serverConfig, h2ddl); - DdlWrite write = new DdlWrite(); + DdlWrite writer = new DdlWrite(); AlterColumn alterColumn = new AlterColumn(); alterColumn.setTableName("mytab"); alterColumn.setCheckConstraint("check (acol in ('A','B'))"); alterColumn.setCheckConstraintName("ck_mytab_acol"); - ddlGen.generate(write, alterColumn); + ddlGen.generate(writer, alterColumn); - String ddl = write.apply().getBuffer(); + String ddl = writer.apply().getBuffer(); assertThat(ddl).contains("alter table mytab drop constraint if exists ck_mytab_acol"); assertThat(ddl).contains("alter table mytab add constraint ck_mytab_acol check (acol in ('A','B'))"); } @@ -49,15 +49,15 @@ public class BaseTableDdlTest { BaseTableDdl ddlGen = new BaseTableDdl(serverConfig, PlatformDdlBuilder.create(new OraclePlatform())); - DdlWrite write = new DdlWrite(); + DdlWrite writer = new DdlWrite(); Column column = new Column(); column.setName("col_name"); column.setType("varchar(20)"); - ddlGen.alterTableAddColumn(write.apply(), "mytable", column, false, false); + ddlGen.alterTableAddColumn(writer.apply(), "mytable", column, false, false); - String ddl = write.apply().getBuffer(); + String ddl = writer.apply().getBuffer(); assertThat(ddl).contains("alter table mytable add col_name varchar2(20)"); } @@ -66,15 +66,15 @@ public class BaseTableDdlTest { ClickHouseTableDdl ddlGen = new ClickHouseTableDdl(serverConfig, PlatformDdlBuilder.create(new ClickHousePlatform())); - DdlWrite write = new DdlWrite(); + DdlWrite writer = new DdlWrite(); Column column = new Column(); column.setName("col_name"); column.setType("varchar(20)"); - ddlGen.alterTableAddColumn(write.apply(), "mytable", column, false, false); + ddlGen.alterTableAddColumn(writer.apply(), "mytable", column, false, false); - String ddl = write.apply().getBuffer(); + String ddl = writer.apply().getBuffer(); assertThat(ddl).contains("alter table mytable add column col_name String"); } @@ -83,32 +83,33 @@ public class BaseTableDdlTest { BaseTableDdl ddlGen = new BaseTableDdl(serverConfig, h2ddl); - DdlWrite write = new DdlWrite(); + DdlWrite writer = new DdlWrite(); AlterColumn alterColumn = new AlterColumn(); alterColumn.setTableName("mytab"); alterColumn.setColumnName("acol"); alterColumn.setComment("my comment"); - ddlGen.generate(write, alterColumn); + ddlGen.generate(writer, alterColumn); - String ddl = write.apply().getBuffer(); + String ddl = writer.apply().getBuffer(); assertThat(ddl).contains("comment on column mytab.acol is 'my comment'"); } @Test public void alterTableAddColumnWithComment() { BaseTableDdl ddl = new BaseTableDdl(serverConfig, h2ddl); - DdlWrite write = new DdlWrite(); + DdlWrite writer = new DdlWrite(); Column column = new Column(); column.setName("my_column"); column.setComment("some comment"); column.setType("int"); - ddl.alterTableAddColumn(write.apply(), "my_table", column, false, false); + ddl.alterTableAddColumn(writer.apply(), "my_table", column, false, false); assertEquals( "alter table my_table add column my_column int;\n" + - "comment on column my_table.my_column is 'some comment';\n", write.apply().getBuffer()); + "comment on column my_table.my_column is 'some comment';\n", + writer.apply().getBuffer()); } @Test @@ -116,15 +117,15 @@ public class BaseTableDdlTest { BaseTableDdl ddlGen = new BaseTableDdl(serverConfig, h2ddl); - DdlWrite write = new DdlWrite(); + DdlWrite writer = new DdlWrite(); AddTableComment addTableComment = new AddTableComment(); addTableComment.setName("mytab"); addTableComment.setComment("my comment"); - ddlGen.generate(write, addTableComment); + ddlGen.generate(writer, addTableComment); - String ddl = write.apply().getBuffer(); + String ddl = writer.apply().getBuffer(); assertThat(ddl).contains("comment on table mytab is 'my comment'"); } @@ -133,15 +134,15 @@ public class BaseTableDdlTest { BaseTableDdl ddlGen = new BaseTableDdl(serverConfig, PlatformDdlBuilder.create(new MySqlPlatform())); - DdlWrite write = new DdlWrite(); + DdlWrite writer = new DdlWrite(); AddTableComment addTableComment = new AddTableComment(); addTableComment.setName("mytab"); addTableComment.setComment("my comment"); - ddlGen.generate(write, addTableComment); + ddlGen.generate(writer, addTableComment); - String ddl = write.apply().getBuffer(); + String ddl = writer.apply().getBuffer(); assertThat(ddl).contains("alter table mytab comment = 'my comment'"); } @@ -150,14 +151,14 @@ public class BaseTableDdlTest { BaseTableDdl ddlGen = new BaseTableDdl(serverConfig, h2ddl); - DdlWrite write = new DdlWrite(); + DdlWrite writer = new DdlWrite(); - ddlGen.generate(write, createTable()); - String apply = write.apply().getBuffer(); - String applyLast = write.applyForeignKeys().getBuffer(); + ddlGen.generate(writer, createTable()); + String apply = writer.apply().getBuffer(); + String applyLast = writer.applyForeignKeys().getBuffer(); - String rollbackFirst = write.dropAllForeignKeys().getBuffer(); - String rollbackLast = write.dropAll().getBuffer(); + String rollbackFirst = writer.dropAllForeignKeys().getBuffer(); + String rollbackLast = writer.dropAll().getBuffer(); assertThat(apply).isEqualTo(Helper.asText(this, "/assert/BaseTableDdlTest/createTable-apply.txt")); assertThat(applyLast).isEqualTo(Helper.asText(this, "/assert/BaseTableDdlTest/createTable-applyLast.txt")); diff --git a/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/H2HistoryDdlTest.java b/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/H2HistoryDdlTest.java index a23a7ad79..031e4b965 100644 --- a/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/H2HistoryDdlTest.java +++ b/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/H2HistoryDdlTest.java @@ -28,23 +28,23 @@ public class H2HistoryDdlTest { CurrentModel currentModel = new CurrentModel(ebeanServer); ModelContainer modelContainer = currentModel.read(); - DdlWrite write = new DdlWrite(new MConfiguration(), modelContainer, new DdlOptions()); + DdlWrite writer = new DdlWrite(new MConfiguration(), modelContainer, new DdlOptions()); H2Platform h2Platform = new H2Platform(); PlatformDdl h2Ddl = PlatformDdlBuilder.create(h2Platform); h2Ddl.configure(ebeanServer.config()); - h2Ddl.regenerateHistoryTriggers(write, update); + h2Ddl.regenerateHistoryTriggers(writer, update); - assertThat(write.applyHistoryView().isEmpty()).isFalse(); - assertThat(write.applyHistoryTrigger().isEmpty()).isFalse(); - assertThat(write.applyHistoryView().getBuffer()) + assertThat(writer.applyHistoryView().isEmpty()).isFalse(); + assertThat(writer.applyHistoryTrigger().isEmpty()).isFalse(); + assertThat(writer.applyHistoryView().getBuffer()) .contains("create view") .doesNotContain("create trigger"); - assertThat(write.applyHistoryTrigger().getBuffer()) + assertThat(writer.applyHistoryTrigger().getBuffer()) .contains("add one") .contains("create trigger") .doesNotContain("create view"); - assertThat(write.dropAll().isEmpty()).isTrue(); + assertThat(writer.dropAll().isEmpty()).isTrue(); } } diff --git a/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/HanaDdlTest.java b/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/HanaDdlTest.java index 64bb09d9a..861e37d63 100644 --- a/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/HanaDdlTest.java +++ b/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/HanaDdlTest.java @@ -12,15 +12,15 @@ public class HanaDdlTest { @Test public void alterTableDropColumn() { HanaColumnStoreDdl ddl = new HanaColumnStoreDdl(new HanaPlatform()); - DdlWrite write = new DdlWrite(); - ddl.alterTableDropColumn(write.apply(), "my_table", "my_column"); - assertEquals("CALL usp_ebean_drop_column('my_table', 'my_column');\n", write.apply().getBuffer()); + DdlWrite writer = new DdlWrite(); + ddl.alterTableDropColumn(writer.apply(), "my_table", "my_column"); + assertEquals("CALL usp_ebean_drop_column('my_table', 'my_column');\n", writer.apply().getBuffer()); } @Test public void alterTableAddColumn() { HanaColumnStoreDdl ddl = new HanaColumnStoreDdl(new HanaPlatform()); - DdlWrite write = new DdlWrite(); + DdlWrite writer = new DdlWrite(); Column column = new Column(); column.setName("my_column"); column.setComment("comment"); @@ -33,7 +33,7 @@ public class HanaDdlTest { column.setCheckConstraintName("check_constraint"); column.setHistoryExclude(Boolean.TRUE); column.setIdentity(Boolean.TRUE); - ddl.alterTableAddColumn(write.apply(), "my_table", column, false, "1"); - assertEquals("alter table my_table add ( my_column int default 1 not null);\nalter table my_table add constraint check_constraint CHECK(my_column > 0);\n", write.apply().getBuffer()); + ddl.alterTableAddColumn(writer.apply(), "my_table", column, false, "1"); + assertEquals("alter table my_table add ( my_column int default 1 not null);\nalter table my_table add constraint check_constraint CHECK(my_column > 0);\n", writer.apply().getBuffer()); } } diff --git a/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformDdl_AlterColumnTest.java b/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformDdl_AlterColumnTest.java index 193385e5f..11e016efe 100644 --- a/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformDdl_AlterColumnTest.java +++ b/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformDdl_AlterColumnTest.java @@ -251,9 +251,9 @@ public class PlatformDdl_AlterColumnTest { @Test public void oracle_alterTableAddColumn() { - DdlWrite write = new DdlWrite(); - oraDdl.alterTableAddColumn(write.apply(), "my_table", simpleColumn(), false, "1"); - assertThat(write.apply().getBuffer()).isEqualTo("alter table my_table add my_column int default 1 not null;\n"); + DdlWrite writer = new DdlWrite(); + oraDdl.alterTableAddColumn(writer.apply(), "my_table", simpleColumn(), false, "1"); + assertThat(writer.apply().getBuffer()).isEqualTo("alter table my_table add my_column int default 1 not null;\n"); } private Column simpleColumn() { From 70ec8a38915f2364cd0a028b6cd5f95f9010b296 Mon Sep 17 00:00:00 2001 From: Roland Praml Date: Wed, 23 Feb 2022 11:17:16 +0100 Subject: [PATCH 030/114] Removed unused code --- .../ddlgeneration/platform/BaseTableDdl.java | 18 ------------------ 1 file changed, 18 deletions(-) diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/BaseTableDdl.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/BaseTableDdl.java index 7fdaf7218..5effa54e5 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/BaseTableDdl.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/BaseTableDdl.java @@ -61,12 +61,6 @@ public class BaseTableDdl implements TableDdl { protected final String historyTableSuffix; - /** - * Used to check that indexes on foreign keys should be skipped as a unique index on the columns - * already exists. - */ - protected final IndexSet indexSet = new IndexSet(); - /** * Used when unique constraints specifically for OneToOne can't be created normally (MsSqlServer). */ @@ -74,13 +68,6 @@ public class BaseTableDdl implements TableDdl { protected final List externalCompoundUnique = new ArrayList<>(); - // counters used when constraint names are truncated due to maximum length - // and these counters are used to keep the constraint name unique - protected int countCheck; - protected int countUnique; - protected int countForeignKey; - protected int countIndex; - /** * Base tables that have associated history tables that need their triggers/functions regenerated as * columns have been added, removed, included or excluded. @@ -220,13 +207,8 @@ public class BaseTableDdl implements TableDdl { * Reset counters and index set for each table processed. */ protected void reset() { - indexSet.clear(); externalUnique.clear(); externalCompoundUnique.clear(); - countCheck = 0; - countUnique = 0; - countForeignKey = 0; - countIndex = 0; } /** From 1ca57891120b5bb7e608e4a1b28fd080c74287fd Mon Sep 17 00:00:00 2001 From: Roland Praml Date: Thu, 24 Feb 2022 08:03:26 +0100 Subject: [PATCH 031/114] Removed unused imports and add missing Override statements (no effective code change) --- .../io/ebean/config/dbplatform/db2/BaseDB2Platform.java | 1 - .../src/test/java/io/ebean/util/TestAnnotationUtil.java | 1 - .../src/main/java/io/ebeaninternal/api/SpiEbeanServer.java | 2 -- .../main/java/io/ebeaninternal/api/SpiQueryBindCapture.java | 1 - .../ebeaninternal/server/changelog/ChangeJsonBuilder.java | 1 - .../ebeaninternal/server/core/AbstractSqlQueryRequest.java | 2 -- .../io/ebeaninternal/server/core/ClassPathScanners.java | 1 - .../java/io/ebeaninternal/server/deploy/BeanProperty.java | 1 + .../ebeaninternal/server/deploy/parse/AnnotationBase.java | 6 ------ .../io/ebeaninternal/server/query/CQueryIteratorSimple.java | 1 - .../server/query/CQueryIteratorWithBuffer.java | 1 - .../io/ebeaninternal/server/query/SqlTreeNodeExtraJoin.java | 3 --- .../server/query/SqlTreeNodeFormulaWhereJoin.java | 3 --- .../server/transaction/DefaultProfileHandler.java | 1 - .../ebeaninternal/server/transaction/JdbcTransaction.java | 1 - .../main/java/io/ebeaninternal/server/type/TypeManager.java | 1 - .../java/io/ebean/test/config/AutoConfigureForTesting.java | 2 -- .../src/main/java/io/ebean/test/config/platform/Config.java | 1 - ebean-test/src/test/java/io/ebean/EbeanServer_refresh.java | 1 - .../java/io/ebeaninternal/server/type/TestTypeManager.java | 1 - .../TestOnCascadeDeleteChildrenWithCompositeKeys.java | 1 - .../test/java/org/tests/inheritance/bothsides/Target1.java | 1 - .../src/test/java/org/tests/model/basic/TWithPreInsert.java | 6 ++++++ .../java/org/tests/model/basic/TWithPreInsertChild.java | 6 ++++++ .../src/test/java/org/tests/text/json/TestJsonSimple.java | 1 - 25 files changed, 13 insertions(+), 34 deletions(-) diff --git a/ebean-api/src/main/java/io/ebean/config/dbplatform/db2/BaseDB2Platform.java b/ebean-api/src/main/java/io/ebean/config/dbplatform/db2/BaseDB2Platform.java index dce52f4ea..8b313d26d 100644 --- a/ebean-api/src/main/java/io/ebean/config/dbplatform/db2/BaseDB2Platform.java +++ b/ebean-api/src/main/java/io/ebean/config/dbplatform/db2/BaseDB2Platform.java @@ -1,7 +1,6 @@ package io.ebean.config.dbplatform.db2; import io.ebean.BackgroundExecutor; -import io.ebean.annotation.PersistBatch; import io.ebean.annotation.Platform; import io.ebean.config.dbplatform.DatabasePlatform; import io.ebean.config.dbplatform.DbPlatformType; diff --git a/ebean-api/src/test/java/io/ebean/util/TestAnnotationUtil.java b/ebean-api/src/test/java/io/ebean/util/TestAnnotationUtil.java index 7d7519c03..f75433c09 100644 --- a/ebean-api/src/test/java/io/ebean/util/TestAnnotationUtil.java +++ b/ebean-api/src/test/java/io/ebean/util/TestAnnotationUtil.java @@ -2,7 +2,6 @@ package io.ebean.util; import static org.assertj.core.api.Assertions.assertThat; -import java.io.File; import java.util.Set; import org.junit.jupiter.api.Test; diff --git a/ebean-core/src/main/java/io/ebeaninternal/api/SpiEbeanServer.java b/ebean-core/src/main/java/io/ebeaninternal/api/SpiEbeanServer.java index 53d0c4551..027956e1f 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/api/SpiEbeanServer.java +++ b/ebean-core/src/main/java/io/ebeaninternal/api/SpiEbeanServer.java @@ -3,8 +3,6 @@ package io.ebeaninternal.api; import io.ebean.*; import io.ebean.bean.BeanCollectionLoader; import io.ebean.bean.CallOrigin; -import io.ebean.config.DatabaseConfig; -import io.ebean.config.dbplatform.DatabasePlatform; import io.ebean.event.readaudit.ReadAuditLogger; import io.ebean.event.readaudit.ReadAuditPrepare; import io.ebean.meta.MetricVisitor; diff --git a/ebean-core/src/main/java/io/ebeaninternal/api/SpiQueryBindCapture.java b/ebean-core/src/main/java/io/ebeaninternal/api/SpiQueryBindCapture.java index 636b6689c..db5cbd9b6 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/api/SpiQueryBindCapture.java +++ b/ebean-core/src/main/java/io/ebeaninternal/api/SpiQueryBindCapture.java @@ -1,6 +1,5 @@ package io.ebeaninternal.api; -import io.ebean.meta.QueryPlanRequest; import io.ebeaninternal.server.type.bindcapture.BindCapture; /** diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/changelog/ChangeJsonBuilder.java b/ebean-core/src/main/java/io/ebeaninternal/server/changelog/ChangeJsonBuilder.java index f399b78ad..5d71023b8 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/changelog/ChangeJsonBuilder.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/changelog/ChangeJsonBuilder.java @@ -5,7 +5,6 @@ import com.fasterxml.jackson.core.JsonGenerator; import io.ebean.event.changelog.BeanChange; import io.ebean.event.changelog.ChangeSet; import io.ebean.event.changelog.ChangeType; -import io.ebean.text.json.JsonContext; import java.io.IOException; import java.io.Writer; diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/core/AbstractSqlQueryRequest.java b/ebean-core/src/main/java/io/ebeaninternal/server/core/AbstractSqlQueryRequest.java index f11cf9f8e..01812fe5f 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/core/AbstractSqlQueryRequest.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/core/AbstractSqlQueryRequest.java @@ -15,8 +15,6 @@ import java.sql.ResultSet; import java.sql.SQLException; import java.util.concurrent.locks.ReentrantLock; -import javax.persistence.PersistenceException; - /** * Wraps the objects involved in executing a SQL / Relational Query. */ diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/core/ClassPathScanners.java b/ebean-core/src/main/java/io/ebeaninternal/server/core/ClassPathScanners.java index ff41de9b4..8810465b2 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/core/ClassPathScanners.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/core/ClassPathScanners.java @@ -5,7 +5,6 @@ import io.avaje.classpath.scanner.ClassPathScannerFactory; import io.ebean.config.DatabaseConfig; import java.util.ArrayList; -import java.util.Iterator; import java.util.List; import java.util.ServiceLoader; diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanProperty.java b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanProperty.java index 27327f1b9..6dd11ffbe 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanProperty.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanProperty.java @@ -1167,6 +1167,7 @@ public class BeanProperty implements ElPropertyValue, Property, STreeProperty { /** * Returns true if this isLob() or the type will effectively map to a lob. */ + @Override public boolean isDbLob() { if (lob) { return true; diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/parse/AnnotationBase.java b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/parse/AnnotationBase.java index 4cf692468..b74035dc0 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/parse/AnnotationBase.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/parse/AnnotationBase.java @@ -1,14 +1,9 @@ package io.ebeaninternal.server.deploy.parse; -import io.ebean.annotation.Aggregation; -import io.ebean.annotation.Avg; import io.ebean.annotation.DbMigration; import io.ebean.annotation.Index; import io.ebean.annotation.Indices; -import io.ebean.annotation.Max; -import io.ebean.annotation.Min; import io.ebean.annotation.Platform; -import io.ebean.annotation.Sum; import io.ebean.config.NamingConvention; import io.ebean.config.dbplatform.DatabasePlatform; import io.ebean.util.AnnotationUtil; @@ -20,7 +15,6 @@ import javax.persistence.JoinColumns; import javax.persistence.NamedQueries; import javax.persistence.NamedQuery; import java.lang.annotation.Annotation; -import java.lang.reflect.Field; import java.util.Collections; import java.util.Set; diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryIteratorSimple.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryIteratorSimple.java index 6d183b936..1aa5fc7ef 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryIteratorSimple.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryIteratorSimple.java @@ -3,7 +3,6 @@ package io.ebeaninternal.server.query; import io.ebean.QueryIterator; import io.ebeaninternal.server.core.OrmQueryRequest; -import javax.persistence.PersistenceException; import java.sql.SQLException; /** diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryIteratorWithBuffer.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryIteratorWithBuffer.java index 3df436716..aae6b0c47 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryIteratorWithBuffer.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryIteratorWithBuffer.java @@ -3,7 +3,6 @@ package io.ebeaninternal.server.query; import io.ebean.QueryIterator; import io.ebeaninternal.server.core.OrmQueryRequest; -import javax.persistence.PersistenceException; import java.sql.SQLException; import java.util.ArrayList; import java.util.NoSuchElementException; diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTreeNodeExtraJoin.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTreeNodeExtraJoin.java index 42d2395b5..5547d1c92 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTreeNodeExtraJoin.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTreeNodeExtraJoin.java @@ -1,11 +1,8 @@ package io.ebeaninternal.server.query; -import io.ebean.bean.EntityBean; -import io.ebean.core.type.ScalarType; import io.ebean.util.SplitName; import io.ebeaninternal.api.SpiQuery; import io.ebeaninternal.server.deploy.BeanPropertyAssocOne; -import io.ebeaninternal.server.deploy.DbReadContext; import io.ebeaninternal.server.deploy.DbSqlContext; import io.ebeaninternal.server.deploy.TableJoin; diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTreeNodeFormulaWhereJoin.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTreeNodeFormulaWhereJoin.java index 502c28a6d..02f76b61c 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTreeNodeFormulaWhereJoin.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTreeNodeFormulaWhereJoin.java @@ -1,9 +1,6 @@ package io.ebeaninternal.server.query; -import io.ebean.bean.EntityBean; -import io.ebean.core.type.ScalarType; import io.ebeaninternal.api.SpiQuery; -import io.ebeaninternal.server.deploy.DbReadContext; import io.ebeaninternal.server.deploy.DbSqlContext; import java.util.List; diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/transaction/DefaultProfileHandler.java b/ebean-core/src/main/java/io/ebeaninternal/server/transaction/DefaultProfileHandler.java index 8ac394a8c..16c4aafad 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/transaction/DefaultProfileHandler.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/transaction/DefaultProfileHandler.java @@ -10,7 +10,6 @@ import io.ebeaninternal.api.SpiProfileHandler; import org.slf4j.Logger; import java.io.*; -import java.nio.charset.StandardCharsets; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.time.format.DateTimeFormatterBuilder; diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/transaction/JdbcTransaction.java b/ebean-core/src/main/java/io/ebeaninternal/server/transaction/JdbcTransaction.java index a48fc9e67..c85bd2c5d 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/transaction/JdbcTransaction.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/transaction/JdbcTransaction.java @@ -15,7 +15,6 @@ import io.ebeaninternal.server.persist.BatchedSqlException; import io.ebeaninternal.server.util.Str; import io.ebeanservice.docstore.api.DocStoreTransaction; import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import javax.persistence.PersistenceException; import javax.persistence.RollbackException; diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/TypeManager.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/TypeManager.java index 079782972..746dce154 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/type/TypeManager.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/TypeManager.java @@ -1,6 +1,5 @@ package io.ebeaninternal.server.type; -import io.ebean.annotation.DbArray; import io.ebean.core.type.ScalarType; import io.ebeaninternal.server.deploy.meta.DeployBeanProperty; diff --git a/ebean-test/src/main/java/io/ebean/test/config/AutoConfigureForTesting.java b/ebean-test/src/main/java/io/ebean/test/config/AutoConfigureForTesting.java index 5366597a1..afd83b4d0 100644 --- a/ebean-test/src/main/java/io/ebean/test/config/AutoConfigureForTesting.java +++ b/ebean-test/src/main/java/io/ebean/test/config/AutoConfigureForTesting.java @@ -10,8 +10,6 @@ import org.slf4j.LoggerFactory; import java.util.Properties; -import javax.sql.DataSource; - /** * Automatically configure ServerConfig for testing purposes. *

diff --git a/ebean-test/src/main/java/io/ebean/test/config/platform/Config.java b/ebean-test/src/main/java/io/ebean/test/config/platform/Config.java index 117c04a18..8bde15468 100644 --- a/ebean-test/src/main/java/io/ebean/test/config/platform/Config.java +++ b/ebean-test/src/main/java/io/ebean/test/config/platform/Config.java @@ -5,7 +5,6 @@ import io.ebean.datasource.DataSourceConfig; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.io.File; -import java.util.Locale; import java.util.Properties; /** diff --git a/ebean-test/src/test/java/io/ebean/EbeanServer_refresh.java b/ebean-test/src/test/java/io/ebean/EbeanServer_refresh.java index 1ff650b7d..2d1e957e7 100644 --- a/ebean-test/src/test/java/io/ebean/EbeanServer_refresh.java +++ b/ebean-test/src/test/java/io/ebean/EbeanServer_refresh.java @@ -9,7 +9,6 @@ import org.tests.model.basic.ResetBasicData; import java.io.File; import java.io.IOException; import java.nio.file.Files; -import java.nio.file.OpenOption; import java.nio.file.Path; import java.nio.file.StandardOpenOption; import java.util.*; diff --git a/ebean-test/src/test/java/io/ebeaninternal/server/type/TestTypeManager.java b/ebean-test/src/test/java/io/ebeaninternal/server/type/TestTypeManager.java index 383671363..94aa02e3d 100644 --- a/ebean-test/src/test/java/io/ebeaninternal/server/type/TestTypeManager.java +++ b/ebean-test/src/test/java/io/ebeaninternal/server/type/TestTypeManager.java @@ -15,7 +15,6 @@ import org.tests.model.ivo.converter.MoneyTypeConverter; import javax.persistence.EnumType; import java.sql.SQLException; import java.sql.Types; -import java.util.Calendar; import java.util.GregorianCalendar; import static org.assertj.core.api.Assertions.assertThat; diff --git a/ebean-test/src/test/java/org/tests/compositekeys/TestOnCascadeDeleteChildrenWithCompositeKeys.java b/ebean-test/src/test/java/org/tests/compositekeys/TestOnCascadeDeleteChildrenWithCompositeKeys.java index dbcaf4b0d..fe904adfb 100644 --- a/ebean-test/src/test/java/org/tests/compositekeys/TestOnCascadeDeleteChildrenWithCompositeKeys.java +++ b/ebean-test/src/test/java/org/tests/compositekeys/TestOnCascadeDeleteChildrenWithCompositeKeys.java @@ -5,7 +5,6 @@ import io.ebean.CountDistinctOrder; import io.ebean.DB; import io.ebean.Query; import io.ebean.annotation.Identity; -import io.ebean.annotation.Platform; import io.ebeaninternal.api.SpiEbeanServer; import io.ebeaninternal.server.deploy.BeanDescriptor; import io.ebeaninternal.server.deploy.BeanPropertyAssocMany; diff --git a/ebean-test/src/test/java/org/tests/inheritance/bothsides/Target1.java b/ebean-test/src/test/java/org/tests/inheritance/bothsides/Target1.java index f39c3ee61..0febee7cf 100644 --- a/ebean-test/src/test/java/org/tests/inheritance/bothsides/Target1.java +++ b/ebean-test/src/test/java/org/tests/inheritance/bothsides/Target1.java @@ -1,7 +1,6 @@ package org.tests.inheritance.bothsides; import javax.persistence.Entity; -import javax.persistence.Inheritance; @Entity public class Target1 extends TargetBase { diff --git a/ebean-test/src/test/java/org/tests/model/basic/TWithPreInsert.java b/ebean-test/src/test/java/org/tests/model/basic/TWithPreInsert.java index acfffce20..a19c89c7d 100644 --- a/ebean-test/src/test/java/org/tests/model/basic/TWithPreInsert.java +++ b/ebean-test/src/test/java/org/tests/model/basic/TWithPreInsert.java @@ -28,6 +28,7 @@ public class TWithPreInsert implements TWithPreInsertCommon { */ transient int requestCascadeState; + @Override public Integer getId() { return id; } @@ -36,18 +37,22 @@ public class TWithPreInsert implements TWithPreInsertCommon { this.id = id; } + @Override public String getName() { return name; } + @Override public void setName(String name) { this.name = name; } + @Override public String getTitle() { return title; } + @Override public void setTitle(String title) { this.title = title; } @@ -60,6 +65,7 @@ public class TWithPreInsert implements TWithPreInsertCommon { return requestCascadeState; } + @Override public void requestCascadeState(int requestCascadeState) { this.requestCascadeState = requestCascadeState; } diff --git a/ebean-test/src/test/java/org/tests/model/basic/TWithPreInsertChild.java b/ebean-test/src/test/java/org/tests/model/basic/TWithPreInsertChild.java index 39a1d8dff..5f679f9f6 100644 --- a/ebean-test/src/test/java/org/tests/model/basic/TWithPreInsertChild.java +++ b/ebean-test/src/test/java/org/tests/model/basic/TWithPreInsertChild.java @@ -24,6 +24,7 @@ public class TWithPreInsertChild implements TWithPreInsertCommon { this.name = name; } + @Override public Integer getId() { return id; } @@ -32,18 +33,22 @@ public class TWithPreInsertChild implements TWithPreInsertCommon { this.id = id; } + @Override public String getName() { return name; } + @Override public void setName(String name) { this.name = name; } + @Override public String getTitle() { return title; } + @Override public void setTitle(String title) { this.title = title; } @@ -52,6 +57,7 @@ public class TWithPreInsertChild implements TWithPreInsertCommon { return requestCascadeState; } + @Override public void requestCascadeState(int requestCascadeState) { this.requestCascadeState = requestCascadeState; } diff --git a/ebean-test/src/test/java/org/tests/text/json/TestJsonSimple.java b/ebean-test/src/test/java/org/tests/text/json/TestJsonSimple.java index c462a80cc..b95c889e7 100644 --- a/ebean-test/src/test/java/org/tests/text/json/TestJsonSimple.java +++ b/ebean-test/src/test/java/org/tests/text/json/TestJsonSimple.java @@ -9,7 +9,6 @@ import io.ebean.util.IOUtils; import org.junit.jupiter.api.Test; import java.io.*; -import java.nio.charset.StandardCharsets; import java.util.LinkedHashMap; import java.util.Map; From 95b1488aeda7fbed585c985593ada6efeba3a7fe Mon Sep 17 00:00:00 2001 From: Roland Praml Date: Fri, 25 Feb 2022 10:51:24 +0100 Subject: [PATCH 032/114] Extended DbMigrationTest to run on all platforms --- .../src/test/java/io/ebean/BaseTestCase.java | 8 + .../dbmigration/DbMigrationTest.java | 137 +++++++++++++++--- .../java/misc/migration/v1_1/EHistory.java | 16 ++ .../java/misc/migration/v1_1/EHistory2.java | 41 ++++++ 4 files changed, 184 insertions(+), 18 deletions(-) diff --git a/ebean-test/src/test/java/io/ebean/BaseTestCase.java b/ebean-test/src/test/java/io/ebean/BaseTestCase.java index c44ce2092..43ba79427 100644 --- a/ebean-test/src/test/java/io/ebean/BaseTestCase.java +++ b/ebean-test/src/test/java/io/ebean/BaseTestCase.java @@ -195,6 +195,14 @@ public abstract class BaseTestCase { return Platform.DB2 == platform(); } + public boolean isSqLite() { + return Platform.SQLITE == platform(); + } + + public boolean isClickHouse() { + return Platform.CLICKHOUSE == platform(); + } + public boolean platformDistinctOn() { return isPostgresCompatible(); } 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 eaccbab44..f7a20e0d8 100644 --- a/ebean-test/src/test/java/io/ebeaninternal/dbmigration/DbMigrationTest.java +++ b/ebean-test/src/test/java/io/ebeaninternal/dbmigration/DbMigrationTest.java @@ -1,11 +1,18 @@ package io.ebeaninternal.dbmigration; import io.ebean.BaseTestCase; +import io.ebean.Database; +import io.ebean.DatabaseFactory; import io.ebean.SqlRow; import io.ebean.SqlUpdate; +import io.ebean.Version; import io.ebean.annotation.IgnorePlatform; import io.ebean.annotation.Platform; +import io.ebean.config.DatabaseConfig; +import io.ebean.config.dbplatform.DbHistorySupport; import io.ebean.datasource.pool.ConnectionPool; +import misc.migration.v1_1.EHistory; +import misc.migration.v1_1.EHistory2; import org.junit.jupiter.api.Test; @@ -13,12 +20,20 @@ import java.io.File; import java.io.IOException; import java.net.URL; import java.sql.SQLException; +import java.sql.Timestamp; +import java.util.Arrays; 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}. + * + * It does also some basic checks, if the migration is applied correctly. + * + * Please note, that this test requires the scripts generated by DbMigrationGenerateTest. So you may have to execute this test + * first. + * * @author Roland Praml, FOCONIS AG * */ @@ -29,7 +44,7 @@ public class DbMigrationTest extends BaseTestCase { assert url != null : scriptName + " not found"; server().script().run(url); } - + @Test public void lastVersion() { File d = new File("src/test/resources/migrationtest/dbmigration/h2"); @@ -38,20 +53,6 @@ public class DbMigrationTest extends BaseTestCase { assertThat(LastMigration.nextVersion(d, null, true)).isEqualTo("1.4"); } - @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 - - // 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 - // Note: YUGABYTE complains on "alter table migtest_e_basic alter column status set not null;" @Test public void testRunMigration() throws IOException, SQLException { // Shutdown and reconnect - this prevents postgres from lock up @@ -87,13 +88,17 @@ public class DbMigrationTest extends BaseTestCase { ((ConnectionPool)server().dataSource()).offline(); ((ConnectionPool)server().dataSource()).online(); - if (isSqlServer() || isMariaDB() || isMySql()) { + if (isSqlServer() || isMariaDB() || isMySql() || isHana()) { runScript("I__create_procs.sql"); } runScript("1.0__initial.sql"); - if (isOracle() || isHana()) { + if (isClickHouse()) { + // ClickHouse does not support transactions, so we cannot do update statements + // Add column is also not implemented. So exit here + return; + } else if (isOracle() || isHana()) { SqlUpdate update = server().sqlUpdate("insert into migtest_e_basic (id, old_boolean, user_id) values (1, :false, 1)"); update.setParameter("false", false); assertThat(server().execute(update)).isEqualTo(1); @@ -110,6 +115,15 @@ public class DbMigrationTest extends BaseTestCase { } createHistoryEntities(); + if (isOracle()) { + // Oracle does not like to convert varchar to integer + // ORA-01439. "column to be modified must be empty to change datatype". + // If the current table is not empty, you may have to create a temp-table + // with correct data types or do it with DBMS_REDEFINITION - to get the test + // working, we clear all data in the table + server().sqlUpdate("delete from migtest_e_history").execute(); + server().sqlUpdate("delete from migtest_e_history4").execute(); + } // Run migration runScript("1.1.sql"); @@ -136,6 +150,11 @@ 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 + testVersioning(); + if (isSqLite()) { + // SqLite does not support drops on columns with foreign keys, so we end with the test here. + return; + } runScript("1.2__dropsFor_1.1.sql"); // Oracle caches the statement and does not detect schema change. It fails with @@ -145,16 +164,98 @@ public class DbMigrationTest extends BaseTestCase { row = result.get(0); assertThat(row.keySet()).doesNotContain("old_boolean", "old_boolean2"); + if (isYugabyte()) { + // there are some unsupported alter commands in 1.3 - so we exit here + return; + } runScript("1.3.sql"); runScript("1.4__dropsFor_1.3.sql"); - // now DB structure shoud be the same as v1_0 - perform a diffent query. + // now DB structure should 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"); } + // do some history tests with V1.1 models + private void testVersioning() { + if (isOracle()) { + System.err.println("FIXME: Oracle history support seems to be broken"); + return; + } + DbHistorySupport history = server().pluginApi().databasePlatform().getHistorySupport(); + if (history == null) { + return; + } + DatabaseConfig config = new DatabaseConfig(); + config.setName(server().name()); + config.loadFromProperties(server().pluginApi().config().getProperties()); + config.setDataSource(server().dataSource()); + config.setReadOnlyDataSource(server().dataSource()); + config.setDdlGenerate(false); + config.setDdlRun(false); + config.setRegister(false); + config.setPackages(Arrays.asList("misc.migration.v1_1")); + + Database tmpServer = DatabaseFactory.create(config); + try { + EHistory hist = new misc.migration.v1_1.EHistory(); + hist.setId(2); + hist.setTestString(42L); + tmpServer.save(hist); + + hist = tmpServer.find(EHistory.class).where().eq("testString", 42L).findOne(); + hist.setTestString(45L); + tmpServer.save(hist); + + List> versions = tmpServer.find(EHistory.class).setId(hist.getId()) + .findVersionsBetween(Timestamp.valueOf("1970-01-01 00:00:00"), Timestamp.valueOf("2100-01-01 00:00:00")); + assertThat(versions).hasSize(2); + assertThat(versions.get(0).getDiff().toString()).isEqualTo("{testString=45,42}"); + + EHistory2 hist2 = new misc.migration.v1_1.EHistory2(); + hist2.setId(2); + hist2.setTestString("foo1"); + hist2.setTestString2("bar1"); + hist2.setTestString3("baz1"); + tmpServer.save(hist2); + hist2.setTestString("foo2"); + hist2.setTestString2("bar2"); + tmpServer.save(hist2); + + List> versions2 = tmpServer.find(EHistory2.class).setId(hist.getId()) + .findVersionsBetween(Timestamp.valueOf("1970-01-01 00:00:00"), Timestamp.valueOf("2100-01-01 00:00:00")); + assertThat(versions2).hasSize(2); + + // not all platforms will support history exclusions + switch (server().platform()) { + case H2: // Trigger ignores HistoryExclude + + case SQLSERVER17: // these DBs are 'standard based' so they also do not support HistoryExclude + case MARIADB: + case HANA: + assertThat(versions2.get(0).getDiff().toString()) + .contains("testString=foo2,foo1") + .contains("testString2=bar2,bar1"); + break; + + case MYSQL: + case POSTGRES: + case YUGABYTE: + assertThat(versions2.get(0).getDiff().toString()) + .contains("testString=foo2,foo1") + .contains("testString2=bar2,null"); + break; + default: + throw new IllegalArgumentException(server().platform() + " not expected"); + } + + } finally { + tmpServer.shutdown(false, false); + } + } + /** * */ diff --git a/ebean-test/src/test/java/misc/migration/v1_1/EHistory.java b/ebean-test/src/test/java/misc/migration/v1_1/EHistory.java index d949d4838..f67b4c9f2 100644 --- a/ebean-test/src/test/java/misc/migration/v1_1/EHistory.java +++ b/ebean-test/src/test/java/misc/migration/v1_1/EHistory.java @@ -23,4 +23,20 @@ public class EHistory { @DbMigration(platforms = Platform.POSTGRES, preAlter = "alter table ${table} alter column ${column} TYPE bigint USING (${column}::integer)") Long testString; + + public Long getTestString() { + return testString; + } + + public void setTestString(Long testString) { + this.testString = testString; + } + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } } 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 750ad4e62..0c58ab84b 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 @@ -41,4 +41,45 @@ public class EHistory2 { @Size(max = 20) String newColumn; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getTestString() { + return testString; + } + + public void setTestString(String testString) { + this.testString = testString; + } + + public String getTestString2() { + return testString2; + } + + public void setTestString2(String testString2) { + this.testString2 = testString2; + } + + public String getTestString3() { + return testString3; + } + + public void setTestString3(String testString3) { + this.testString3 = testString3; + } + + public String getNewColumn() { + return newColumn; + } + + public void setNewColumn(String newColumn) { + this.newColumn = newColumn; + } + } From e0669e9a9f513bcf6184017d37c85899d3d8ebd1 Mon Sep 17 00:00:00 2001 From: Roland Praml Date: Fri, 25 Feb 2022 11:01:36 +0100 Subject: [PATCH 033/114] DDL generation fixes fpr oracle platform (fix drop default, do "drop if exists" with error handlers) --- .../ddlgeneration/platform/OracleDdl.java | 34 +++++++ .../migrationtest/dbmigration/oracle/1.1.sql | 57 +++++++++-- .../dbmigration/oracle/1.2__dropsFor_1.1.sql | 11 ++- .../migrationtest/dbmigration/oracle/1.3.sql | 94 ++++++++++++++++--- .../dbmigration/oracle/1.4__dropsFor_1.3.sql | 11 ++- .../dbmigration/oracle/idx_oracle.migrations | 8 +- .../dbmigration/oracle11/1.1.sql | 57 +++++++++-- .../oracle11/1.2__dropsFor_1.1.sql | 11 ++- .../dbmigration/oracle11/1.3.sql | 94 ++++++++++++++++--- .../oracle11/1.4__dropsFor_1.3.sql | 11 ++- .../oracle11/idx_oracle.migrations | 8 +- 11 files changed, 350 insertions(+), 46 deletions(-) diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/OracleDdl.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/OracleDdl.java index 740870b09..f94b559d2 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/OracleDdl.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/OracleDdl.java @@ -20,6 +20,8 @@ public class OracleDdl extends PlatformDdl { this.columnSetNotnull = "not null"; this.columnSetNull = "null"; this.columnSetDefault = "default"; + this.columnDropDefault = "default null"; // dropping default is not supported. See: + // https://stackoverflow.com/questions/8481532/how-do-i-remove-the-default-value-from-a-column-in-oracle this.identitySuffix = " generated by default as identity"; } @@ -33,6 +35,21 @@ public class OracleDdl extends PlatformDdl { } } + @Override + public String dropSequence(String sequenceName) { + return ignoreError(-2289, super.dropSequence(sequenceName)); + } + + @Override + public String alterTableDropConstraint(String tableName, String constraintName) { + return ignoreError(-2443, super.alterTableDropConstraint(tableName, constraintName)); + } + + @Override + public String alterTableDropUniqueConstraint(String tableName, String uniqueConstraintName) { + return ignoreError(-2443, super.alterTableDropUniqueConstraint(tableName, uniqueConstraintName)); + } + @Override protected void appendForeignKeyOnUpdate(StringBuilder buffer, ConstraintMode mode) { // do nothing, no on update clause for oracle @@ -57,4 +74,21 @@ public class OracleDdl extends PlatformDdl { return asIdentityStandardOptions(columnDefn, identity); } + /** + * generates anonymous pl/sql block that catches expected error so that we can + * effectively do a 'drop if exists' + */ + private String ignoreError(int errorNr, String statement) { + StringBuilder sb = new StringBuilder(); + sb.append("delimiter $$\n") + .append("declare\n") + .append(" expected_error exception;\n") + .append(" pragma exception_init(expected_error, ").append(errorNr).append(");\n") + .append("begin\n") + .append(" execute immediate '").append(statement).append("';\n") + .append("exception\n") + .append(" when expected_error then null;\n") + .append("end;\n$$"); + return sb.toString(); + } } 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 3a706374e..d8cd56c0a 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 @@ -36,13 +36,31 @@ 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; +delimiter $$ +declare + expected_error exception; + pragma exception_init(expected_error, -2443); +begin + execute immediate 'alter table migtest_e_basic drop constraint ck_migtest_e_basic_status'; +exception + when expected_error then null; +end; +$$; 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; +delimiter $$ +declare + expected_error exception; + pragma exception_init(expected_error, -2443); +begin + execute immediate 'alter table migtest_e_basic drop constraint ck_migtest_e_basic_status2'; +exception + when expected_error then null; +end; +$$; 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 default null; alter table migtest_e_basic modify status2 null; -- rename all collisions; @@ -60,13 +78,40 @@ 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; +delimiter $$ +declare + expected_error exception; + pragma exception_init(expected_error, -2443); +begin + execute immediate 'alter table migtest_e_basic drop constraint uq_migtest_e_basic_indextest2'; +exception + when expected_error then null; +end; +$$; +delimiter $$ +declare + expected_error exception; + pragma exception_init(expected_error, -2443); +begin + execute immediate 'alter table migtest_e_basic drop constraint uq_migtest_e_basic_indextest6'; +exception + when expected_error then null; +end; +$$; -- 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; +delimiter $$ +declare + expected_error exception; + pragma exception_init(expected_error, -2443); +begin + execute immediate 'alter table migtest_e_enum drop constraint ck_migtest_e_enum_test_status'; +exception + when expected_error then null; +end; +$$; 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'; 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 index ee9cc6325..25ba7f1ea 100644 --- 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 @@ -13,4 +13,13 @@ 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; +delimiter $$ +declare + expected_error exception; + pragma exception_init(expected_error, -2289); +begin + execute immediate 'drop sequence migtest_e_ref_seq'; +exception + when expected_error then null; +end; +$$; 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 3dc30312f..d8bc8ee66 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 @@ -14,18 +14,45 @@ 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; +delimiter $$ +declare + expected_error exception; + pragma exception_init(expected_error, -2443); +begin + execute immediate 'alter table migtest_e_basic drop constraint ck_migtest_e_basic_status'; +exception + when expected_error then null; +end; +$$; +alter table migtest_e_basic modify status default null; 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; +delimiter $$ +declare + expected_error exception; + pragma exception_init(expected_error, -2443); +begin + execute immediate 'alter table migtest_e_basic drop constraint ck_migtest_e_basic_status2'; +exception + when expected_error then null; +end; +$$; 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; +delimiter $$ +declare + expected_error exception; + pragma exception_init(expected_error, -2443); +begin + execute immediate 'alter table migtest_e_basic drop constraint uq_migtest_e_basic_description'; +exception + when expected_error then null; +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; @@ -36,23 +63,68 @@ 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; +delimiter $$ +declare + expected_error exception; + pragma exception_init(expected_error, -2443); +begin + execute immediate 'alter table migtest_e_basic drop constraint uq_mgtst__bsc_stts_ndxtst1'; +exception + when expected_error then null; +end; +$$; +delimiter $$ +declare + expected_error exception; + pragma exception_init(expected_error, -2443); +begin + execute immediate 'alter table migtest_e_basic drop constraint uq_migtest_e_basic_name'; +exception + when expected_error then null; +end; +$$; +delimiter $$ +declare + expected_error exception; + pragma exception_init(expected_error, -2443); +begin + execute immediate 'alter table migtest_e_basic drop constraint uq_migtest_e_basic_indextest4'; +exception + when expected_error then null; +end; +$$; +delimiter $$ +declare + expected_error exception; + pragma exception_init(expected_error, -2443); +begin + execute immediate 'alter table migtest_e_basic drop constraint uq_migtest_e_basic_indextest5'; +exception + when expected_error then null; +end; +$$; -- 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; +delimiter $$ +declare + expected_error exception; + pragma exception_init(expected_error, -2443); +begin + execute immediate 'alter table migtest_e_enum drop constraint ck_migtest_e_enum_test_status'; +exception + when expected_error then null; +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 modify test_string drop default; +alter table migtest_e_history2 modify test_string default null; 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 default null; alter table migtest_e_history6 modify test_number1 null; -- NOTE: table has @History - special migration may be necessary 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 34fe0bed4..42bff6949 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 @@ -29,7 +29,16 @@ 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; +delimiter $$ +declare + expected_error exception; + pragma exception_init(expected_error, -2289); +begin + execute immediate 'drop sequence migtest_e_user_seq'; +exception + when expected_error then null; +end; +$$; 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 86e8f1206..98d613833 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 @@ 1732845114, 1.0__initial.sql --411370666, 1.1.sql --1698942539, 1.2__dropsFor_1.1.sql -1355736100, 1.3.sql --629809805, 1.4__dropsFor_1.3.sql +-769875282, 1.1.sql +1140013965, 1.2__dropsFor_1.1.sql +-1374341416, 1.3.sql +1340223598, 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.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/oracle11/1.1.sql index b6de2b755..d337abc34 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/oracle11/1.1.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/oracle11/1.1.sql @@ -37,13 +37,31 @@ 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; +delimiter $$ +declare + expected_error exception; + pragma exception_init(expected_error, -2443); +begin + execute immediate 'alter table migtest_e_basic drop constraint ck_migtest_e_basic_status'; +exception + when expected_error then null; +end; +$$; 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; +delimiter $$ +declare + expected_error exception; + pragma exception_init(expected_error, -2443); +begin + execute immediate 'alter table migtest_e_basic drop constraint ck_migtest_e_basic_status2'; +exception + when expected_error then null; +end; +$$; 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 default null; alter table migtest_e_basic modify status2 null; -- rename all collisions; @@ -61,13 +79,40 @@ 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; +delimiter $$ +declare + expected_error exception; + pragma exception_init(expected_error, -2443); +begin + execute immediate 'alter table migtest_e_basic drop constraint uq_migtest_e_basic_indextest2'; +exception + when expected_error then null; +end; +$$; +delimiter $$ +declare + expected_error exception; + pragma exception_init(expected_error, -2443); +begin + execute immediate 'alter table migtest_e_basic drop constraint uq_migtest_e_basic_indextest6'; +exception + when expected_error then null; +end; +$$; -- 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; +delimiter $$ +declare + expected_error exception; + pragma exception_init(expected_error, -2443); +begin + execute immediate 'alter table migtest_e_enum drop constraint ck_migtest_e_enum_test_status'; +exception + when expected_error then null; +end; +$$; 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'; 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 index ee9cc6325..25ba7f1ea 100644 --- 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 @@ -13,4 +13,13 @@ 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; +delimiter $$ +declare + expected_error exception; + pragma exception_init(expected_error, -2289); +begin + execute immediate 'drop sequence migtest_e_ref_seq'; +exception + when expected_error then null; +end; +$$; 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 index a40a2bece..1e7511caf 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/oracle11/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/oracle11/1.3.sql @@ -15,18 +15,45 @@ 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; +delimiter $$ +declare + expected_error exception; + pragma exception_init(expected_error, -2443); +begin + execute immediate 'alter table migtest_e_basic drop constraint ck_migtest_e_basic_status'; +exception + when expected_error then null; +end; +$$; +alter table migtest_e_basic modify status default null; 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; +delimiter $$ +declare + expected_error exception; + pragma exception_init(expected_error, -2443); +begin + execute immediate 'alter table migtest_e_basic drop constraint ck_migtest_e_basic_status2'; +exception + when expected_error then null; +end; +$$; 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; +delimiter $$ +declare + expected_error exception; + pragma exception_init(expected_error, -2443); +begin + execute immediate 'alter table migtest_e_basic drop constraint uq_migtest_e_basic_description'; +exception + when expected_error then null; +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; @@ -37,23 +64,68 @@ 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; +delimiter $$ +declare + expected_error exception; + pragma exception_init(expected_error, -2443); +begin + execute immediate 'alter table migtest_e_basic drop constraint uq_mgtst__bsc_stts_ndxtst1'; +exception + when expected_error then null; +end; +$$; +delimiter $$ +declare + expected_error exception; + pragma exception_init(expected_error, -2443); +begin + execute immediate 'alter table migtest_e_basic drop constraint uq_migtest_e_basic_name'; +exception + when expected_error then null; +end; +$$; +delimiter $$ +declare + expected_error exception; + pragma exception_init(expected_error, -2443); +begin + execute immediate 'alter table migtest_e_basic drop constraint uq_migtest_e_basic_indextest4'; +exception + when expected_error then null; +end; +$$; +delimiter $$ +declare + expected_error exception; + pragma exception_init(expected_error, -2443); +begin + execute immediate 'alter table migtest_e_basic drop constraint uq_migtest_e_basic_indextest5'; +exception + when expected_error then null; +end; +$$; -- 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; +delimiter $$ +declare + expected_error exception; + pragma exception_init(expected_error, -2443); +begin + execute immediate 'alter table migtest_e_enum drop constraint ck_migtest_e_enum_test_status'; +exception + when expected_error then null; +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 modify test_string drop default; +alter table migtest_e_history2 modify test_string default null; 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 default null; alter table migtest_e_history6 modify test_number1 null; -- NOTE: table has @History - special migration may be necessary 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 index 34fe0bed4..42bff6949 100644 --- 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 @@ -29,7 +29,16 @@ 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; +delimiter $$ +declare + expected_error exception; + pragma exception_init(expected_error, -2289); +begin + execute immediate 'drop sequence migtest_e_user_seq'; +exception + when expected_error then null; +end; +$$; 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/idx_oracle.migrations b/ebean-test/src/test/resources/migrationtest/dbmigration/oracle11/idx_oracle.migrations index fc08855e1..7af94d4e5 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/oracle11/idx_oracle.migrations +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/oracle11/idx_oracle.migrations @@ -1,8 +1,8 @@ -756544611, 1.0__initial.sql -1927010726, 1.1.sql --1698942539, 1.2__dropsFor_1.1.sql -1883580424, 1.3.sql --629809805, 1.4__dropsFor_1.3.sql +-1128902470, 1.1.sql +1140013965, 1.2__dropsFor_1.1.sql +-1534972229, 1.3.sql +1340223598, 1.4__dropsFor_1.3.sql 1357801733, R__oracle_only_views.sql 561281075, R__order_views.sql From 3b32e4c0184be0af24f57c89c60788ade5e7bf53 Mon Sep 17 00:00:00 2001 From: Roland Praml Date: Fri, 25 Feb 2022 11:13:30 +0100 Subject: [PATCH 034/114] Oracle: Fix DB name to match with docker container --- ebean-test/src/test/resources/ebean.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ebean-test/src/test/resources/ebean.properties b/ebean-test/src/test/resources/ebean.properties index 544fd08d4..dd5d255ff 100644 --- a/ebean-test/src/test/resources/ebean.properties +++ b/ebean-test/src/test/resources/ebean.properties @@ -149,7 +149,7 @@ datasource.yugabyte.username=unit datasource.yugabyte.password=test datasource.yugabyte.url=jdbc:postgresql://localhost:6433/unit?sslmode=disable -datasource.oracle.username=test_ebean +datasource.oracle.username=test_eb datasource.oracle.password=test datasource.oracle.url=jdbc:oracle:thin:@localhost:1521:XE #datasource.oracle.driver=oracle.jdbc.driver.OracleDriver From f30c3869b6f3e5723e9fcf18f07bad26f98febbb Mon Sep 17 00:00:00 2001 From: Roland Praml Date: Fri, 25 Feb 2022 11:05:14 +0100 Subject: [PATCH 035/114] Modified SqLite platform to generate at least non failing migration scripts. Note: If you want to alter a table in SqLite, the best option is to recreate the table with the new layout --- .../ddlgeneration/platform/SQLiteDdl.java | 49 ++++++++++++- .../migrationtest/dbmigration/sqlite/1.1.sql | 62 +++++++++-------- .../migrationtest/dbmigration/sqlite/1.3.sql | 69 ++++++++++--------- .../dbmigration/sqlite/idx_sqlite.migrations | 4 +- 4 files changed, 119 insertions(+), 65 deletions(-) diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/SQLiteDdl.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/SQLiteDdl.java index 392051dac..8db601cfd 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/SQLiteDdl.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/SQLiteDdl.java @@ -5,7 +5,10 @@ import io.ebeaninternal.dbmigration.ddlgeneration.DdlBuffer; import io.ebeaninternal.dbmigration.ddlgeneration.DdlOptions; /** - * DB2 platform specific DDL. + * SQLite platform specific DDL. + * + * Note: SQLite has very limited alter capabilities. Altering a column is not + * supported and may need a recreation of the whole table */ public class SQLiteDdl extends PlatformDdl { @@ -27,7 +30,47 @@ public class SQLiteDdl extends PlatformDdl { @Override public String alterTableAddForeignKey(DdlOptions options, WriteForeignKey request) { - // not supported - return null; + return "-- not supported: " + super.alterTableAddForeignKey(options, request); } + + @Override + public String alterTableDropForeignKey(String tableName, String fkName) { + return "-- not supported: " + super.alterTableDropForeignKey(tableName, fkName); + } + + @Override + public String alterTableAddCheckConstraint(String tableName, String checkConstraintName, String checkConstraint) { + return "-- not supported: " + super.alterTableAddCheckConstraint(tableName, checkConstraintName, checkConstraint); + } + + @Override + public String alterTableDropConstraint(String tableName, String constraintName) { + return "-- not supported: " + super.alterTableDropConstraint(tableName, constraintName); + } + + @Override + public String alterTableAddUniqueConstraint(String tableName, String uqName, String[] columns, String[] nullableColumns) { + return "-- not supported: " + super.alterTableAddUniqueConstraint(tableName, uqName, columns, nullableColumns); + } + + @Override + public String alterTableDropUniqueConstraint(String tableName, String uniqueConstraintName) { + return "-- not supported: " + super.alterTableDropUniqueConstraint(tableName, uniqueConstraintName); + } + + @Override + public String alterColumnDefaultValue(String tableName, String columnName, String defaultValue) { + return "-- not supported: " + super.alterColumnDefaultValue(tableName, columnName, defaultValue); + } + + @Override + public String alterColumnType(String tableName, String columnName, String type) { + return "-- not supported: " + super.alterColumnType(tableName, columnName, type); + } + + @Override + public String alterColumnNotnull(String tableName, String columnName, boolean notnull) { + return "-- not supported: " + super.alterColumnNotnull(tableName, columnName, notnull); + } + } 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 888db9989..3709f7512 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 @@ -30,61 +30,67 @@ create table migtest_mtm_m_phone_numbers ( alter table migtest_ckey_detail add column one_key integer; alter table migtest_ckey_detail add column two_key varchar(127); +-- not supported: 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_set_null drop constraint if exists fk_migtest_fk_set_null_one_id; +-- not supported: alter table migtest_fk_cascade drop constraint if exists fk_migtest_fk_cascade_one_id; +-- not supported: 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; +-- not supported: 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; +-- not supported: 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; +-- not supported: alter table migtest_fk_set_null drop constraint if exists fk_migtest_fk_set_null_one_id; +-- not supported: 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; +-- not supported: alter table migtest_e_basic drop constraint if exists ck_migtest_e_basic_status; +-- not supported: alter table migtest_e_basic alter column status set default 'A'; +-- not supported: alter table migtest_e_basic alter column status set not null; +-- not supported: alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I','?')); +-- not supported: alter table migtest_e_basic drop constraint if exists ck_migtest_e_basic_status2; +-- not supported: alter table migtest_e_basic alter column status2 varchar(127); +-- not supported: alter table migtest_e_basic alter column status2 drop default; +-- not supported: 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); +-- not supported: 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; +-- not supported: 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; +-- not supported: 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)); +-- not supported: 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; +-- not supported: alter table migtest_e_basic drop constraint uq_migtest_e_basic_indextest2; +-- not supported: alter table migtest_e_basic drop constraint uq_migtest_e_basic_indextest6; +-- not supported: alter table migtest_e_basic add constraint uq_migtest_e_basic_status_indextest1 unique (status,indextest1); +-- not supported: alter table migtest_e_basic add constraint uq_migtest_e_basic_name unique (name); +-- not supported: alter table migtest_e_basic add constraint uq_migtest_e_basic_indextest4 unique (indextest4); +-- not supported: alter table migtest_e_basic add constraint uq_migtest_e_basic_indextest5 unique (indextest5); +-- not supported: alter table migtest_e_enum drop constraint if exists ck_migtest_e_enum_test_status; +-- not supported: 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; +-- not supported: alter table migtest_e_history2 alter column test_string set default 'unknown'; +-- not supported: 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; +-- not supported: 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; +-- not supported: alter table migtest_e_history6 alter column test_number1 set default 42; +-- not supported: alter table migtest_e_history6 alter column test_number1 set not null; +-- not supported: 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; @@ -94,5 +100,7 @@ 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); +-- not supported: 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; +-- not supported: 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/sqlite/1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlite/1.3.sql index fa47a26c1..6bcf4d262 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlite/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlite/1.3.sql @@ -7,57 +7,60 @@ create table migtest_e_ref ( 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')); +-- not supported: alter table migtest_ckey_detail drop constraint if exists fk_migtest_ckey_detail_parent; +-- not supported: alter table migtest_fk_cascade drop constraint if exists fk_migtest_fk_cascade_one_id; +-- not supported: 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; +-- not supported: alter table migtest_fk_none drop constraint if exists fk_migtest_fk_none_one_id; +-- not supported: alter table migtest_fk_none_via_join drop constraint if exists fk_migtest_fk_none_via_join_one_id; +-- not supported: alter table migtest_fk_set_null drop constraint if exists fk_migtest_fk_set_null_one_id; +-- not supported: 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; +-- not supported: alter table migtest_e_basic drop constraint if exists ck_migtest_e_basic_status; +-- not supported: alter table migtest_e_basic alter column status drop default; +-- not supported: alter table migtest_e_basic alter column status set null; +-- not supported: 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; +-- not supported: alter table migtest_e_basic drop constraint if exists ck_migtest_e_basic_status2; +-- not supported: alter table migtest_e_basic alter column status2 varchar(1); +-- not supported: alter table migtest_e_basic alter column status2 set default 'N'; +-- not supported: alter table migtest_e_basic alter column status2 set not null; +-- not supported: alter table migtest_e_basic add constraint ck_migtest_e_basic_status2 check ( status2 in ('N','A','I')); +-- not supported: 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; +-- not supported: alter table migtest_e_basic drop constraint if exists fk_migtest_e_basic_user_id; +-- not supported: alter table migtest_e_basic alter column user_id set default 23; +-- not supported: alter table migtest_e_basic alter column user_id set not null; alter table migtest_e_basic add column description_file blob; 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; +-- not supported: alter table migtest_e_basic drop constraint uq_migtest_e_basic_status_indextest1; +-- not supported: alter table migtest_e_basic drop constraint uq_migtest_e_basic_name; +-- not supported: alter table migtest_e_basic drop constraint uq_migtest_e_basic_indextest4; +-- not supported: alter table migtest_e_basic drop constraint uq_migtest_e_basic_indextest5; +-- not supported: alter table migtest_e_basic add constraint uq_migtest_e_basic_indextest2 unique (indextest2); +-- not supported: alter table migtest_e_basic add constraint uq_migtest_e_basic_indextest6 unique (indextest6); +-- not supported: alter table migtest_e_enum drop constraint if exists ck_migtest_e_enum_test_status; +-- not supported: alter table migtest_e_enum add constraint ck_migtest_e_enum_test_status check ( test_status in ('N','A','I')); +-- not supported: alter table migtest_e_history2 alter column test_string drop default; +-- not supported: 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; +-- not supported: alter table migtest_e_history4 alter column test_number integer; +-- not supported: alter table migtest_e_history6 alter column test_number1 drop default; +-- not supported: 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; +-- not supported: alter table migtest_e_history6 alter column test_number2 set default 7; +-- not supported: 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); +-- not supported: 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/sqlite/idx_sqlite.migrations b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlite/idx_sqlite.migrations index 9909a4923..a2235c8ce 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 @@ 181087169, 1.0__initial.sql --1974335860, 1.1.sql +136619950, 1.1.sql 628353409, 1.2__dropsFor_1.1.sql -1537582239, 1.3.sql +1056032295, 1.3.sql -1045594368, 1.4__dropsFor_1.3.sql 2034589659, R__order_views_sqlite.sql From bf99f9d08da32b119ab0301eac42ebc9c6417167 Mon Sep 17 00:00:00 2001 From: Roland Praml Date: Fri, 25 Feb 2022 11:19:25 +0100 Subject: [PATCH 036/114] Fix: HANA always requires stored procedures (similar to SqlServer), Fix: default value on intermediate alters --- .../config/dbplatform/hana/HanaPlatform.java | 4 +++ .../platform/AbstractHanaDdl.java | 12 ++++--- .../migrationtest/dbmigration/hana/1.3.sql | 2 +- .../dbmigration/hana/I__create_procs.sql | 33 +++++++++++++++++++ .../dbmigration/hana/idx_hana.migrations | 3 +- ebean-test/testconfig/ebean-hana.properties | 6 ++++ howto-test.md | 22 +++++++++++++ 7 files changed, 75 insertions(+), 7 deletions(-) create mode 100644 ebean-test/src/test/resources/migrationtest/dbmigration/hana/I__create_procs.sql create mode 100644 ebean-test/testconfig/ebean-hana.properties diff --git a/ebean-api/src/main/java/io/ebean/config/dbplatform/hana/HanaPlatform.java b/ebean-api/src/main/java/io/ebean/config/dbplatform/hana/HanaPlatform.java index 5fb91fcc8..f7f4c62e2 100644 --- a/ebean-api/src/main/java/io/ebean/config/dbplatform/hana/HanaPlatform.java +++ b/ebean-api/src/main/java/io/ebean/config/dbplatform/hana/HanaPlatform.java @@ -92,4 +92,8 @@ public class HanaPlatform extends DatabasePlatform { } } + @Override + public boolean isUseMigrationStoredProcedures() { + return true; + } } diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/AbstractHanaDdl.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/AbstractHanaDdl.java index dd9e57ff5..e2b796a9d 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/AbstractHanaDdl.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/AbstractHanaDdl.java @@ -57,19 +57,21 @@ public abstract class AbstractHanaDdl extends PlatformDdl { if (isNumberType(currentType)) { // numbers can always be converted to decimal buffer.append("alter table ").append(tableName).append(" ").append(alterColumn).append(" ").append(columnName) - .append(" decimal ").append(defaultValueClause).append(notnullClause).append(alterColumnSuffix) - .endOfStatement(); + .append(" decimal ").append(notnullClause).append(alterColumnSuffix) + .endOfStatement(); } else if (isStringType(currentType)) { // strings can always be converted to nclob + // Note: we do not add default clause here to avoid error[SAP DBTech JDBC: [336]: invalid default value: + // default value cannot be created on column of data type NCLOB buffer.append("alter table ").append(tableName).append(" ").append(alterColumn).append(" ").append(columnName) - .append(" nclob ").append(defaultValueClause).append(notnullClause).append(alterColumnSuffix) - .endOfStatement(); + .append(" nclob").append(notnullClause).append(alterColumnSuffix) + .endOfStatement(); } } buffer.append("alter table ").append(tableName).append(" ").append(alterColumn).append(" ").append(columnName) - .append(" ").append(type).append(defaultValueClause).append(notnullClause).append(alterColumnSuffix); + .append(" ").append(type).append(defaultValueClause).append(notnullClause).append(alterColumnSuffix); return buffer.getBuffer(); } 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 index 8090b369c..c5ec29186 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/hana/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/hana/1.3.sql @@ -32,7 +32,7 @@ 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 nclob 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 $$ diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/hana/I__create_procs.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/hana/I__create_procs.sql new file mode 100644 index 000000000..cec7863ac --- /dev/null +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/hana/I__create_procs.sql @@ -0,0 +1,33 @@ +-- Inital script to create stored procedures etc for the hana platform +delimiter $$ +-- +-- PROCEDURE: usp_ebean_drop_foreign_keys TABLE, COLUMN +-- deletes all constraints and foreign keys referring to TABLE.COLUMN +-- +CREATE OR REPLACE PROCEDURE usp_ebean_drop_foreign_keys(IN table_name NVARCHAR(256), IN column_name NVARCHAR(256)) +AS +BEGIN +DECLARE foreign_key_names TABLE(CONSTRAINT_NAME NVARCHAR(256), TABLE_NAME NVARCHAR(256)); +DECLARE i INT; + +foreign_key_names = SELECT CONSTRAINT_NAME, TABLE_NAME FROM SYS.REFERENTIAL_CONSTRAINTS WHERE SCHEMA_NAME=CURRENT_SCHEMA AND TABLE_NAME=UPPER(:table_name) AND COLUMN_NAME=UPPER(:column_name); + +FOR I IN 1 .. RECORD_COUNT(:foreign_key_names) DO +EXEC 'ALTER TABLE "' || ESCAPE_DOUBLE_QUOTES(:foreign_key_names.TABLE_NAME[i]) || '" DROP CONSTRAINT "' || ESCAPE_DOUBLE_QUOTES(:foreign_key_names.CONSTRAINT_NAME[i]) || '"'; +END FOR; + +END; +$$ + +delimiter $$ +-- +-- PROCEDURE: usp_ebean_drop_column TABLE, COLUMN +-- deletes the column and ensures that all indices and constraints are dropped first +-- +CREATE OR REPLACE PROCEDURE usp_ebean_drop_column(IN table_name NVARCHAR(256), IN column_name NVARCHAR(256)) +AS +BEGIN +CALL usp_ebean_drop_foreign_keys(table_name, column_name); +EXEC 'ALTER TABLE "' || UPPER(ESCAPE_DOUBLE_QUOTES(table_name)) || '" DROP ("' || UPPER(ESCAPE_DOUBLE_QUOTES(column_name)) || '")'; +END; +$$ 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 8f3461ab1..8f4cc673e 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,8 @@ +-745347271, I__create_procs.sql 513351138, 1.0__initial.sql -1152055114, 1.1.sql 1830946249, 1.2__dropsFor_1.1.sql -1073423108, 1.3.sql +744723875, 1.3.sql 201970227, 1.4__dropsFor_1.3.sql 1906063401, R__order_views_hana.sql diff --git a/ebean-test/testconfig/ebean-hana.properties b/ebean-test/testconfig/ebean-hana.properties new file mode 100644 index 000000000..f7235d90c --- /dev/null +++ b/ebean-test/testconfig/ebean-hana.properties @@ -0,0 +1,6 @@ +# Note: You need a running docker container. See howto-test.md for details +datasource.default=hana +datasource.hana.username=SYSTEM +datasource.hana.password=VeryVerySecret#1234 +datasource.hana.url=jdbc:sap://localhost:39041/ + diff --git a/howto-test.md b/howto-test.md index 2913b24a9..63d7f900e 100644 --- a/howto-test.md +++ b/howto-test.md @@ -43,3 +43,25 @@ Maven Use the `-Dprops.file` parameter to start the test cases for a certain platform. +SAP HANA +-------- +To set up a SAP HANA container, you may need a docker account to download the image + +1. Remove any existing HANA container with `docker rm hana` + +2. Create an empty directory (e.g. `/tmp/hana`) + +3. Create a `settings.json` file with content `{ "master_password": "VeryVerySecret#1234" }` in that directory + +4. Run the container, e.g with this command: + +``` +docker run -p 39013:39013 -p 39017:39017 -p 39041-39045:39041-39045 -p 1128-1129:1128-1129 -p 59013-59014:59013-59014 \ + -v /tmp/hana:/hana/mounts \ + --ulimit nofile=1048576:1048576 --sysctl kernel.shmmax=1073741824 + --sysctl net.ipv4.ip_local_port_range="40000 60999" --sysctl kernel.shmall=8388608 \ + --name "hana" store/saplabs/hanaexpress:2.00.045.00.20200121.1 \ + --passwords-url file:///hana/mounts/settings.json --agree-to-sap-license +``` + +You can optionally add the `-d` parameter. Note, if you re-run that command, the best advice is to clear the data directory and recreate the settings.json file From c82f3783f0e0a3fb7a88745a94da3e94b61d7f4d Mon Sep 17 00:00:00 2001 From: Roland Praml Date: Fri, 25 Feb 2022 11:52:59 +0100 Subject: [PATCH 037/114] Fixes for Cockroach platform --- .../dbplatform/cockroach/CockroachPlatform.java | 1 + .../ddlgeneration/platform/CockroachDdl.java | 6 ++++++ .../migrationtest/dbmigration/cockroach/1.1.sql | 9 ++------- .../dbmigration/cockroach/1.2__dropsFor_1.1.sql | 2 -- .../migrationtest/dbmigration/cockroach/1.3.sql | 13 +++++-------- .../dbmigration/cockroach/1.4__dropsFor_1.3.sql | 4 ---- .../dbmigration/cockroach/idx_cockroach.migrations | 8 ++++---- ebean-test/testconfig/ebean-cockroach.properties | 1 + 8 files changed, 19 insertions(+), 25 deletions(-) diff --git a/ebean-api/src/main/java/io/ebean/config/dbplatform/cockroach/CockroachPlatform.java b/ebean-api/src/main/java/io/ebean/config/dbplatform/cockroach/CockroachPlatform.java index 8c1388885..06e775dae 100644 --- a/ebean-api/src/main/java/io/ebean/config/dbplatform/cockroach/CockroachPlatform.java +++ b/ebean-api/src/main/java/io/ebean/config/dbplatform/cockroach/CockroachPlatform.java @@ -11,6 +11,7 @@ public class CockroachPlatform extends PostgresPlatform { public CockroachPlatform() { super(); this.platform = Platform.COCKROACH; + this.historySupport = null; // not yet implemented in DDL } /** diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/CockroachDdl.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/CockroachDdl.java index 7a14001fa..700000583 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/CockroachDdl.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/CockroachDdl.java @@ -36,6 +36,12 @@ public class CockroachDdl extends PlatformDdl { // do nothing } + @Override + public String alterTableDropUniqueConstraint(String tableName, String uniqueConstraintName) { + // workaround for: https://github.com/cockroachdb/cockroach/issues/42840 + return "drop index " + maxConstraintName(uniqueConstraintName) + " cascade"; + } + @Override public boolean isInlineComments() { return false; 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 8a0ddf08e..97a71855d 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 @@ -60,8 +60,8 @@ 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; +drop index uq_migtest_e_basic_indextest2 cascade; +drop index uq_migtest_e_basic_indextest6 cascade; 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); @@ -76,14 +76,9 @@ 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 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 index 43d6a8119..dc03cd36d 100644 --- 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 @@ -9,10 +9,8 @@ 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 index 167a362ff..6b369c321 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/cockroach/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/cockroach/1.3.sql @@ -25,7 +25,7 @@ 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; +drop index uq_migtest_e_basic_description cascade; 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; @@ -36,10 +36,10 @@ alter table migtest_e_basic add column old_boolean boolean default false not nul alter table migtest_e_basic add column old_boolean2 boolean; alter table migtest_e_basic add column eref_id integer; -alter table migtest_e_basic drop constraint uq_migtest_e_basic_status_indextest1; -alter table migtest_e_basic drop constraint uq_migtest_e_basic_name; -alter table migtest_e_basic drop constraint uq_migtest_e_basic_indextest4; -alter table migtest_e_basic drop constraint uq_migtest_e_basic_indextest5; +drop index uq_migtest_e_basic_status_indextest1 cascade; +drop index uq_migtest_e_basic_name cascade; +drop index uq_migtest_e_basic_indextest4 cascade; +drop index uq_migtest_e_basic_indextest5 cascade; 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; @@ -48,11 +48,8 @@ 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; 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 985c8764a..585b09841 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 @@ -17,16 +17,12 @@ 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; 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 6ccb81618..0ba59d68c 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 @@ -1611775717, 1.0__initial.sql --1108404951, 1.1.sql --835109514, 1.2__dropsFor_1.1.sql --30927192, 1.3.sql -676584941, 1.4__dropsFor_1.3.sql +-525928117, 1.1.sql +746142601, 1.2__dropsFor_1.1.sql +-1795996592, 1.3.sql +-574081288, 1.4__dropsFor_1.3.sql 561281075, R__order_views.sql diff --git a/ebean-test/testconfig/ebean-cockroach.properties b/ebean-test/testconfig/ebean-cockroach.properties index 2604e7dcf..604387b76 100644 --- a/ebean-test/testconfig/ebean-cockroach.properties +++ b/ebean-test/testconfig/ebean-cockroach.properties @@ -1,4 +1,5 @@ ebean.test.platform=cockroach ebean.test.dbName=unit datasource.default=cockroach +#ebean.test.cockroach.version=v21.2.6 From b88e4a35f8788d408bde124a43b2d192b8ab185c Mon Sep 17 00:00:00 2001 From: Roland Praml Date: Fri, 25 Feb 2022 12:02:21 +0100 Subject: [PATCH 038/114] Ddl fixes for clickhouse platform --- .../config/dbplatform/clickhouse/ClickHousePlatform.java | 2 ++ .../java/io/ebeaninternal/server/core/DScriptRunner.java | 5 ++++- .../migrationtest/dbmigration/clickhouse/1.0__initial.sql | 2 +- .../migrationtest/dbmigration/clickhouse/1.1.sql | 8 ++++---- .../migrationtest/dbmigration/clickhouse/1.3.sql | 2 +- .../dbmigration/clickhouse/idx_clickhouse.migrations | 6 +++--- 6 files changed, 15 insertions(+), 10 deletions(-) diff --git a/ebean-api/src/main/java/io/ebean/config/dbplatform/clickhouse/ClickHousePlatform.java b/ebean-api/src/main/java/io/ebean/config/dbplatform/clickhouse/ClickHousePlatform.java index f1e8eca21..bb1b141e6 100644 --- a/ebean-api/src/main/java/io/ebean/config/dbplatform/clickhouse/ClickHousePlatform.java +++ b/ebean-api/src/main/java/io/ebean/config/dbplatform/clickhouse/ClickHousePlatform.java @@ -18,6 +18,8 @@ public class ClickHousePlatform extends DatabasePlatform { //this.exceptionTranslator = this.nativeUuidType = true; this.dbDefaultValue.setNow("now()"); + this.dbDefaultValue.setFalse("0"); + this.dbDefaultValue.setTrue("1"); this.dbIdentity.setIdType(IdType.IDENTITY); this.dbIdentity.setSupportsGetGeneratedKeys(false); diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/core/DScriptRunner.java b/ebean-core/src/main/java/io/ebeaninternal/server/core/DScriptRunner.java index fdb24bd0d..725b1a66d 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/core/DScriptRunner.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/core/DScriptRunner.java @@ -106,7 +106,10 @@ final class DScriptRunner implements ScriptRunner { try (Connection connection = obtainConnection()) { DdlRunner runner = new DdlRunner(useAutoCommit, scriptName, platformName); runner.runAll(content, connection); - connection.commit(); + if (!connection.getAutoCommit()) { + // Clickhouse fails: Cannot commit when auto-commit is enabled + connection.commit(); + } runner.runNonTransactional(connection); } 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 index 1d41eabbe..b4b1ecfff 100644 --- 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 @@ -53,7 +53,7 @@ create table migtest_e_basic ( description String, description_file blob, some_date DateTime, - old_boolean UInt8 default false, + old_boolean UInt8 default 0, old_boolean2 UInt8, eref_id UInt32, indextest1 String, 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 b7d677a4d..2d11bcf06 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 @@ -41,10 +41,10 @@ alter table migtest_e_basic add constraint uq_migtest_e_basic_description unique 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; +alter table migtest_e_basic add column new_boolean_field UInt8 default 1; 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 new_boolean_field2 UInt8 default 1; 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; @@ -67,7 +67,7 @@ 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; +alter table migtest_e_history5 add column test_boolean UInt8 default 0; -- NOTE: table has @History - special migration may be necessary @@ -75,7 +75,7 @@ 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_e_softdelete add column deleted UInt8 default 0; alter table migtest_oto_child add column master_id UInt64; 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 index 88cea0bee..6d33f0f3e 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/clickhouse/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/clickhouse/1.3.sql @@ -22,7 +22,7 @@ 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 description_file blob; -alter table migtest_e_basic add column old_boolean UInt8 default false; +alter table migtest_e_basic add column old_boolean UInt8 default 0; alter table migtest_e_basic add column old_boolean2 UInt8; alter table migtest_e_basic add column eref_id UInt32; 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 83e4a9ccc..2aa4be3ad 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 @@ --697238714, 1.0__initial.sql -1864520180, 1.1.sql +1588846231, 1.0__initial.sql +1281122711, 1.1.sql 628353409, 1.2__dropsFor_1.1.sql --489730240, 1.3.sql +-1091184932, 1.3.sql -1045594368, 1.4__dropsFor_1.3.sql From 475fd38be5fbdfadeacdb31c7018774f42e78674 Mon Sep 17 00:00:00 2001 From: Roland Praml Date: Fri, 25 Feb 2022 15:44:54 +0100 Subject: [PATCH 039/114] FIX: PlatformDdl-tests --- .../platform/PlatformDdl_AlterColumnTest.java | 2 +- .../PlatformDdl_dropUniqueConstraintTest.java | 11 ++++++++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformDdl_AlterColumnTest.java b/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformDdl_AlterColumnTest.java index 11e016efe..e6cbea55c 100644 --- a/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformDdl_AlterColumnTest.java +++ b/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformDdl_AlterColumnTest.java @@ -232,7 +232,7 @@ public class PlatformDdl_AlterColumnTest { assertEquals("alter table mytab alter column acol drop default", sql); sql = oraDdl.alterColumnDefaultValue("mytab", "acol", "DROP DEFAULT"); - assertEquals("alter table mytab modify acol drop default", sql); + assertEquals("alter table mytab modify acol default null", sql); sql = mysqlDdl.alterColumnDefaultValue("mytab", "acol", "DROP DEFAULT"); assertEquals("alter table mytab alter acol drop default", sql); diff --git a/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformDdl_dropUniqueConstraintTest.java b/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformDdl_dropUniqueConstraintTest.java index 00a6e271d..7833898f7 100644 --- a/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformDdl_dropUniqueConstraintTest.java +++ b/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformDdl_dropUniqueConstraintTest.java @@ -29,7 +29,16 @@ public class PlatformDdl_dropUniqueConstraintTest { sql = pgDdl.alterTableDropUniqueConstraint("mytab", "uq_name"); assertEquals("alter table mytab drop constraint uq_name", sql); sql = oraDdl.alterTableDropUniqueConstraint("mytab", "uq_name"); - assertEquals("alter table mytab drop constraint uq_name", sql); + assertEquals("delimiter $$\n" + + "declare\n" + + " expected_error exception;\n" + + " pragma exception_init(expected_error, -2443);\n" + + "begin\n" + + " execute immediate 'alter table mytab drop constraint uq_name';\n" + + "exception\n" + + " when expected_error then null;\n" + + "end;\n" + + "$$", sql); sql = sqlServerDdl.alterTableDropUniqueConstraint("mytab", "uq_name"); assertEquals( "IF EXISTS (SELECT name FROM sys.indexes WHERE object_id = OBJECT_ID('mytab','U') AND name = 'uq_name') drop index uq_name ON mytab;\n" From f2a99c7b013487553fe400bab4891112099fac6e Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Tue, 1 Mar 2022 11:03:37 +1300 Subject: [PATCH 040/114] Update DbMigrationTest to include platform for some asserts --- .../dbmigration/DbMigrationTest.java | 28 ++++++------------- 1 file changed, 9 insertions(+), 19 deletions(-) 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 f7a20e0d8..72e842547 100644 --- a/ebean-test/src/test/java/io/ebeaninternal/dbmigration/DbMigrationTest.java +++ b/ebean-test/src/test/java/io/ebeaninternal/dbmigration/DbMigrationTest.java @@ -1,19 +1,11 @@ package io.ebeaninternal.dbmigration; -import io.ebean.BaseTestCase; -import io.ebean.Database; -import io.ebean.DatabaseFactory; -import io.ebean.SqlRow; -import io.ebean.SqlUpdate; -import io.ebean.Version; -import io.ebean.annotation.IgnorePlatform; -import io.ebean.annotation.Platform; +import io.ebean.*; import io.ebean.config.DatabaseConfig; import io.ebean.config.dbplatform.DbHistorySupport; import io.ebean.datasource.pool.ConnectionPool; import misc.migration.v1_1.EHistory; import misc.migration.v1_1.EHistory2; - import org.junit.jupiter.api.Test; import java.io.File; @@ -28,12 +20,12 @@ import static org.assertj.core.api.Assertions.assertThat; /** * This testcase tries to apply the migrationtests that are genearated by {@link DbMigrationGenerateTest}. - * + * * It does also some basic checks, if the migration is applied correctly. - * + * * Please note, that this test requires the scripts generated by DbMigrationGenerateTest. So you may have to execute this test * first. - * + * * @author Roland Praml, FOCONIS AG * */ @@ -87,7 +79,7 @@ public class DbMigrationTest extends BaseTestCase { "migtest_oto_master"); ((ConnectionPool)server().dataSource()).offline(); ((ConnectionPool)server().dataSource()).online(); - + if (isSqlServer() || isMariaDB() || isMySql() || isHana()) { runScript("I__create_procs.sql"); } @@ -212,7 +204,8 @@ public class DbMigrationTest extends BaseTestCase { List> versions = tmpServer.find(EHistory.class).setId(hist.getId()) .findVersionsBetween(Timestamp.valueOf("1970-01-01 00:00:00"), Timestamp.valueOf("2100-01-01 00:00:00")); assertThat(versions).hasSize(2); - assertThat(versions.get(0).getDiff().toString()).isEqualTo("{testString=45,42}"); + assertThat(versions.get(0).getDiff().toString()).as("using platform: %s", server().platform()) + .isEqualTo("{testString=45,42}"); EHistory2 hist2 = new misc.migration.v1_1.EHistory2(); hist2.setId(2); @@ -235,7 +228,7 @@ public class DbMigrationTest extends BaseTestCase { case SQLSERVER17: // these DBs are 'standard based' so they also do not support HistoryExclude case MARIADB: case HANA: - assertThat(versions2.get(0).getDiff().toString()) + assertThat(versions2.get(0).getDiff().toString()).as("using platform: %s", server().platform()) .contains("testString=foo2,foo1") .contains("testString2=bar2,bar1"); break; @@ -243,7 +236,7 @@ public class DbMigrationTest extends BaseTestCase { case MYSQL: case POSTGRES: case YUGABYTE: - assertThat(versions2.get(0).getDiff().toString()) + assertThat(versions2.get(0).getDiff().toString()).as("using platform: %s", server().platform()) .contains("testString=foo2,foo1") .contains("testString2=bar2,null"); break; @@ -256,9 +249,6 @@ public class DbMigrationTest extends BaseTestCase { } } - /** - * - */ private void createHistoryEntities() { SqlUpdate update = server().sqlUpdate("insert into migtest_e_history (id, test_string) values (1, '42')"); assertThat(server().execute(update)).isEqualTo(1); From faa921ac27860d47d21bf0fc6531f215152320fd Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Tue, 1 Mar 2022 11:22:40 +1300 Subject: [PATCH 041/114] Update DbMigrationTest to include platform for some asserts --- .../java/io/ebeaninternal/dbmigration/DbMigrationTest.java | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) 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 72e842547..46841897e 100644 --- a/ebean-test/src/test/java/io/ebeaninternal/dbmigration/DbMigrationTest.java +++ b/ebean-test/src/test/java/io/ebeaninternal/dbmigration/DbMigrationTest.java @@ -224,19 +224,17 @@ public class DbMigrationTest extends BaseTestCase { // not all platforms will support history exclusions switch (server().platform()) { case H2: // Trigger ignores HistoryExclude - case SQLSERVER17: // these DBs are 'standard based' so they also do not support HistoryExclude case MARIADB: case HANA: - assertThat(versions2.get(0).getDiff().toString()).as("using platform: %s", server().platform()) + assertThat(versions2.get(0).getDiff().toString()).as("using platform: %s, versions2:%s", server().platform(), versions2) .contains("testString=foo2,foo1") .contains("testString2=bar2,bar1"); break; - case MYSQL: case POSTGRES: case YUGABYTE: - assertThat(versions2.get(0).getDiff().toString()).as("using platform: %s", server().platform()) + assertThat(versions2.get(0).getDiff().toString()).as("using platform: %s, versions2:%s", server().platform(), versions2) .contains("testString=foo2,foo1") .contains("testString2=bar2,null"); break; From d0dd2d8203d0bf6e05643c93cc61cd79dcad5520 Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Tue, 1 Mar 2022 11:34:07 +1300 Subject: [PATCH 042/114] Add a more useful implementation for Version.toString() --- ebean-api/src/main/java/io/ebean/Version.java | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/ebean-api/src/main/java/io/ebean/Version.java b/ebean-api/src/main/java/io/ebean/Version.java index c00aa576d..77bb17144 100644 --- a/ebean-api/src/main/java/io/ebean/Version.java +++ b/ebean-api/src/main/java/io/ebean/Version.java @@ -98,4 +98,14 @@ public class Version { public Map getDiff() { return diff; } + + @Override + public String toString() { + return "Version{" + + "bean=" + bean + + ", start=" + start + + ", end=" + end + + ", diff=" + diff + + '}'; + } } From 708ec648937b247366376693b99ade1dc55525bf Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Tue, 1 Mar 2022 11:59:37 +1300 Subject: [PATCH 043/114] For Multi-jdk build failure - check if H2HistoryTrigger should bump 1ms if needed --- .../io/ebean/config/dbplatform/h2/H2HistoryTrigger.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/ebean-api/src/main/java/io/ebean/config/dbplatform/h2/H2HistoryTrigger.java b/ebean-api/src/main/java/io/ebean/config/dbplatform/h2/H2HistoryTrigger.java index 2867ca06c..fc7aeebdd 100644 --- a/ebean-api/src/main/java/io/ebean/config/dbplatform/h2/H2HistoryTrigger.java +++ b/ebean-api/src/main/java/io/ebean/config/dbplatform/h2/H2HistoryTrigger.java @@ -76,7 +76,13 @@ public class H2HistoryTrigger implements Trigger { public void fire(Connection connection, Object[] oldRow, Object[] newRow) throws SQLException { if (oldRow != null) { // a delete or update event - Timestamp now = new Timestamp(System.currentTimeMillis()); + long nowMillis = System.currentTimeMillis(); + Timestamp lastStart = (Timestamp) oldRow[effectStartPosition]; + if (lastStart != null && lastStart.getTime() >= nowMillis) { + nowMillis = lastStart.getTime() + 1; + } + + Timestamp now = new Timestamp(nowMillis); oldRow[effectEndPosition] = now; if (newRow != null) { // update event. Set the effective start timestamp to now. From 00940c2b31d551450305cf3f4a6f227024f38d51 Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Tue, 1 Mar 2022 12:10:28 +1300 Subject: [PATCH 044/114] For Multi-jdk build failure - tweak DbMigrationTest --- .../io/ebean/config/dbplatform/h2/H2HistoryTrigger.java | 8 +------- .../io/ebeaninternal/dbmigration/DbMigrationTest.java | 5 +++++ 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/ebean-api/src/main/java/io/ebean/config/dbplatform/h2/H2HistoryTrigger.java b/ebean-api/src/main/java/io/ebean/config/dbplatform/h2/H2HistoryTrigger.java index fc7aeebdd..2867ca06c 100644 --- a/ebean-api/src/main/java/io/ebean/config/dbplatform/h2/H2HistoryTrigger.java +++ b/ebean-api/src/main/java/io/ebean/config/dbplatform/h2/H2HistoryTrigger.java @@ -76,13 +76,7 @@ public class H2HistoryTrigger implements Trigger { public void fire(Connection connection, Object[] oldRow, Object[] newRow) throws SQLException { if (oldRow != null) { // a delete or update event - long nowMillis = System.currentTimeMillis(); - Timestamp lastStart = (Timestamp) oldRow[effectStartPosition]; - if (lastStart != null && lastStart.getTime() >= nowMillis) { - nowMillis = lastStart.getTime() + 1; - } - - Timestamp now = new Timestamp(nowMillis); + Timestamp now = new Timestamp(System.currentTimeMillis()); oldRow[effectEndPosition] = now; if (newRow != null) { // update event. Set the effective start timestamp to now. 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 46841897e..17736c17d 100644 --- a/ebean-test/src/test/java/io/ebeaninternal/dbmigration/DbMigrationTest.java +++ b/ebean-test/src/test/java/io/ebeaninternal/dbmigration/DbMigrationTest.java @@ -213,6 +213,11 @@ public class DbMigrationTest extends BaseTestCase { hist2.setTestString2("bar1"); hist2.setTestString3("baz1"); tmpServer.save(hist2); + try { + Thread.sleep(1); + } catch (InterruptedException e) { + throw new RuntimeException(e); + } hist2.setTestString("foo2"); hist2.setTestString2("bar2"); tmpServer.save(hist2); From ddbd816f6d65d969d02340f3b971f9c7b9b86e7e Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Tue, 1 Mar 2022 16:23:58 +1300 Subject: [PATCH 045/114] For Multi-jdk build failure - tweak DbMigrationTest, add hack comment --- .../test/java/io/ebeaninternal/dbmigration/DbMigrationTest.java | 1 + 1 file changed, 1 insertion(+) 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 17736c17d..6f015fc70 100644 --- a/ebean-test/src/test/java/io/ebeaninternal/dbmigration/DbMigrationTest.java +++ b/ebean-test/src/test/java/io/ebeaninternal/dbmigration/DbMigrationTest.java @@ -214,6 +214,7 @@ public class DbMigrationTest extends BaseTestCase { hist2.setTestString3("baz1"); tmpServer.save(hist2); try { + // bit of a hack for H2HistoryTrigger with JDK 11+ JVMs, probably need more than millis precision for H2 history Thread.sleep(1); } catch (InterruptedException e) { throw new RuntimeException(e); From 52aa1a2d910056af1f94d532b3b9bdada3c2c363 Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Tue, 1 Mar 2022 20:30:49 +1300 Subject: [PATCH 046/114] For Multi-jdk build failure - tweak DbMigrationTest, add another hack 1 milli sleep --- .../dbmigration/DbMigrationTest.java | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) 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 6f015fc70..9c2dc2d6e 100644 --- a/ebean-test/src/test/java/io/ebeaninternal/dbmigration/DbMigrationTest.java +++ b/ebean-test/src/test/java/io/ebeaninternal/dbmigration/DbMigrationTest.java @@ -196,7 +196,7 @@ public class DbMigrationTest extends BaseTestCase { hist.setId(2); hist.setTestString(42L); tmpServer.save(hist); - + sleepOneMilli(); hist = tmpServer.find(EHistory.class).where().eq("testString", 42L).findOne(); hist.setTestString(45L); tmpServer.save(hist); @@ -213,12 +213,7 @@ public class DbMigrationTest extends BaseTestCase { hist2.setTestString2("bar1"); hist2.setTestString3("baz1"); tmpServer.save(hist2); - try { - // bit of a hack for H2HistoryTrigger with JDK 11+ JVMs, probably need more than millis precision for H2 history - Thread.sleep(1); - } catch (InterruptedException e) { - throw new RuntimeException(e); - } + sleepOneMilli(); hist2.setTestString("foo2"); hist2.setTestString2("bar2"); tmpServer.save(hist2); @@ -253,6 +248,15 @@ public class DbMigrationTest extends BaseTestCase { } } + private void sleepOneMilli() { + try { + // bit of a hack for H2HistoryTrigger with JDK 11+ JVMs, probably need more than millis precision for H2 history + Thread.sleep(1); + } catch (InterruptedException e) { + throw new RuntimeException(e); + } + } + private void createHistoryEntities() { SqlUpdate update = server().sqlUpdate("insert into migtest_e_history (id, test_string) values (1, '42')"); assertThat(server().execute(update)).isEqualTo(1); From 6d27e30b8824c3397f6534c35f0a77d3b675344f Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Tue, 1 Mar 2022 20:52:39 +1300 Subject: [PATCH 047/114] [H2] Use LocalDateTime in H2HistoryTrigger with microsecond precision - fix DbMigrationTest --- .../ebean/config/dbplatform/h2/H2HistoryTrigger.java | 3 ++- .../ebeaninternal/dbmigration/DbMigrationTest.java | 12 ++++++------ 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/ebean-api/src/main/java/io/ebean/config/dbplatform/h2/H2HistoryTrigger.java b/ebean-api/src/main/java/io/ebean/config/dbplatform/h2/H2HistoryTrigger.java index 2867ca06c..d6c74df1f 100644 --- a/ebean-api/src/main/java/io/ebean/config/dbplatform/h2/H2HistoryTrigger.java +++ b/ebean-api/src/main/java/io/ebean/config/dbplatform/h2/H2HistoryTrigger.java @@ -5,6 +5,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.sql.*; +import java.time.LocalDateTime; import java.util.Arrays; /** @@ -76,7 +77,7 @@ public class H2HistoryTrigger implements Trigger { public void fire(Connection connection, Object[] oldRow, Object[] newRow) throws SQLException { if (oldRow != null) { // a delete or update event - Timestamp now = new Timestamp(System.currentTimeMillis()); + LocalDateTime now = LocalDateTime.now(); oldRow[effectEndPosition] = now; if (newRow != null) { // update event. Set the effective start timestamp to now. 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 9c2dc2d6e..7d7ea9c4c 100644 --- a/ebean-test/src/test/java/io/ebeaninternal/dbmigration/DbMigrationTest.java +++ b/ebean-test/src/test/java/io/ebeaninternal/dbmigration/DbMigrationTest.java @@ -249,12 +249,12 @@ public class DbMigrationTest extends BaseTestCase { } private void sleepOneMilli() { - try { - // bit of a hack for H2HistoryTrigger with JDK 11+ JVMs, probably need more than millis precision for H2 history - Thread.sleep(1); - } catch (InterruptedException e) { - throw new RuntimeException(e); - } +// try { +// // bit of a hack for H2HistoryTrigger with JDK 11+ JVMs, probably need more than millis precision for H2 history +// Thread.sleep(1); +// } catch (InterruptedException e) { +// throw new RuntimeException(e); +// } } private void createHistoryEntities() { From ed19a96801666268df59abf2efa95224ac033390 Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Tue, 1 Mar 2022 21:01:48 +1300 Subject: [PATCH 048/114] Tidy DbMigrationTest after fix for #2576 --- .../dbmigration/DbMigrationTest.java | 18 ++++-------------- 1 file changed, 4 insertions(+), 14 deletions(-) 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 7d7ea9c4c..a41bf1d28 100644 --- a/ebean-test/src/test/java/io/ebeaninternal/dbmigration/DbMigrationTest.java +++ b/ebean-test/src/test/java/io/ebeaninternal/dbmigration/DbMigrationTest.java @@ -13,7 +13,7 @@ import java.io.IOException; import java.net.URL; import java.sql.SQLException; import java.sql.Timestamp; -import java.util.Arrays; +import java.util.Collections; import java.util.List; import static org.assertj.core.api.Assertions.assertThat; @@ -31,7 +31,7 @@ import static org.assertj.core.api.Assertions.assertThat; */ public class DbMigrationTest extends BaseTestCase { - private void runScript(String scriptName) throws IOException { + private void runScript(String scriptName) { URL url = getClass().getResource("/migrationtest/dbmigration/" + server().platform().name().toLowerCase() + "/" + scriptName); assert url != null : scriptName + " not found"; server().script().run(url); @@ -188,7 +188,7 @@ public class DbMigrationTest extends BaseTestCase { config.setDdlGenerate(false); config.setDdlRun(false); config.setRegister(false); - config.setPackages(Arrays.asList("misc.migration.v1_1")); + config.setPackages(Collections.singletonList("misc.migration.v1_1")); Database tmpServer = DatabaseFactory.create(config); try { @@ -196,8 +196,8 @@ public class DbMigrationTest extends BaseTestCase { hist.setId(2); hist.setTestString(42L); tmpServer.save(hist); - sleepOneMilli(); hist = tmpServer.find(EHistory.class).where().eq("testString", 42L).findOne(); + assert hist != null; hist.setTestString(45L); tmpServer.save(hist); @@ -213,7 +213,6 @@ public class DbMigrationTest extends BaseTestCase { hist2.setTestString2("bar1"); hist2.setTestString3("baz1"); tmpServer.save(hist2); - sleepOneMilli(); hist2.setTestString("foo2"); hist2.setTestString2("bar2"); tmpServer.save(hist2); @@ -248,15 +247,6 @@ public class DbMigrationTest extends BaseTestCase { } } - private void sleepOneMilli() { -// try { -// // bit of a hack for H2HistoryTrigger with JDK 11+ JVMs, probably need more than millis precision for H2 history -// Thread.sleep(1); -// } catch (InterruptedException e) { -// throw new RuntimeException(e); -// } - } - private void createHistoryEntities() { SqlUpdate update = server().sqlUpdate("insert into migtest_e_history (id, test_string) values (1, '42')"); assertThat(server().execute(update)).isEqualTo(1); From e8df81d78a1e7ca6bbd2586ef8c39149e2266d48 Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Tue, 1 Mar 2022 21:29:17 +1300 Subject: [PATCH 049/114] DbMigrationTest ignore Yugabyte at this stage --- .../io/ebeaninternal/dbmigration/DbMigrationTest.java | 8 ++++++++ 1 file changed, 8 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 a41bf1d28..7131e0a90 100644 --- a/ebean-test/src/test/java/io/ebeaninternal/dbmigration/DbMigrationTest.java +++ b/ebean-test/src/test/java/io/ebeaninternal/dbmigration/DbMigrationTest.java @@ -1,6 +1,8 @@ package io.ebeaninternal.dbmigration; import io.ebean.*; +import io.ebean.annotation.IgnorePlatform; +import io.ebean.annotation.Platform; import io.ebean.config.DatabaseConfig; import io.ebean.config.dbplatform.DbHistorySupport; import io.ebean.datasource.pool.ConnectionPool; @@ -45,6 +47,12 @@ public class DbMigrationTest extends BaseTestCase { assertThat(LastMigration.nextVersion(d, null, true)).isEqualTo("1.4"); } + @IgnorePlatform({ + // 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, + }) @Test public void testRunMigration() throws IOException, SQLException { // Shutdown and reconnect - this prevents postgres from lock up From ffad9abeefa94bede0d5a8641cc45426462044cb Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Tue, 1 Mar 2022 22:32:09 +1300 Subject: [PATCH 050/114] #2577 - Refactor internals remove no longer needed DdlAutoCommit platform option --- .../java/io/ebean/config/dbplatform/DatabasePlatform.java | 7 ------- .../config/dbplatform/cockroach/CockroachPlatform.java | 8 -------- .../java/io/ebeaninternal/dbmigration/DdlGenerator.java | 7 ++----- 3 files changed, 2 insertions(+), 20 deletions(-) diff --git a/ebean-api/src/main/java/io/ebean/config/dbplatform/DatabasePlatform.java b/ebean-api/src/main/java/io/ebean/config/dbplatform/DatabasePlatform.java index 3950411aa..276151075 100644 --- a/ebean-api/src/main/java/io/ebean/config/dbplatform/DatabasePlatform.java +++ b/ebean-api/src/main/java/io/ebean/config/dbplatform/DatabasePlatform.java @@ -606,13 +606,6 @@ public class DatabasePlatform { this.useMigrationStoredProcedures = useMigrationStoredProcedures; } - /** - * Normally not needed - overridden in CockroachPlatform. - */ - public boolean isDdlAutoCommit() { - return false; - } - /** * Return the DB identity/sequence features for this platform. * diff --git a/ebean-api/src/main/java/io/ebean/config/dbplatform/cockroach/CockroachPlatform.java b/ebean-api/src/main/java/io/ebean/config/dbplatform/cockroach/CockroachPlatform.java index 06e775dae..e388f87f6 100644 --- a/ebean-api/src/main/java/io/ebean/config/dbplatform/cockroach/CockroachPlatform.java +++ b/ebean-api/src/main/java/io/ebean/config/dbplatform/cockroach/CockroachPlatform.java @@ -14,12 +14,4 @@ public class CockroachPlatform extends PostgresPlatform { this.historySupport = null; // not yet implemented in DDL } - /** - * Needs a commit after create index such that alter table add foreign key ... succeeds. - */ - @Override - public boolean isDdlAutoCommit() { - return false; - } - } diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/DdlGenerator.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/DdlGenerator.java index 9e6d7ea28..7a19240e8 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/DdlGenerator.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/DdlGenerator.java @@ -44,7 +44,6 @@ public class DdlGenerator implements SpiDdlGenerator { private final boolean extraDdl; private final boolean createOnly; private final boolean jaxbPresent; - private final boolean ddlAutoCommit; private final String dbSchema; private final ScriptTransform scriptTransform; private final Platform platform; @@ -70,11 +69,9 @@ public class DdlGenerator implements SpiDdlGenerator { if (!config.getTenantMode().isDdlEnabled() && config.isDdlRun()) { log.warn("DDL can't be run on startup with TenantMode " + config.getTenantMode()); this.runDdl = false; - this.ddlAutoCommit = false; this.useMigrationStoredProcedures = false; } else { this.runDdl = config.isDdlRun(); - this.ddlAutoCommit = databasePlatform.isDdlAutoCommit(); this.useMigrationStoredProcedures = config.getDatabasePlatform().isUseMigrationStoredProcedures(); } this.scriptTransform = createScriptTransform(config); @@ -166,11 +163,11 @@ public class DdlGenerator implements SpiDdlGenerator { DdlRunner runner = createDdlRunner(expectErrors, scriptName); try { - if (expectErrors || ddlAutoCommit) { + if (expectErrors) { connection.setAutoCommit(true); } runner.runAll(scriptTransform.transform(content), connection); - if (expectErrors || ddlAutoCommit) { + if (expectErrors) { connection.setAutoCommit(false); } connection.commit(); From f571da5154e55751ca427f91e0e2f81f29e8ec66 Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Tue, 1 Mar 2022 22:35:40 +1300 Subject: [PATCH 051/114] Bump to ebean-ddl-runner 1.3 --- ebean-core/pom.xml | 2 +- ebean-ddl-generator/pom.xml | 2 +- pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/ebean-core/pom.xml b/ebean-core/pom.xml index 3ec7ee806..d096ad3d9 100644 --- a/ebean-core/pom.xml +++ b/ebean-core/pom.xml @@ -23,7 +23,7 @@ io.ebean ebean-ddl-runner - 1.2 + 1.3 diff --git a/ebean-ddl-generator/pom.xml b/ebean-ddl-generator/pom.xml index 2ea053c80..522b75970 100644 --- a/ebean-ddl-generator/pom.xml +++ b/ebean-ddl-generator/pom.xml @@ -16,7 +16,7 @@ io.ebean ebean-ddl-runner - 1.2 + 1.3 diff --git a/pom.xml b/pom.xml index 7035df30e..00aae86fa 100644 --- a/pom.xml +++ b/pom.xml @@ -41,7 +41,7 @@ false 2.12.1 2.1.210 - 1.2 + 1.3 1.1 12.15.0 4.2 From 2a96a59deb7d16f9a9a04f0d28af746c999c6fbd Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Tue, 1 Mar 2022 22:46:55 +1300 Subject: [PATCH 052/114] [maven-release-plugin] prepare release ebean-parent-12.15.1 --- ebean-api/pom.xml | 2 +- ebean-autotune/pom.xml | 6 +++--- ebean-bom/pom.xml | 30 +++++++++++++++--------------- ebean-core-type/pom.xml | 4 ++-- ebean-core/pom.xml | 10 +++++----- ebean-ddl-generator/pom.xml | 6 +++--- ebean-externalmapping-api/pom.xml | 2 +- ebean-externalmapping-xml/pom.xml | 10 +++++----- ebean-postgis/pom.xml | 6 +++--- ebean-querybean/pom.xml | 10 +++++----- ebean-redis/pom.xml | 12 ++++++------ ebean-test/pom.xml | 6 +++--- ebean/pom.xml | 8 ++++---- kotlin-querybean-generator/pom.xml | 8 ++++---- pom.xml | 4 ++-- querybean-generator/pom.xml | 2 +- 16 files changed, 63 insertions(+), 63 deletions(-) diff --git a/ebean-api/pom.xml b/ebean-api/pom.xml index fc69196ed..fa4c6b5ed 100644 --- a/ebean-api/pom.xml +++ b/ebean-api/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 12.15.1-SNAPSHOT + 12.15.1 ebean api diff --git a/ebean-autotune/pom.xml b/ebean-autotune/pom.xml index 295f98f77..a7803ee86 100644 --- a/ebean-autotune/pom.xml +++ b/ebean-autotune/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 12.15.1-SNAPSHOT + 12.15.1 @@ -14,7 +14,7 @@ scm:git:git@github.com:ebean-orm/ebean.git - HEAD + ebean-parent-12.15.1 ebean autotune @@ -26,7 +26,7 @@ io.ebean ebean-core - 12.15.1-SNAPSHOT + 12.15.1 provided diff --git a/ebean-bom/pom.xml b/ebean-bom/pom.xml index 7eaf79de1..fa4a2f8d8 100644 --- a/ebean-bom/pom.xml +++ b/ebean-bom/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 12.15.1-SNAPSHOT + 12.15.1 ebean bom @@ -71,88 +71,88 @@ io.ebean ebean - 12.15.1-SNAPSHOT + 12.15.1 io.ebean ebean-api - 12.15.1-SNAPSHOT + 12.15.1 io.ebean ebean-core - 12.15.1-SNAPSHOT + 12.15.1 io.ebean ebean-core-type - 12.15.1-SNAPSHOT + 12.15.1 io.ebean ebean-ddl-generator - 12.15.1-SNAPSHOT + 12.15.1 io.ebean ebean-externalmapping-api - 12.15.1-SNAPSHOT + 12.15.1 io.ebean ebean-externalmapping-xml - 12.15.1-SNAPSHOT + 12.15.1 io.ebean ebean-autotune - 12.15.1-SNAPSHOT + 12.15.1 io.ebean ebean-querybean - 12.15.1-SNAPSHOT + 12.15.1 io.ebean querybean-generator - 12.15.1-SNAPSHOT + 12.15.1 provided io.ebean kotlin-querybean-generator - 12.15.1-SNAPSHOT + 12.15.1 provided io.ebean ebean-test - 12.15.1-SNAPSHOT + 12.15.1 test io.ebean ebean-postgis - 12.15.1-SNAPSHOT + 12.15.1 io.ebean ebean-redis - 12.15.1-SNAPSHOT + 12.15.1 diff --git a/ebean-core-type/pom.xml b/ebean-core-type/pom.xml index 48cc579d4..cbf1ba7d4 100644 --- a/ebean-core-type/pom.xml +++ b/ebean-core-type/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 12.15.1-SNAPSHOT + 12.15.1 ebean-core-type @@ -16,7 +16,7 @@ io.ebean ebean-api - 12.15.1-SNAPSHOT + 12.15.1 diff --git a/ebean-core/pom.xml b/ebean-core/pom.xml index 3ec7ee806..925571cc6 100644 --- a/ebean-core/pom.xml +++ b/ebean-core/pom.xml @@ -3,7 +3,7 @@ ebean-parent io.ebean - 12.15.1-SNAPSHOT + 12.15.1 ebean-core @@ -15,7 +15,7 @@ scm:git:git@github.com:ebean-orm/ebean.git - HEAD + ebean-parent-12.15.1 @@ -41,19 +41,19 @@ io.ebean ebean-api - 12.15.1-SNAPSHOT + 12.15.1 io.ebean ebean-core-type - 12.15.1-SNAPSHOT + 12.15.1 io.ebean ebean-externalmapping-api - 12.15.1-SNAPSHOT + 12.15.1 diff --git a/ebean-ddl-generator/pom.xml b/ebean-ddl-generator/pom.xml index 2ea053c80..92b6915af 100644 --- a/ebean-ddl-generator/pom.xml +++ b/ebean-ddl-generator/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 12.15.1-SNAPSHOT + 12.15.1 ebean ddl generation @@ -28,14 +28,14 @@ io.ebean ebean-core-type - 12.15.1-SNAPSHOT + 12.15.1 provided io.ebean ebean-core - 12.15.1-SNAPSHOT + 12.15.1 provided diff --git a/ebean-externalmapping-api/pom.xml b/ebean-externalmapping-api/pom.xml index 6fb013796..fffeb99fb 100644 --- a/ebean-externalmapping-api/pom.xml +++ b/ebean-externalmapping-api/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 12.15.1-SNAPSHOT + 12.15.1 ebean external mapping api diff --git a/ebean-externalmapping-xml/pom.xml b/ebean-externalmapping-xml/pom.xml index b85927b29..999bd7184 100644 --- a/ebean-externalmapping-xml/pom.xml +++ b/ebean-externalmapping-xml/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 12.15.1-SNAPSHOT + 12.15.1 @@ -14,7 +14,7 @@ scm:git:git@github.com:ebean-orm/ebean.git - HEAD + ebean-parent-12.15.1 ebean external mapping xml @@ -33,7 +33,7 @@ io.ebean ebean-externalmapping-api - 12.15.1-SNAPSHOT + 12.15.1 @@ -59,14 +59,14 @@ io.ebean ebean-core - 12.15.1-SNAPSHOT + 12.15.1 test io.ebean ebean-ddl-generator - 12.15.1-SNAPSHOT + 12.15.1 test diff --git a/ebean-postgis/pom.xml b/ebean-postgis/pom.xml index 91ba661f9..4c6766f91 100644 --- a/ebean-postgis/pom.xml +++ b/ebean-postgis/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 12.15.1-SNAPSHOT + 12.15.1 ebean postgis @@ -23,7 +23,7 @@ io.ebean ebean-core - 12.15.1-SNAPSHOT + 12.15.1 provided @@ -74,7 +74,7 @@ io.ebean ebean-test - 12.15.1-SNAPSHOT + 12.15.1 test diff --git a/ebean-querybean/pom.xml b/ebean-querybean/pom.xml index 4245c8d52..f08739ff7 100644 --- a/ebean-querybean/pom.xml +++ b/ebean-querybean/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 12.15.1-SNAPSHOT + 12.15.1 ebean querybean @@ -17,7 +17,7 @@ io.ebean ebean-core - 12.15.1-SNAPSHOT + 12.15.1 provided @@ -56,21 +56,21 @@ io.ebean ebean-ddl-generator - 12.15.1-SNAPSHOT + 12.15.1 test io.ebean querybean-generator - 12.15.1-SNAPSHOT + 12.15.1 test io.ebean ebean-test - 12.15.1-SNAPSHOT + 12.15.1 test diff --git a/ebean-redis/pom.xml b/ebean-redis/pom.xml index 60a67271e..6115b97c2 100644 --- a/ebean-redis/pom.xml +++ b/ebean-redis/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 12.15.1-SNAPSHOT + 12.15.1 ebean-redis @@ -22,35 +22,35 @@ io.ebean ebean-api - 12.15.1-SNAPSHOT + 12.15.1 provided io.ebean ebean-core - 12.15.1-SNAPSHOT + 12.15.1 provided io.ebean ebean-querybean - 12.15.1-SNAPSHOT + 12.15.1 test io.ebean querybean-generator - 12.15.1-SNAPSHOT + 12.15.1 test io.ebean ebean-test - 12.15.1-SNAPSHOT + 12.15.1 test diff --git a/ebean-test/pom.xml b/ebean-test/pom.xml index fb06dbc40..98d1bff20 100644 --- a/ebean-test/pom.xml +++ b/ebean-test/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 12.15.1-SNAPSHOT + 12.15.1 ebean test @@ -29,14 +29,14 @@ io.ebean ebean-core - 12.15.1-SNAPSHOT + 12.15.1 provided io.ebean ebean-ddl-generator - 12.15.1-SNAPSHOT + 12.15.1 diff --git a/ebean/pom.xml b/ebean/pom.xml index c5512e0cb..bd8ba39f2 100644 --- a/ebean/pom.xml +++ b/ebean/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 12.15.1-SNAPSHOT + 12.15.1 ebean composite @@ -22,20 +22,20 @@ io.ebean ebean-api - 12.15.1-SNAPSHOT + 12.15.1 io.ebean ebean-core - 12.15.1-SNAPSHOT + 12.15.1 io.ebean ebean-querybean - 12.15.1-SNAPSHOT + 12.15.1 diff --git a/kotlin-querybean-generator/pom.xml b/kotlin-querybean-generator/pom.xml index 7272996d8..fc6a007c2 100644 --- a/kotlin-querybean-generator/pom.xml +++ b/kotlin-querybean-generator/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 12.15.1-SNAPSHOT + 12.15.1 kotlin querybean generator @@ -29,7 +29,7 @@ io.ebean ebean-querybean - 12.15.1-SNAPSHOT + 12.15.1 test @@ -43,7 +43,7 @@ io.ebean ebean-core - 12.15.1-SNAPSHOT + 12.15.1 test @@ -64,7 +64,7 @@ io.ebean ebean-ddl-generator - 12.15.1-SNAPSHOT + 12.15.1 test diff --git a/pom.xml b/pom.xml index 7035df30e..8419d22c0 100644 --- a/pom.xml +++ b/pom.xml @@ -9,7 +9,7 @@ io.ebean ebean-parent - 12.15.1-SNAPSHOT + 12.15.1 pom ebean parent @@ -18,7 +18,7 @@ scm:git:git@github.com:ebean-orm/ebean.git - HEAD + ebean-parent-12.15.1 diff --git a/querybean-generator/pom.xml b/querybean-generator/pom.xml index 47d9c0c56..2a7ae20e0 100644 --- a/querybean-generator/pom.xml +++ b/querybean-generator/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 12.15.1-SNAPSHOT + 12.15.1 querybean generator From eb4d906814e9d75e7cb35cb4dd9e78afbace34b0 Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Tue, 1 Mar 2022 22:47:01 +1300 Subject: [PATCH 053/114] [maven-release-plugin] prepare for next development iteration --- ebean-api/pom.xml | 2 +- ebean-autotune/pom.xml | 6 +++--- ebean-bom/pom.xml | 30 +++++++++++++++--------------- ebean-core-type/pom.xml | 4 ++-- ebean-core/pom.xml | 10 +++++----- ebean-ddl-generator/pom.xml | 6 +++--- ebean-externalmapping-api/pom.xml | 2 +- ebean-externalmapping-xml/pom.xml | 10 +++++----- ebean-postgis/pom.xml | 6 +++--- ebean-querybean/pom.xml | 10 +++++----- ebean-redis/pom.xml | 12 ++++++------ ebean-test/pom.xml | 6 +++--- ebean/pom.xml | 8 ++++---- kotlin-querybean-generator/pom.xml | 8 ++++---- pom.xml | 4 ++-- querybean-generator/pom.xml | 2 +- 16 files changed, 63 insertions(+), 63 deletions(-) diff --git a/ebean-api/pom.xml b/ebean-api/pom.xml index fa4c6b5ed..de3d527ac 100644 --- a/ebean-api/pom.xml +++ b/ebean-api/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 12.15.1 + 12.15.2-SNAPSHOT ebean api diff --git a/ebean-autotune/pom.xml b/ebean-autotune/pom.xml index a7803ee86..000e8b6f4 100644 --- a/ebean-autotune/pom.xml +++ b/ebean-autotune/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 12.15.1 + 12.15.2-SNAPSHOT @@ -14,7 +14,7 @@ scm:git:git@github.com:ebean-orm/ebean.git - ebean-parent-12.15.1 + HEAD ebean autotune @@ -26,7 +26,7 @@ io.ebean ebean-core - 12.15.1 + 12.15.2-SNAPSHOT provided diff --git a/ebean-bom/pom.xml b/ebean-bom/pom.xml index fa4a2f8d8..f2ed2c52d 100644 --- a/ebean-bom/pom.xml +++ b/ebean-bom/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 12.15.1 + 12.15.2-SNAPSHOT ebean bom @@ -71,88 +71,88 @@ io.ebean ebean - 12.15.1 + 12.15.2-SNAPSHOT io.ebean ebean-api - 12.15.1 + 12.15.2-SNAPSHOT io.ebean ebean-core - 12.15.1 + 12.15.2-SNAPSHOT io.ebean ebean-core-type - 12.15.1 + 12.15.2-SNAPSHOT io.ebean ebean-ddl-generator - 12.15.1 + 12.15.2-SNAPSHOT io.ebean ebean-externalmapping-api - 12.15.1 + 12.15.2-SNAPSHOT io.ebean ebean-externalmapping-xml - 12.15.1 + 12.15.2-SNAPSHOT io.ebean ebean-autotune - 12.15.1 + 12.15.2-SNAPSHOT io.ebean ebean-querybean - 12.15.1 + 12.15.2-SNAPSHOT io.ebean querybean-generator - 12.15.1 + 12.15.2-SNAPSHOT provided io.ebean kotlin-querybean-generator - 12.15.1 + 12.15.2-SNAPSHOT provided io.ebean ebean-test - 12.15.1 + 12.15.2-SNAPSHOT test io.ebean ebean-postgis - 12.15.1 + 12.15.2-SNAPSHOT io.ebean ebean-redis - 12.15.1 + 12.15.2-SNAPSHOT diff --git a/ebean-core-type/pom.xml b/ebean-core-type/pom.xml index cbf1ba7d4..9ced7795f 100644 --- a/ebean-core-type/pom.xml +++ b/ebean-core-type/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 12.15.1 + 12.15.2-SNAPSHOT ebean-core-type @@ -16,7 +16,7 @@ io.ebean ebean-api - 12.15.1 + 12.15.2-SNAPSHOT diff --git a/ebean-core/pom.xml b/ebean-core/pom.xml index 925571cc6..6acce5f26 100644 --- a/ebean-core/pom.xml +++ b/ebean-core/pom.xml @@ -3,7 +3,7 @@ ebean-parent io.ebean - 12.15.1 + 12.15.2-SNAPSHOT ebean-core @@ -15,7 +15,7 @@ scm:git:git@github.com:ebean-orm/ebean.git - ebean-parent-12.15.1 + HEAD @@ -41,19 +41,19 @@ io.ebean ebean-api - 12.15.1 + 12.15.2-SNAPSHOT io.ebean ebean-core-type - 12.15.1 + 12.15.2-SNAPSHOT io.ebean ebean-externalmapping-api - 12.15.1 + 12.15.2-SNAPSHOT diff --git a/ebean-ddl-generator/pom.xml b/ebean-ddl-generator/pom.xml index 92b6915af..9ecc33488 100644 --- a/ebean-ddl-generator/pom.xml +++ b/ebean-ddl-generator/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 12.15.1 + 12.15.2-SNAPSHOT ebean ddl generation @@ -28,14 +28,14 @@ io.ebean ebean-core-type - 12.15.1 + 12.15.2-SNAPSHOT provided io.ebean ebean-core - 12.15.1 + 12.15.2-SNAPSHOT provided diff --git a/ebean-externalmapping-api/pom.xml b/ebean-externalmapping-api/pom.xml index fffeb99fb..e026e8e6c 100644 --- a/ebean-externalmapping-api/pom.xml +++ b/ebean-externalmapping-api/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 12.15.1 + 12.15.2-SNAPSHOT ebean external mapping api diff --git a/ebean-externalmapping-xml/pom.xml b/ebean-externalmapping-xml/pom.xml index 999bd7184..f9a11188b 100644 --- a/ebean-externalmapping-xml/pom.xml +++ b/ebean-externalmapping-xml/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 12.15.1 + 12.15.2-SNAPSHOT @@ -14,7 +14,7 @@ scm:git:git@github.com:ebean-orm/ebean.git - ebean-parent-12.15.1 + HEAD ebean external mapping xml @@ -33,7 +33,7 @@ io.ebean ebean-externalmapping-api - 12.15.1 + 12.15.2-SNAPSHOT @@ -59,14 +59,14 @@ io.ebean ebean-core - 12.15.1 + 12.15.2-SNAPSHOT test io.ebean ebean-ddl-generator - 12.15.1 + 12.15.2-SNAPSHOT test diff --git a/ebean-postgis/pom.xml b/ebean-postgis/pom.xml index 4c6766f91..f9e3d0fee 100644 --- a/ebean-postgis/pom.xml +++ b/ebean-postgis/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 12.15.1 + 12.15.2-SNAPSHOT ebean postgis @@ -23,7 +23,7 @@ io.ebean ebean-core - 12.15.1 + 12.15.2-SNAPSHOT provided @@ -74,7 +74,7 @@ io.ebean ebean-test - 12.15.1 + 12.15.2-SNAPSHOT test diff --git a/ebean-querybean/pom.xml b/ebean-querybean/pom.xml index f08739ff7..62ce22809 100644 --- a/ebean-querybean/pom.xml +++ b/ebean-querybean/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 12.15.1 + 12.15.2-SNAPSHOT ebean querybean @@ -17,7 +17,7 @@ io.ebean ebean-core - 12.15.1 + 12.15.2-SNAPSHOT provided @@ -56,21 +56,21 @@ io.ebean ebean-ddl-generator - 12.15.1 + 12.15.2-SNAPSHOT test io.ebean querybean-generator - 12.15.1 + 12.15.2-SNAPSHOT test io.ebean ebean-test - 12.15.1 + 12.15.2-SNAPSHOT test diff --git a/ebean-redis/pom.xml b/ebean-redis/pom.xml index 6115b97c2..74ede17e8 100644 --- a/ebean-redis/pom.xml +++ b/ebean-redis/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 12.15.1 + 12.15.2-SNAPSHOT ebean-redis @@ -22,35 +22,35 @@ io.ebean ebean-api - 12.15.1 + 12.15.2-SNAPSHOT provided io.ebean ebean-core - 12.15.1 + 12.15.2-SNAPSHOT provided io.ebean ebean-querybean - 12.15.1 + 12.15.2-SNAPSHOT test io.ebean querybean-generator - 12.15.1 + 12.15.2-SNAPSHOT test io.ebean ebean-test - 12.15.1 + 12.15.2-SNAPSHOT test diff --git a/ebean-test/pom.xml b/ebean-test/pom.xml index 98d1bff20..e3451ca75 100644 --- a/ebean-test/pom.xml +++ b/ebean-test/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 12.15.1 + 12.15.2-SNAPSHOT ebean test @@ -29,14 +29,14 @@ io.ebean ebean-core - 12.15.1 + 12.15.2-SNAPSHOT provided io.ebean ebean-ddl-generator - 12.15.1 + 12.15.2-SNAPSHOT diff --git a/ebean/pom.xml b/ebean/pom.xml index bd8ba39f2..1fc8da96c 100644 --- a/ebean/pom.xml +++ b/ebean/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 12.15.1 + 12.15.2-SNAPSHOT ebean composite @@ -22,20 +22,20 @@ io.ebean ebean-api - 12.15.1 + 12.15.2-SNAPSHOT io.ebean ebean-core - 12.15.1 + 12.15.2-SNAPSHOT io.ebean ebean-querybean - 12.15.1 + 12.15.2-SNAPSHOT diff --git a/kotlin-querybean-generator/pom.xml b/kotlin-querybean-generator/pom.xml index fc6a007c2..b39d00ab3 100644 --- a/kotlin-querybean-generator/pom.xml +++ b/kotlin-querybean-generator/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 12.15.1 + 12.15.2-SNAPSHOT kotlin querybean generator @@ -29,7 +29,7 @@ io.ebean ebean-querybean - 12.15.1 + 12.15.2-SNAPSHOT test @@ -43,7 +43,7 @@ io.ebean ebean-core - 12.15.1 + 12.15.2-SNAPSHOT test @@ -64,7 +64,7 @@ io.ebean ebean-ddl-generator - 12.15.1 + 12.15.2-SNAPSHOT test diff --git a/pom.xml b/pom.xml index 8419d22c0..155841d6d 100644 --- a/pom.xml +++ b/pom.xml @@ -9,7 +9,7 @@ io.ebean ebean-parent - 12.15.1 + 12.15.2-SNAPSHOT pom ebean parent @@ -18,7 +18,7 @@ scm:git:git@github.com:ebean-orm/ebean.git - ebean-parent-12.15.1 + HEAD diff --git a/querybean-generator/pom.xml b/querybean-generator/pom.xml index 2a7ae20e0..c5872847c 100644 --- a/querybean-generator/pom.xml +++ b/querybean-generator/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 12.15.1 + 12.15.2-SNAPSHOT querybean generator From 05338531edf9c821cb8ff35c8fe9527299b94978 Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Tue, 1 Mar 2022 23:01:09 +1300 Subject: [PATCH 054/114] Bump versions after release --- ebean-kotlin/pom.xml | 6 +++--- tests/test-java16/pom.xml | 6 +++--- tests/test-kotlin/pom.xml | 4 ++-- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/ebean-kotlin/pom.xml b/ebean-kotlin/pom.xml index 6eadb686c..5d0f6d5d1 100644 --- a/ebean-kotlin/pom.xml +++ b/ebean-kotlin/pom.xml @@ -5,7 +5,7 @@ ebean-parent io.ebean - 12.15.1-SNAPSHOT + 12.15.2-SNAPSHOT 4.0.0 @@ -29,7 +29,7 @@ io.ebean ebean-core - 12.15.1-SNAPSHOT + 12.15.2-SNAPSHOT provided @@ -51,7 +51,7 @@ io.ebean ebean-test - 12.15.1-SNAPSHOT + 12.15.2-SNAPSHOT test diff --git a/tests/test-java16/pom.xml b/tests/test-java16/pom.xml index 370b558cc..656efd200 100644 --- a/tests/test-java16/pom.xml +++ b/tests/test-java16/pom.xml @@ -20,7 +20,7 @@ io.ebean ebean - 12.15.1-SNAPSHOT + 12.15.2-SNAPSHOT @@ -32,7 +32,7 @@ io.ebean ebean-test - 12.15.1-SNAPSHOT + 12.15.2-SNAPSHOT test @@ -58,7 +58,7 @@ io.ebean querybean-generator - 12.15.1-SNAPSHOT + 12.15.2-SNAPSHOT diff --git a/tests/test-kotlin/pom.xml b/tests/test-kotlin/pom.xml index f9507fef1..e22b98e28 100644 --- a/tests/test-kotlin/pom.xml +++ b/tests/test-kotlin/pom.xml @@ -36,14 +36,14 @@ io.ebean ebean-test - 12.15.1-SNAPSHOT + 12.15.2-SNAPSHOT test io.ebean ebean-core - 12.15.1-SNAPSHOT + 12.15.2-SNAPSHOT test From 49fde7654ed07921ce065816fd62d2961941f623 Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Wed, 2 Mar 2022 12:17:38 +1300 Subject: [PATCH 055/114] Bump to 12.16.0-SNAPSHOT --- ebean-api/pom.xml | 2 +- ebean-autotune/pom.xml | 4 ++-- ebean-bom/pom.xml | 30 +++++++++++++++--------------- ebean-core-type/pom.xml | 4 ++-- ebean-core/pom.xml | 8 ++++---- ebean-ddl-generator/pom.xml | 6 +++--- ebean-externalmapping-api/pom.xml | 2 +- ebean-externalmapping-xml/pom.xml | 8 ++++---- ebean-kotlin/pom.xml | 6 +++--- ebean-postgis/pom.xml | 6 +++--- ebean-querybean/pom.xml | 10 +++++----- ebean-redis/pom.xml | 12 ++++++------ ebean-test/pom.xml | 6 +++--- ebean/pom.xml | 8 ++++---- kotlin-querybean-generator/pom.xml | 8 ++++---- pom.xml | 2 +- querybean-generator/pom.xml | 2 +- tests/test-java16/pom.xml | 6 +++--- tests/test-kotlin/pom.xml | 4 ++-- 19 files changed, 67 insertions(+), 67 deletions(-) diff --git a/ebean-api/pom.xml b/ebean-api/pom.xml index de3d527ac..b3f58a524 100644 --- a/ebean-api/pom.xml +++ b/ebean-api/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 12.15.2-SNAPSHOT + 12.16.0-SNAPSHOT ebean api diff --git a/ebean-autotune/pom.xml b/ebean-autotune/pom.xml index 000e8b6f4..dcffd03f0 100644 --- a/ebean-autotune/pom.xml +++ b/ebean-autotune/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 12.15.2-SNAPSHOT + 12.16.0-SNAPSHOT @@ -26,7 +26,7 @@ io.ebean ebean-core - 12.15.2-SNAPSHOT + 12.16.0-SNAPSHOT provided diff --git a/ebean-bom/pom.xml b/ebean-bom/pom.xml index f2ed2c52d..b414303e1 100644 --- a/ebean-bom/pom.xml +++ b/ebean-bom/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 12.15.2-SNAPSHOT + 12.16.0-SNAPSHOT ebean bom @@ -71,88 +71,88 @@ io.ebean ebean - 12.15.2-SNAPSHOT + 12.16.0-SNAPSHOT io.ebean ebean-api - 12.15.2-SNAPSHOT + 12.16.0-SNAPSHOT io.ebean ebean-core - 12.15.2-SNAPSHOT + 12.16.0-SNAPSHOT io.ebean ebean-core-type - 12.15.2-SNAPSHOT + 12.16.0-SNAPSHOT io.ebean ebean-ddl-generator - 12.15.2-SNAPSHOT + 12.16.0-SNAPSHOT io.ebean ebean-externalmapping-api - 12.15.2-SNAPSHOT + 12.16.0-SNAPSHOT io.ebean ebean-externalmapping-xml - 12.15.2-SNAPSHOT + 12.16.0-SNAPSHOT io.ebean ebean-autotune - 12.15.2-SNAPSHOT + 12.16.0-SNAPSHOT io.ebean ebean-querybean - 12.15.2-SNAPSHOT + 12.16.0-SNAPSHOT io.ebean querybean-generator - 12.15.2-SNAPSHOT + 12.16.0-SNAPSHOT provided io.ebean kotlin-querybean-generator - 12.15.2-SNAPSHOT + 12.16.0-SNAPSHOT provided io.ebean ebean-test - 12.15.2-SNAPSHOT + 12.16.0-SNAPSHOT test io.ebean ebean-postgis - 12.15.2-SNAPSHOT + 12.16.0-SNAPSHOT io.ebean ebean-redis - 12.15.2-SNAPSHOT + 12.16.0-SNAPSHOT diff --git a/ebean-core-type/pom.xml b/ebean-core-type/pom.xml index 9ced7795f..df0f219d8 100644 --- a/ebean-core-type/pom.xml +++ b/ebean-core-type/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 12.15.2-SNAPSHOT + 12.16.0-SNAPSHOT ebean-core-type @@ -16,7 +16,7 @@ io.ebean ebean-api - 12.15.2-SNAPSHOT + 12.16.0-SNAPSHOT diff --git a/ebean-core/pom.xml b/ebean-core/pom.xml index 6acce5f26..05490669f 100644 --- a/ebean-core/pom.xml +++ b/ebean-core/pom.xml @@ -3,7 +3,7 @@ ebean-parent io.ebean - 12.15.2-SNAPSHOT + 12.16.0-SNAPSHOT ebean-core @@ -41,19 +41,19 @@ io.ebean ebean-api - 12.15.2-SNAPSHOT + 12.16.0-SNAPSHOT io.ebean ebean-core-type - 12.15.2-SNAPSHOT + 12.16.0-SNAPSHOT io.ebean ebean-externalmapping-api - 12.15.2-SNAPSHOT + 12.16.0-SNAPSHOT diff --git a/ebean-ddl-generator/pom.xml b/ebean-ddl-generator/pom.xml index 9ecc33488..ca8918d6a 100644 --- a/ebean-ddl-generator/pom.xml +++ b/ebean-ddl-generator/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 12.15.2-SNAPSHOT + 12.16.0-SNAPSHOT ebean ddl generation @@ -28,14 +28,14 @@ io.ebean ebean-core-type - 12.15.2-SNAPSHOT + 12.16.0-SNAPSHOT provided io.ebean ebean-core - 12.15.2-SNAPSHOT + 12.16.0-SNAPSHOT provided diff --git a/ebean-externalmapping-api/pom.xml b/ebean-externalmapping-api/pom.xml index e026e8e6c..f49bf1753 100644 --- a/ebean-externalmapping-api/pom.xml +++ b/ebean-externalmapping-api/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 12.15.2-SNAPSHOT + 12.16.0-SNAPSHOT ebean external mapping api diff --git a/ebean-externalmapping-xml/pom.xml b/ebean-externalmapping-xml/pom.xml index f9a11188b..ad14307c0 100644 --- a/ebean-externalmapping-xml/pom.xml +++ b/ebean-externalmapping-xml/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 12.15.2-SNAPSHOT + 12.16.0-SNAPSHOT @@ -33,7 +33,7 @@ io.ebean ebean-externalmapping-api - 12.15.2-SNAPSHOT + 12.16.0-SNAPSHOT @@ -59,14 +59,14 @@ io.ebean ebean-core - 12.15.2-SNAPSHOT + 12.16.0-SNAPSHOT test io.ebean ebean-ddl-generator - 12.15.2-SNAPSHOT + 12.16.0-SNAPSHOT test diff --git a/ebean-kotlin/pom.xml b/ebean-kotlin/pom.xml index 5d0f6d5d1..58870dfdd 100644 --- a/ebean-kotlin/pom.xml +++ b/ebean-kotlin/pom.xml @@ -5,7 +5,7 @@ ebean-parent io.ebean - 12.15.2-SNAPSHOT + 12.16.0-SNAPSHOT 4.0.0 @@ -29,7 +29,7 @@ io.ebean ebean-core - 12.15.2-SNAPSHOT + 12.16.0-SNAPSHOT provided @@ -51,7 +51,7 @@ io.ebean ebean-test - 12.15.2-SNAPSHOT + 12.16.0-SNAPSHOT test diff --git a/ebean-postgis/pom.xml b/ebean-postgis/pom.xml index f9e3d0fee..26ac20f9d 100644 --- a/ebean-postgis/pom.xml +++ b/ebean-postgis/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 12.15.2-SNAPSHOT + 12.16.0-SNAPSHOT ebean postgis @@ -23,7 +23,7 @@ io.ebean ebean-core - 12.15.2-SNAPSHOT + 12.16.0-SNAPSHOT provided @@ -74,7 +74,7 @@ io.ebean ebean-test - 12.15.2-SNAPSHOT + 12.16.0-SNAPSHOT test diff --git a/ebean-querybean/pom.xml b/ebean-querybean/pom.xml index 62ce22809..ae9595f1e 100644 --- a/ebean-querybean/pom.xml +++ b/ebean-querybean/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 12.15.2-SNAPSHOT + 12.16.0-SNAPSHOT ebean querybean @@ -17,7 +17,7 @@ io.ebean ebean-core - 12.15.2-SNAPSHOT + 12.16.0-SNAPSHOT provided @@ -56,21 +56,21 @@ io.ebean ebean-ddl-generator - 12.15.2-SNAPSHOT + 12.16.0-SNAPSHOT test io.ebean querybean-generator - 12.15.2-SNAPSHOT + 12.16.0-SNAPSHOT test io.ebean ebean-test - 12.15.2-SNAPSHOT + 12.16.0-SNAPSHOT test diff --git a/ebean-redis/pom.xml b/ebean-redis/pom.xml index 74ede17e8..02f84bc88 100644 --- a/ebean-redis/pom.xml +++ b/ebean-redis/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 12.15.2-SNAPSHOT + 12.16.0-SNAPSHOT ebean-redis @@ -22,35 +22,35 @@ io.ebean ebean-api - 12.15.2-SNAPSHOT + 12.16.0-SNAPSHOT provided io.ebean ebean-core - 12.15.2-SNAPSHOT + 12.16.0-SNAPSHOT provided io.ebean ebean-querybean - 12.15.2-SNAPSHOT + 12.16.0-SNAPSHOT test io.ebean querybean-generator - 12.15.2-SNAPSHOT + 12.16.0-SNAPSHOT test io.ebean ebean-test - 12.15.2-SNAPSHOT + 12.16.0-SNAPSHOT test diff --git a/ebean-test/pom.xml b/ebean-test/pom.xml index e3451ca75..a88660e0a 100644 --- a/ebean-test/pom.xml +++ b/ebean-test/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 12.15.2-SNAPSHOT + 12.16.0-SNAPSHOT ebean test @@ -29,14 +29,14 @@ io.ebean ebean-core - 12.15.2-SNAPSHOT + 12.16.0-SNAPSHOT provided io.ebean ebean-ddl-generator - 12.15.2-SNAPSHOT + 12.16.0-SNAPSHOT diff --git a/ebean/pom.xml b/ebean/pom.xml index 1fc8da96c..a62ad8df4 100644 --- a/ebean/pom.xml +++ b/ebean/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 12.15.2-SNAPSHOT + 12.16.0-SNAPSHOT ebean composite @@ -22,20 +22,20 @@ io.ebean ebean-api - 12.15.2-SNAPSHOT + 12.16.0-SNAPSHOT io.ebean ebean-core - 12.15.2-SNAPSHOT + 12.16.0-SNAPSHOT io.ebean ebean-querybean - 12.15.2-SNAPSHOT + 12.16.0-SNAPSHOT diff --git a/kotlin-querybean-generator/pom.xml b/kotlin-querybean-generator/pom.xml index b39d00ab3..a7c7e29a8 100644 --- a/kotlin-querybean-generator/pom.xml +++ b/kotlin-querybean-generator/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 12.15.2-SNAPSHOT + 12.16.0-SNAPSHOT kotlin querybean generator @@ -29,7 +29,7 @@ io.ebean ebean-querybean - 12.15.2-SNAPSHOT + 12.16.0-SNAPSHOT test @@ -43,7 +43,7 @@ io.ebean ebean-core - 12.15.2-SNAPSHOT + 12.16.0-SNAPSHOT test @@ -64,7 +64,7 @@ io.ebean ebean-ddl-generator - 12.15.2-SNAPSHOT + 12.16.0-SNAPSHOT test diff --git a/pom.xml b/pom.xml index 155841d6d..5fcf54843 100644 --- a/pom.xml +++ b/pom.xml @@ -9,7 +9,7 @@ io.ebean ebean-parent - 12.15.2-SNAPSHOT + 12.16.0-SNAPSHOT pom ebean parent diff --git a/querybean-generator/pom.xml b/querybean-generator/pom.xml index c5872847c..5a129080c 100644 --- a/querybean-generator/pom.xml +++ b/querybean-generator/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 12.15.2-SNAPSHOT + 12.16.0-SNAPSHOT querybean generator diff --git a/tests/test-java16/pom.xml b/tests/test-java16/pom.xml index 656efd200..d71865bc3 100644 --- a/tests/test-java16/pom.xml +++ b/tests/test-java16/pom.xml @@ -20,7 +20,7 @@ io.ebean ebean - 12.15.2-SNAPSHOT + 12.16.0-SNAPSHOT @@ -32,7 +32,7 @@ io.ebean ebean-test - 12.15.2-SNAPSHOT + 12.16.0-SNAPSHOT test @@ -58,7 +58,7 @@ io.ebean querybean-generator - 12.15.2-SNAPSHOT + 12.16.0-SNAPSHOT diff --git a/tests/test-kotlin/pom.xml b/tests/test-kotlin/pom.xml index e22b98e28..9b0caa10d 100644 --- a/tests/test-kotlin/pom.xml +++ b/tests/test-kotlin/pom.xml @@ -36,14 +36,14 @@ io.ebean ebean-test - 12.15.2-SNAPSHOT + 12.16.0-SNAPSHOT test io.ebean ebean-core - 12.15.2-SNAPSHOT + 12.16.0-SNAPSHOT test From c5acd31da48140c6811e3430720bd6b7ef1e83b6 Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Wed, 2 Mar 2022 12:25:57 +1300 Subject: [PATCH 056/114] #2579 - Bump to ebean-migration 12.16.0, support both basePlatform and platform for finding/running migrations --- ebean-core/pom.xml | 2 +- .../java/io/ebeaninternal/server/core/DefaultServer.java | 4 +++- ebean-ddl-generator/pom.xml | 2 +- pom.xml | 6 +++--- 4 files changed, 8 insertions(+), 6 deletions(-) diff --git a/ebean-core/pom.xml b/ebean-core/pom.xml index 05490669f..09e51a6ce 100644 --- a/ebean-core/pom.xml +++ b/ebean-core/pom.xml @@ -23,7 +23,7 @@ io.ebean ebean-ddl-runner - 1.2 + ${ebean-ddl-runner.version} diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/core/DefaultServer.java b/ebean-core/src/main/java/io/ebeaninternal/server/core/DefaultServer.java index 552816408..2f51eeffd 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/core/DefaultServer.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/core/DefaultServer.java @@ -373,7 +373,9 @@ public final class DefaultServer implements SpiServer, SpiEbeanServer { migrationRunner.setDefaultDbSchema(dbSchema); } migrationRunner.setName(config.getName()); - migrationRunner.setPlatform(config.getDatabasePlatform().getPlatform().base().name().toLowerCase()); + Platform platform = config.getDatabasePlatform().getPlatform(); + migrationRunner.setBasePlatform(platform.base().name().toLowerCase()); + migrationRunner.setPlatform(platform.name().toLowerCase()); migrationRunner.loadProperties(config.getProperties()); migrationRunner.run(config.getDataSource()); } diff --git a/ebean-ddl-generator/pom.xml b/ebean-ddl-generator/pom.xml index ca8918d6a..d05318f87 100644 --- a/ebean-ddl-generator/pom.xml +++ b/ebean-ddl-generator/pom.xml @@ -16,7 +16,7 @@ io.ebean ebean-ddl-runner - 1.2 + ${ebean-ddl-runner.version} diff --git a/pom.xml b/pom.xml index 5fcf54843..fc4c0db53 100644 --- a/pom.xml +++ b/pom.xml @@ -41,10 +41,10 @@ false 2.12.1 2.1.210 - 1.2 + 1.3 1.1 - 12.15.0 - 4.2 + 12.16.0 + 4.5 7.5 12.15.0 12.15.0 From 61f5442e3bc99da7ae070de2a6d0d839e1691013 Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Wed, 2 Mar 2022 12:30:32 +1300 Subject: [PATCH 057/114] #2579 - Bump to ebean-migration 12.16.0, support both basePlatform and platform for finding/running migrations Fix ebean-migration-auto.version to 1.2 --- ebean-core/pom.xml | 2 +- pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/ebean-core/pom.xml b/ebean-core/pom.xml index 09e51a6ce..164763862 100644 --- a/ebean-core/pom.xml +++ b/ebean-core/pom.xml @@ -35,7 +35,7 @@ io.ebean ebean-migration-auto - 1.1 + ${ebean-migration-auto.version} diff --git a/pom.xml b/pom.xml index fc4c0db53..4ecd1aac1 100644 --- a/pom.xml +++ b/pom.xml @@ -42,7 +42,7 @@ 2.12.1 2.1.210 1.3 - 1.1 + 1.2 12.16.0 4.5 7.5 From 9b8f7be98f7be0ff9a25dbd2ee55ed2d249c9316 Mon Sep 17 00:00:00 2001 From: Alexander Wagner Date: Wed, 2 Mar 2022 11:43:04 +0100 Subject: [PATCH 058/114] Bug: Wrong join in query with @Inheritance and @DbForeignKey (cherry picked from commit 4bcadbb4da3f0defbcc58802e621442d948df38a) --- .../java/org/tests/model/join/Access.java | 70 ++++++++++++++++ .../java/org/tests/model/join/Account.java | 36 +++++++++ .../org/tests/model/join/AccountAccess.java | 10 +++ .../org/tests/model/join/BankAccount.java | 10 +++ .../org/tests/model/join/CustomerAccess.java | 10 +++ .../query/TestQueryMultiJoinFetchPath.java | 80 +++++++++++++++++++ 6 files changed, 216 insertions(+) create mode 100644 ebean-test/src/test/java/org/tests/model/join/Access.java create mode 100644 ebean-test/src/test/java/org/tests/model/join/Account.java create mode 100644 ebean-test/src/test/java/org/tests/model/join/AccountAccess.java create mode 100644 ebean-test/src/test/java/org/tests/model/join/BankAccount.java create mode 100644 ebean-test/src/test/java/org/tests/model/join/CustomerAccess.java create mode 100644 ebean-test/src/test/java/org/tests/query/TestQueryMultiJoinFetchPath.java diff --git a/ebean-test/src/test/java/org/tests/model/join/Access.java b/ebean-test/src/test/java/org/tests/model/join/Access.java new file mode 100644 index 000000000..1d394e98d --- /dev/null +++ b/ebean-test/src/test/java/org/tests/model/join/Access.java @@ -0,0 +1,70 @@ +package org.tests.model.join; + +import java.util.UUID; + +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.Inheritance; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; + +import org.tests.model.basic.Customer; + +import io.ebean.annotation.DbForeignKey; + +@Inheritance +@Entity +public abstract class Access { + + @Id + UUID id; + + @ManyToOne + @DbForeignKey(noConstraint = true) + @JoinColumn(name = "accessor_id") + Customer accessor; + + @ManyToOne + @DbForeignKey(noConstraint = true) + @JoinColumn(name = "principal_id") + Customer principal; + + @ManyToOne + @DbForeignKey(noConstraint = true) + @JoinColumn(name = "account_account_number") + Account account; + + public UUID getId() { + return id; + } + + public void setId(UUID id) { + this.id = id; + } + + public Customer getAccessor() { + return accessor; + } + + public void setAccessor(Customer accessor) { + this.accessor = accessor; + } + + public Customer getPrincipal() { + return principal; + } + + public void setPrincipal(Customer principal) { + this.principal = principal; + } + + public Account getAccount() { + return account; + } + + public void setAccount(Account account) { + this.account = account; + setPrincipal(account.getOwner()); + } + +} \ No newline at end of file diff --git a/ebean-test/src/test/java/org/tests/model/join/Account.java b/ebean-test/src/test/java/org/tests/model/join/Account.java new file mode 100644 index 000000000..ad2da2099 --- /dev/null +++ b/ebean-test/src/test/java/org/tests/model/join/Account.java @@ -0,0 +1,36 @@ +package org.tests.model.join; + +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.Inheritance; +import javax.persistence.ManyToOne; + +import org.tests.model.basic.Customer; + +@Entity +@Inheritance +public abstract class Account { + + @Id + String accountNumber; + + @ManyToOne + Customer owner; + + public String getAccountNumber() { + return accountNumber; + } + + public void setAccountNumber(String accountNumber) { + this.accountNumber = accountNumber; + } + + public Customer getOwner() { + return owner; + } + + public void setOwner(Customer owner) { + this.owner = owner; + } + +} \ No newline at end of file diff --git a/ebean-test/src/test/java/org/tests/model/join/AccountAccess.java b/ebean-test/src/test/java/org/tests/model/join/AccountAccess.java new file mode 100644 index 000000000..bf04209de --- /dev/null +++ b/ebean-test/src/test/java/org/tests/model/join/AccountAccess.java @@ -0,0 +1,10 @@ +package org.tests.model.join; + +import javax.persistence.DiscriminatorValue; +import javax.persistence.Entity; + +@DiscriminatorValue("A") +@Entity +public class AccountAccess extends Access { + +} \ No newline at end of file diff --git a/ebean-test/src/test/java/org/tests/model/join/BankAccount.java b/ebean-test/src/test/java/org/tests/model/join/BankAccount.java new file mode 100644 index 000000000..8cb93fb70 --- /dev/null +++ b/ebean-test/src/test/java/org/tests/model/join/BankAccount.java @@ -0,0 +1,10 @@ +package org.tests.model.join; + +import javax.persistence.DiscriminatorValue; +import javax.persistence.Entity; + +@DiscriminatorValue("B") +@Entity +public class BankAccount extends Account { + +} \ No newline at end of file diff --git a/ebean-test/src/test/java/org/tests/model/join/CustomerAccess.java b/ebean-test/src/test/java/org/tests/model/join/CustomerAccess.java new file mode 100644 index 000000000..5897a8833 --- /dev/null +++ b/ebean-test/src/test/java/org/tests/model/join/CustomerAccess.java @@ -0,0 +1,10 @@ +package org.tests.model.join; + +import javax.persistence.DiscriminatorValue; +import javax.persistence.Entity; + +@DiscriminatorValue("C") +@Entity +public class CustomerAccess extends Access { + +} \ No newline at end of file diff --git a/ebean-test/src/test/java/org/tests/query/TestQueryMultiJoinFetchPath.java b/ebean-test/src/test/java/org/tests/query/TestQueryMultiJoinFetchPath.java new file mode 100644 index 000000000..18f77b155 --- /dev/null +++ b/ebean-test/src/test/java/org/tests/query/TestQueryMultiJoinFetchPath.java @@ -0,0 +1,80 @@ +package org.tests.query; + +import static org.assertj.core.api.Assertions.assertThat; + +import java.util.List; + +import org.junit.jupiter.api.Test; +import org.tests.model.basic.Customer; +import org.tests.model.basic.Customer.Status; +import org.tests.model.basic.ResetBasicData; +import org.tests.model.join.Access; +import org.tests.model.join.Account; +import org.tests.model.join.AccountAccess; +import org.tests.model.join.BankAccount; +import org.tests.model.join.CustomerAccess; + +import io.ebean.BaseTestCase; +import io.ebean.DB; +import io.ebean.Query; + +public class TestQueryMultiJoinFetchPath extends BaseTestCase { + + @Test + public void test() { + + ResetBasicData.reset(); + + Customer c1 = new Customer(); + c1.setName("c1"); + c1.setStatus(Status.ACTIVE); + DB.save(c1); + + Customer c2 = new Customer(); + c2.setName("c2"); + c2.setStatus(Status.ACTIVE); + DB.save(c2); + + Customer c3 = new Customer(); + c3.setName("c3"); + c3.setStatus(Status.ACTIVE); + DB.save(c3); + + Account a1 = new BankAccount(); + a1.setAccountNumber("a1"); + a1.setOwner(c1); + DB.save(a1); + + CustomerAccess ca = new CustomerAccess(); + ca.setAccessor(c3); + ca.setPrincipal(c1); + DB.save(ca); + + AccountAccess aa = new AccountAccess(); + aa.setAccessor(c2); + aa.setAccount(a1); + DB.save(aa); + + List ids = DB.find(Access.class) + .where() + .eq("principal.status", Status.ACTIVE) + .eq("accessor.status", Status.ACTIVE) + .findIds(); + + assertThat(ids).hasSize(2); + + Query query = DB.find(Access.class) + .fetch("account","accountNumber") + .fetch("accessor","name") + .where() + .eq("accessor.status", Status.ACTIVE) + .eq("principal.status", Status.ACTIVE) + .idIn(ids) + .query(); + + List accesses = query.findList(); + + assertThat(accesses).hasSize(2); + } + +} From e3a20a351d3f3a20cf3ad8fee5d1b4f686d6664d Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Fri, 4 Mar 2022 10:21:56 +1300 Subject: [PATCH 059/114] #2582 - Fix for regression, BackgroundExecutor is bounded (since 12.6.2) The change for #2121 brought in a regression where the scheduledExecutorService was used for processing ALL submitted tasks (not just scheduled ones) and is a bounded executor service. Previously non-scheduled tasks went to a "newCachedThreadPool" based executor service and with this change we are moving back to that (via restoring and using the DaemonExecutorService for those tasks). --- .../executor/DaemonExecutorService.java | 67 +++++++++++++++++++ .../executor/DefaultBackgroundExecutor.java | 31 +++++---- .../executor/DaemonExecutorServiceTest.java | 56 ++++++++++++++++ 3 files changed, 138 insertions(+), 16 deletions(-) create mode 100644 ebean-core/src/main/java/io/ebeaninternal/server/executor/DaemonExecutorService.java create mode 100644 ebean-core/src/test/java/io/ebeaninternal/server/executor/DaemonExecutorServiceTest.java diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/executor/DaemonExecutorService.java b/ebean-core/src/main/java/io/ebeaninternal/server/executor/DaemonExecutorService.java new file mode 100644 index 000000000..af23a086d --- /dev/null +++ b/ebean-core/src/main/java/io/ebeaninternal/server/executor/DaemonExecutorService.java @@ -0,0 +1,67 @@ +package io.ebeaninternal.server.executor; + + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.util.concurrent.*; +import java.util.concurrent.locks.ReentrantLock; + +/** + * A "CachedThreadPool" based on Daemon threads. + *

+ * The Threads are created as needed and once idle live for 60 seconds. + */ +final class DaemonExecutorService { + + private static final Logger logger = LoggerFactory.getLogger(DaemonExecutorService.class); + + private final ReentrantLock lock = new ReentrantLock(false); + private final String namePrefix; + private final int shutdownWaitSeconds; + private final ExecutorService service; + + DaemonExecutorService(int shutdownWaitSeconds, String namePrefix) { + this.service = Executors.newCachedThreadPool(new DaemonThreadFactory(namePrefix)); + this.shutdownWaitSeconds = shutdownWaitSeconds; + this.namePrefix = namePrefix; + } + + Future submit(Callable task) { + return service.submit(task); + } + + Future submit(Runnable task) { + return service.submit(task); + } + + /** + * Shutdown this thread pool nicely if possible. + *

+ * This will wait a maximum of 20 seconds before terminating any threads still working. + */ + void shutdown() { + lock.lock(); + try { + if (service.isShutdown()) { + logger.debug("DaemonExecutorService[{}] already shut down", namePrefix); + return; + } + try { + logger.debug("DaemonExecutorService[{}] shutting down...", namePrefix); + service.shutdown(); + if (!service.awaitTermination(shutdownWaitSeconds, TimeUnit.SECONDS)) { + logger.info("DaemonExecutorService[{}] shut down timeout exceeded. Terminating running threads.", namePrefix); + service.shutdownNow(); + } + + } catch (Exception e) { + logger.error("Error during shutdown of DaemonThreadPool[" + namePrefix + "]", e); + e.printStackTrace(); + } + } finally { + lock.unlock(); + } + } + +} diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/executor/DefaultBackgroundExecutor.java b/ebean-core/src/main/java/io/ebeaninternal/server/executor/DefaultBackgroundExecutor.java index 7090a63e4..d04348ba8 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/executor/DefaultBackgroundExecutor.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/executor/DefaultBackgroundExecutor.java @@ -5,11 +5,7 @@ import io.ebeaninternal.api.SpiBackgroundExecutor; import org.slf4j.MDC; import java.util.Map; -import java.util.concurrent.Callable; -import java.util.concurrent.Future; -import java.util.concurrent.ScheduledExecutorService; -import java.util.concurrent.ScheduledFuture; -import java.util.concurrent.TimeUnit; +import java.util.concurrent.*; /** * The default implementation of the BackgroundExecutor. @@ -17,13 +13,15 @@ import java.util.concurrent.TimeUnit; @NonNullApi public final class DefaultBackgroundExecutor implements SpiBackgroundExecutor { - private final ScheduledExecutorService executor; + private final ScheduledExecutorService schedulePool; + private final DaemonExecutorService pool; /** * Construct the default implementation of BackgroundExecutor. */ public DefaultBackgroundExecutor(int schedulePoolSize, int shutdownWaitSeconds, String namePrefix) { - this.executor = new DaemonScheduleThreadPool(schedulePoolSize, shutdownWaitSeconds, namePrefix); + this.schedulePool = new DaemonScheduleThreadPool(schedulePoolSize, shutdownWaitSeconds, namePrefix + "-periodic-"); + this.pool = new DaemonExecutorService(shutdownWaitSeconds, namePrefix); } /** @@ -66,7 +64,7 @@ public final class DefaultBackgroundExecutor implements SpiBackgroundExecutor { @Override public Future submit(Callable task) { - return executor.submit(wrapMDC(task)); + return pool.submit(wrapMDC(task)); } /** @@ -74,7 +72,7 @@ public final class DefaultBackgroundExecutor implements SpiBackgroundExecutor { */ @Override public Future submit(Runnable task) { - return executor.submit(wrapMDC(task)); + return pool.submit(wrapMDC(task)); } @Override @@ -84,37 +82,38 @@ public final class DefaultBackgroundExecutor implements SpiBackgroundExecutor { @Override public void executePeriodically(Runnable task, long delay, TimeUnit unit) { - executor.scheduleWithFixedDelay(wrapMDC(task), delay, delay, unit); + schedulePool.scheduleWithFixedDelay(wrapMDC(task), delay, delay, unit); } @Override public void executePeriodically(Runnable task, long initialDelay, long delay, TimeUnit unit) { - executor.scheduleWithFixedDelay(wrapMDC(task), initialDelay, delay, unit); + schedulePool.scheduleWithFixedDelay(wrapMDC(task), initialDelay, delay, unit); } @Override public ScheduledFuture scheduleWithFixedDelay(Runnable task, long initialDelay, long delay, TimeUnit unit) { - return executor.scheduleWithFixedDelay(wrapMDC(task), initialDelay, delay, unit); + return schedulePool.scheduleWithFixedDelay(wrapMDC(task), initialDelay, delay, unit); } @Override public ScheduledFuture scheduleAtFixedRate(Runnable task, long initialDelay, long delay, TimeUnit unit) { - return executor.scheduleAtFixedRate(wrapMDC(task), initialDelay, delay, unit); + return schedulePool.scheduleAtFixedRate(wrapMDC(task), initialDelay, delay, unit); } @Override public ScheduledFuture schedule(Runnable task, long delay, TimeUnit unit) { - return executor.schedule(wrapMDC(task), delay, unit); + return schedulePool.schedule(wrapMDC(task), delay, unit); } @Override public ScheduledFuture schedule(Callable task, long delay, TimeUnit unit) { - return executor.schedule(wrapMDC(task), delay, unit); + return schedulePool.schedule(wrapMDC(task), delay, unit); } @Override public void shutdown() { - executor.shutdown(); + schedulePool.shutdown(); + pool.shutdown(); } } diff --git a/ebean-core/src/test/java/io/ebeaninternal/server/executor/DaemonExecutorServiceTest.java b/ebean-core/src/test/java/io/ebeaninternal/server/executor/DaemonExecutorServiceTest.java new file mode 100644 index 000000000..72ad74223 --- /dev/null +++ b/ebean-core/src/test/java/io/ebeaninternal/server/executor/DaemonExecutorServiceTest.java @@ -0,0 +1,56 @@ +package io.ebeaninternal.server.executor; + +import org.junit.jupiter.api.Test; + +import java.util.ArrayList; +import java.util.List; +import java.util.concurrent.Future; + +import static org.assertj.core.api.Assertions.assertThat; + +class DaemonExecutorServiceTest { + + private final int count = 10; + private final int waitMillis = 100; + + @Test + void submit() throws Exception { + DaemonExecutorService des = new DaemonExecutorService(5, "junk"); + long start = System.currentTimeMillis(); + List> futures = new ArrayList<>(); + for (int i = 0; i < count; i++) { + futures.add(des.submit(this::doStuff)); + } + for (Future f: futures) { + f.get(); + } + long exeMillis = System.currentTimeMillis() - start; + assertThat(exeMillis).isLessThan(count * waitMillis); + des.shutdown(); + } + + @Test + void submit_via_DefaultBackgroundExecutor() throws Exception { + DefaultBackgroundExecutor des = new DefaultBackgroundExecutor(1, 5, "junk"); + long start = System.currentTimeMillis(); + List> futures = new ArrayList<>(); + for (int i = 0; i < count; i++) { + futures.add(des.submit(this::doStuff)); + } + for (Future f: futures) { + f.get(); + } + long exeMillis = System.currentTimeMillis() - start; + assertThat(exeMillis).isLessThan(count * waitMillis); + des.shutdown(); + } + + private void doStuff() { + try { + Thread.sleep(waitMillis); + } catch (InterruptedException e) { + throw new RuntimeException(e); + } + } + +} From b41b6da40eaa5c894b1d3d241a83fc60edb24c62 Mon Sep 17 00:00:00 2001 From: Noemi Szemenyei Date: Fri, 4 Mar 2022 08:20:44 +0100 Subject: [PATCH 060/114] iterator.remove() is not needed --- .../io/ebeaninternal/server/deploy/BeanDescriptorCacheHelp.java | 1 - 1 file changed, 1 deletion(-) diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanDescriptorCacheHelp.java b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanDescriptorCacheHelp.java index 75349ce7d..901f8dff3 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanDescriptorCacheHelp.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanDescriptorCacheHelp.java @@ -716,7 +716,6 @@ final class BeanDescriptorCacheHelp { if (beanLog.isTraceEnabled()) { beanLog.trace(" load {}({}) - cache miss on property({})", cacheName, key, propertyName); } - iterator.remove(); } else { CachedBeanDataToBean.load(desc, ebi.getOwner(), cacheData, context); loaded.add(ebi); From 1529a2f12bd6c4c4fabb2ded6953b2038711a4f8 Mon Sep 17 00:00:00 2001 From: Roland Praml Date: Mon, 7 Mar 2022 15:35:36 +0100 Subject: [PATCH 061/114] Prepared PlatformDdl to to have only one 'alterColumn' method (required for further refactoring) --- .../platform/AbstractHanaDdl.java | 26 +- .../ddlgeneration/platform/BaseTableDdl.java | 89 +-- .../platform/DbTriggerBasedHistoryDdl.java | 7 +- .../ddlgeneration/platform/HanaTableDdl.java | 13 +- .../ddlgeneration/platform/MySqlDdl.java | 62 +- .../ddlgeneration/platform/PlatformDdl.java | 70 ++- .../ddlgeneration/platform/PostgresDdl.java | 12 +- .../ddlgeneration/platform/SQLiteDdl.java | 17 +- .../ddlgeneration/platform/SqlServerDdl.java | 126 +++-- .../platform/SqlServerHistoryDdl.java | 12 +- .../platform/BaseTableDdlTest.java | 6 +- .../ddlgeneration/platform/HanaDdlTest.java | 4 +- .../platform/PlatformDdl_AlterColumnTest.java | 528 ++++++++++++------ .../PlatformDdl_dropUniqueConstraintTest.java | 2 +- 14 files changed, 594 insertions(+), 380 deletions(-) diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/AbstractHanaDdl.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/AbstractHanaDdl.java index e2b796a9d..d9833753a 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/AbstractHanaDdl.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/AbstractHanaDdl.java @@ -5,6 +5,7 @@ import io.ebean.config.dbplatform.DatabasePlatform; import io.ebean.config.dbplatform.DbPlatformType; import io.ebeaninternal.dbmigration.ddlgeneration.DdlBuffer; import io.ebeaninternal.dbmigration.ddlgeneration.DdlHandler; +import io.ebeaninternal.dbmigration.ddlgeneration.DdlWrite; import io.ebeaninternal.dbmigration.migration.AlterColumn; import java.util.Objects; @@ -38,7 +39,7 @@ public abstract class AbstractHanaDdl extends PlatformDdl { } @Override - public String alterColumnBaseAttributes(AlterColumn alter) { + public void alterColumn(DdlWrite writer, AlterColumn alter) { String tableName = alter.getTableName(); String columnName = alter.getColumnName(); String currentType = alter.getCurrentType(); @@ -51,7 +52,7 @@ public abstract class AbstractHanaDdl extends PlatformDdl { : (alter.getDefaultValue() != null ? alter.getDefaultValue() : alter.getCurrentDefaultValue()); String defaultValueClause = (defaultValue == null || defaultValue.isEmpty()) ? "" : " default " + defaultValue; - DdlBuffer buffer = new BaseDdlBuffer(); + DdlBuffer buffer = writer.apply(); if (!isConvertible(currentType, type)) { // add an intermediate conversion if possible if (isNumberType(currentType)) { @@ -73,17 +74,7 @@ public abstract class AbstractHanaDdl extends PlatformDdl { buffer.append("alter table ").append(tableName).append(" ").append(alterColumn).append(" ").append(columnName) .append(" ").append(type).append(defaultValueClause).append(notnullClause).append(alterColumnSuffix); - return buffer.getBuffer(); - } - - @Override - public String alterColumnDefaultValue(String tableName, String columnName, String defaultValue) { - throw new UnsupportedOperationException(); - } - - @Override - public String alterColumnNotnull(String tableName, String columnName, boolean notnull) { - return null; + buffer.endOfStatement(); } @Override @@ -91,11 +82,6 @@ public abstract class AbstractHanaDdl extends PlatformDdl { return new HanaDdlHandler(config, this); } - @Override - public String alterColumnType(String tableName, String columnName, String type) { - return null; - } - @Override protected String convertArrayType(String logicalArrayType) { Matcher matcher = ARRAY_PATTERN.matcher(logicalArrayType); @@ -140,8 +126,8 @@ public abstract class AbstractHanaDdl extends PlatformDdl { * foreign keys. That's why we call a user stored procedure here */ @Override - public void alterTableDropColumn(DdlBuffer buffer, String tableName, String columnName) { - buffer.append("CALL usp_ebean_drop_column('").append(tableName).append("', '").append(columnName).append("')") + public void alterTableDropColumn(DdlWrite writer, String tableName, String columnName) { + writer.apply().append("CALL usp_ebean_drop_column('").append(tableName).append("', '").append(columnName).append("')") .endOfStatement(); } diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/BaseTableDdl.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/BaseTableDdl.java index 5effa54e5..f4b8980c1 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/BaseTableDdl.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/BaseTableDdl.java @@ -646,14 +646,14 @@ public class BaseTableDdl implements TableDdl { String tableName = addColumn.getTableName(); List columns = addColumn.getColumn(); for (Column column : columns) { - alterTableAddColumn(writer.apply(), tableName, column, false, isTrue(addColumn.isWithHistory())); + alterTableAddColumn(writer, tableName, column, false, isTrue(addColumn.isWithHistory())); } if (isTrue(addColumn.isWithHistory()) && historySupport == HistorySupport.TRIGGER_BASED) { // make same changes to the history table String historyTable = historyTable(tableName); for (Column column : columns) { regenerateHistoryTriggers(tableName, HistoryTableUpdate.Change.ADD, column.getName()); - alterTableAddColumn(writer.apply(), historyTable, column, true, true); + alterTableAddColumn(writer, historyTable, column, true, true); } } for (Column column : columns) { @@ -686,12 +686,12 @@ public class BaseTableDdl implements TableDdl { @Override public void generate(DdlWrite writer, DropColumn dropColumn) { String tableName = dropColumn.getTableName(); - alterTableDropColumn(writer.apply(), tableName, dropColumn.getColumnName()); + alterTableDropColumn(writer, tableName, dropColumn.getColumnName()); if (isTrue(dropColumn.isWithHistory()) && historySupport == HistorySupport.TRIGGER_BASED) { // also drop from the history table regenerateHistoryTriggers(tableName, HistoryTableUpdate.Change.DROP, dropColumn.getColumnName()); - alterTableDropColumn(writer.apply(), historyTable(tableName), dropColumn.getColumnName()); + alterTableDropColumn(writer, historyTable(tableName), dropColumn.getColumnName()); } writer.apply().end(); } @@ -739,22 +739,13 @@ public class BaseTableDdl implements TableDdl { // drop constraint before altering type etc dropCheckConstraint(writer, alterColumn, alterColumn.getCheckConstraintName()); } - boolean alterBaseAttributes = false; - if (hasValue(alterColumn.getType())) { - alterColumnType(writer, alterColumn); - alterBaseAttributes = true; - } - if (hasValue(alterColumn.getDefaultValue())) { - alterColumnDefaultValue(writer, alterColumn); - alterBaseAttributes = true; - } - if (alterColumn.isNotnull() != null) { - alterColumnNotnull(writer, alterColumn); - alterBaseAttributes = true; - } - if (alterBaseAttributes) { - alterColumnBaseAttributes(writer, alterColumn); + + if (hasValue(alterColumn.getType()) + || hasValue(alterColumn.getDefaultValue()) + || alterColumn.isNotnull() != null) { + alterColumn(writer, alterColumn); } + if (alterCheckConstraint) { // add constraint last (after potential type change) addCheckConstraint(writer, alterColumn); @@ -785,28 +776,19 @@ public class BaseTableDdl implements TableDdl { * This is mysql specific - alter all the base attributes of the column together. * Will be called, if there is a type, dbdefault or notnull change. */ - protected void alterColumnBaseAttributes(DdlWrite writer, AlterColumn alter) { - String ddl = platformDdl.alterColumnBaseAttributes(alter); - if (hasValue(ddl)) { - writer.apply().appendStatement(ddl); + protected void alterColumn(DdlWrite writer, AlterColumn alter) { + platformDdl.alterColumn(writer, alter); - if (isTrue(alter.isWithHistory()) && alter.getType() != null && historySupport == HistorySupport.TRIGGER_BASED) { - // mysql and sql server column type change allowing nulls in the history table column - regenerateHistoryTriggers(alter.getTableName(), HistoryTableUpdate.Change.ALTER, alter.getColumnName()); - AlterColumn alterHistoryColumn = new AlterColumn(); - alterHistoryColumn.setTableName(historyTable(alter.getTableName())); - alterHistoryColumn.setColumnName(alter.getColumnName()); - alterHistoryColumn.setType(alter.getType()); - String histColumnDdl = platformDdl.alterColumnBaseAttributes(alterHistoryColumn); - - // write the apply to history table - writer.apply().appendStatement(histColumnDdl); - } + if (isTrue(alter.isWithHistory()) && alter.getType() != null && historySupport == HistorySupport.TRIGGER_BASED) { + // mysql and sql server column type change allowing nulls in the history table column + regenerateHistoryTriggers(alter.getTableName(), HistoryTableUpdate.Change.ALTER, alter.getColumnName()); + AlterColumn alterHistoryColumn = new AlterColumn(); + alterHistoryColumn.setTableName(historyTable(alter.getTableName())); + alterHistoryColumn.setColumnName(alter.getColumnName()); + alterHistoryColumn.setType(alter.getType()); + platformDdl.alterColumn(writer, alterHistoryColumn); } - } - protected void alterColumnDefaultValue(DdlWrite writer, AlterColumn alter) { - writer.apply().appendStatement(platformDdl.alterColumnDefaultValue(alter.getTableName(), alter.getColumnName(), alter.getDefaultValue())); } protected void dropCheckConstraint(DdlWrite writer, AlterColumn alter, String constraintName) { @@ -817,23 +799,6 @@ public class BaseTableDdl implements TableDdl { writer.apply().appendStatement(platformDdl.alterTableAddCheckConstraint(alter.getTableName(), alter.getCheckConstraintName(), alter.getCheckConstraint())); } - protected void alterColumnNotnull(DdlWrite writer, AlterColumn alter) { - writer.apply().appendStatement(platformDdl.alterColumnNotnull(alter.getTableName(), alter.getColumnName(), alter.isNotnull())); - } - - protected void alterColumnType(DdlWrite writer, AlterColumn alter) { - String ddl = platformDdl.alterColumnType(alter.getTableName(), alter.getColumnName(), alter.getType()); - if (hasValue(ddl)) { - writer.apply().appendStatement(ddl); - if (isTrue(alter.isWithHistory()) && historySupport == HistorySupport.TRIGGER_BASED) { - regenerateHistoryTriggers(alter.getTableName(), HistoryTableUpdate.Change.ALTER, alter.getColumnName()); - // apply same type change to matching column in the history table - ddl = platformDdl.alterColumnType(historyTable(alter.getTableName()), alter.getColumnName(), alter.getType()); - writer.apply().appendStatement(ddl); - } - } - } - protected void alterColumnAddForeignKey(DdlWrite writer, AlterColumn alterColumn) { alterTableAddForeignKey(writer.getOptions(), writer.apply(), new WriteForeignKey(alterColumn)); } @@ -863,24 +828,24 @@ public class BaseTableDdl implements TableDdl { } - protected void alterTableDropColumn(DdlBuffer buffer, String tableName, String columnName) { - platformDdl.alterTableDropColumn(buffer, tableName, columnName); + protected void alterTableDropColumn(DdlWrite writer, String tableName, String columnName) { + platformDdl.alterTableDropColumn(writer, tableName, columnName); } - protected void alterTableAddColumn(DdlBuffer buffer, String tableName, Column column, boolean onHistoryTable, boolean withHistory) { + protected void alterTableAddColumn(DdlWrite writer, String tableName, Column column, boolean onHistoryTable, boolean withHistory) { DdlMigrationHelp help = new DdlMigrationHelp(tableName, column, withHistory); if (!onHistoryTable) { - help.writeBefore(buffer); + help.writeBefore(writer.apply()); } - platformDdl.alterTableAddColumn(buffer, tableName, column, onHistoryTable, help.getDefaultValue()); + platformDdl.alterTableAddColumn(writer, tableName, column, onHistoryTable, help.getDefaultValue()); final String comment = column.getComment(); if (comment != null && !comment.isEmpty()) { - platformDdl.addColumnComment(buffer, tableName, column.getName(), comment); + platformDdl.addColumnComment(writer.apply(), tableName, column.getName(), comment); } if (!onHistoryTable) { - help.writeAfter(buffer); + help.writeAfter(writer.apply()); } } diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/DbTriggerBasedHistoryDdl.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/DbTriggerBasedHistoryDdl.java index 5b34a08ea..252cd271b 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/DbTriggerBasedHistoryDdl.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/DbTriggerBasedHistoryDdl.java @@ -5,6 +5,7 @@ import io.ebean.config.DbConstraintNaming; import io.ebeaninternal.dbmigration.ddlgeneration.DdlBuffer; import io.ebeaninternal.dbmigration.ddlgeneration.DdlWrite; import io.ebeaninternal.dbmigration.migration.AddHistoryTable; +import io.ebeaninternal.dbmigration.migration.AlterColumn; import io.ebeaninternal.dbmigration.migration.DropHistoryTable; import io.ebeaninternal.dbmigration.model.MColumn; import io.ebeaninternal.dbmigration.model.MTable; @@ -241,8 +242,10 @@ public abstract class DbTriggerBasedHistoryDdl implements PlatformHistoryDdl { } protected void dropSysPeriodColumns(DdlBuffer buffer, String baseTableName) { - platformDdl.alterTableDropColumn(buffer, baseTableName, sysPeriodStart); - platformDdl.alterTableDropColumn(buffer, baseTableName, sysPeriodEnd); + DdlWrite writer = new DdlWrite(); + platformDdl.alterTableDropColumn(writer, baseTableName, sysPeriodStart); + platformDdl.alterTableDropColumn(writer, baseTableName, sysPeriodEnd); + buffer.append(writer.apply().getBuffer()); // Workaround - will be removed later } protected void appendInsertIntoHistory(DdlBuffer buffer, String historyTable, List columns) { diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/HanaTableDdl.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/HanaTableDdl.java index f15d7c718..2500ad179 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/HanaTableDdl.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/HanaTableDdl.java @@ -27,11 +27,6 @@ public class HanaTableDdl extends BaseTableDdl { } } - @Override - protected void alterColumnDefaultValue(DdlWrite writer, AlterColumn alter) { - // done in alterColumnBaseAttributes - } - @Override public void generate(DdlWrite writer, AddColumn addColumn) { String tableName = addColumn.getTableName(); @@ -54,7 +49,7 @@ public class HanaTableDdl extends BaseTableDdl { String historyTable = historyTable(tableName); List columns = addColumn.getColumn(); for (Column column : columns) { - alterTableAddColumn(writer.apply(), historyTable, column, true, true); + alterTableAddColumn(writer, historyTable, column, true, true); } historyDdl.enableSystemVersioning(writer.apply(), table.getName(), historyTable, false, this.generateUniqueDdl); @@ -91,10 +86,8 @@ public class HanaTableDdl extends BaseTableDdl { alterHistoryColumn.setCurrentType(alterColumn.getCurrentType()); alterHistoryColumn.setCurrentDefaultValue(alterColumn.getCurrentDefaultValue()); alterHistoryColumn.setCurrentNotnull(alterColumn.isCurrentNotnull()); - String histColumnDdl = platformDdl.alterColumnBaseAttributes(alterHistoryColumn); + platformDdl.alterColumn(writer, alterHistoryColumn); - // write the apply to history table - writer.apply().append(histColumnDdl).endOfStatement(); } historyDdl.enableSystemVersioning(writer.apply(), tableName, historyTable, false, this.generateUniqueDdl); @@ -121,7 +114,7 @@ public class HanaTableDdl extends BaseTableDdl { if (manageSystemVersioning) { // also drop from the history table String historyTable = historyTable(tableName); - alterTableDropColumn(writer.apply(), historyTable, dropColumn.getColumnName()); + alterTableDropColumn(writer, historyTable, dropColumn.getColumnName()); historyDdl.enableSystemVersioning(writer.apply(), tableName, historyTable, false, this.generateUniqueDdl); } diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/MySqlDdl.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/MySqlDdl.java index 91a3760c2..492584fd5 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/MySqlDdl.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/MySqlDdl.java @@ -3,6 +3,7 @@ package io.ebeaninternal.dbmigration.ddlgeneration.platform; import io.ebean.config.dbplatform.DatabasePlatform; import io.ebean.util.StringHelper; import io.ebeaninternal.dbmigration.ddlgeneration.DdlBuffer; +import io.ebeaninternal.dbmigration.ddlgeneration.DdlWrite; import io.ebeaninternal.dbmigration.migration.AlterColumn; import io.ebeaninternal.dbmigration.migration.Column; @@ -21,7 +22,7 @@ public class MySqlDdl extends PlatformDdl { public MySqlDdl(DatabasePlatform platform) { super(platform); - this.alterColumn = "modify"; + this.alterColumn = "alter"; this.dropUniqueConstraint = "drop index"; this.historyDdl = new MySqlHistoryDdl(); this.inlineComments = true; @@ -37,11 +38,11 @@ public class MySqlDdl extends PlatformDdl { } @Override - public void alterTableDropColumn(final DdlBuffer buffer, final String tableName, final String columnName) { + public void alterTableDropColumn(DdlWrite writer, String tableName, String columnName) { if (this.useMigrationStoredProcedures) { - buffer.append("CALL usp_ebean_drop_column('").append(tableName).append("', '").append(columnName).append("')").endOfStatement(); + writer.apply().append("CALL usp_ebean_drop_column('").append(tableName).append("', '").append(columnName).append("')").endOfStatement(); } else { - super.alterTableDropColumn(buffer, tableName, columnName); + super.alterTableDropColumn(writer, tableName, columnName); } } @@ -91,38 +92,33 @@ public class MySqlDdl extends PlatformDdl { } @Override - public String alterColumnType(String tableName, String columnName, String type) { - // can't alter itself - done in alterColumnBaseAttributes() - return null; - } - - @Override - public String alterColumnNotnull(String tableName, String columnName, boolean notnull) { - // can't alter itself - done in alterColumnBaseAttributes() - return null; - } - - @Override - public String alterColumnDefaultValue(String tableName, String columnName, String defaultValue) { - String suffix = DdlHelp.isDropDefault(defaultValue) ? columnDropDefault : columnSetDefault + " " + convertDefaultValue(defaultValue); - return "alter table " + tableName + " alter " + columnName + " " + suffix; - } - - @Override - public String alterColumnBaseAttributes(AlterColumn alter) { - if (alter.getType() == null && alter.isNotnull() == null) { - // No type change or notNull change - // defaultValue change already handled in alterColumnDefaultValue - return null; - } + public void alterColumn(DdlWrite writer, AlterColumn alter) { String tableName = alter.getTableName(); String columnName = alter.getColumnName(); - String type = alter.getType() != null ? alter.getType() : alter.getCurrentType(); - type = convert(type); - boolean notnull = (alter.isNotnull() != null) ? alter.isNotnull() : Boolean.TRUE.equals(alter.isCurrentNotnull()); - String notnullClause = notnull ? " not null" : ""; - return "alter table " + tableName + " modify " + columnName + " " + type + notnullClause; + if (alter.getType() == null && alter.isNotnull() == null) { + // No type change or notNull change -> handle default value change + if (hasValue(alter.getDefaultValue())) { + alterColumnDefault(writer, alter); + } + } else { + // we must regenerate whole statement -> read altered and current value + String type = alter.getType() != null ? alter.getType() : alter.getCurrentType(); + type = convert(type); + boolean notnull = (alter.isNotnull() != null) ? alter.isNotnull() : Boolean.TRUE.equals(alter.isCurrentNotnull()); + String defaultValue = alter.getDefaultValue() != null ? alter.getDefaultValue() : alter.getCurrentDefaultValue(); + + DdlBuffer buffer = writer.apply().append("alter table ").append(tableName) + .appendWithSpace("modify").appendWithSpace(columnName); + buffer.appendWithSpace(type); + if (notnull) { + buffer.append(" not null"); + } + if (hasValue(defaultValue) && !DdlHelp.isDropDefault(defaultValue)) { + buffer.append(" default ").append(convertDefaultValue(defaultValue)); + } + buffer.endOfStatement(); + } } @Override diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformDdl.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformDdl.java index 285e962fa..f439d366e 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformDdl.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformDdl.java @@ -538,10 +538,10 @@ public class PlatformDdl { return buffer.toString(); } - public void alterTableAddColumn(DdlBuffer buffer, String tableName, Column column, boolean onHistoryTable, String defaultValue) { + public void alterTableAddColumn(DdlWrite writer, String tableName, Column column, boolean onHistoryTable, String defaultValue) { String convertedType = convert(column.getType()); - + DdlBuffer buffer = writer.apply(); buffer.append("alter table ").append(tableName) .append(" ").append(addColumn).append(" ").append(column.getName()) .append(" ").append(convertedType); @@ -575,8 +575,9 @@ public class PlatformDdl { } - public void alterTableDropColumn(DdlBuffer buffer, String tableName, String columnName) { - buffer.append("alter table ").append(tableName).append(" ").append(dropColumn).append(" ").append(columnName) + public void alterTableDropColumn(DdlWrite writer, String tableName, String columnName) { + writer.apply().append("alter table ").append(tableName).append(" ") + .append(dropColumn).append(" ").append(columnName) .append(dropColumnSuffix).endOfStatement(); } @@ -592,22 +593,32 @@ public class PlatformDdl { /** * Alter a column type. *

- * Note that that MySql and SQL Server instead use alterColumnBaseAttributes() + * Note that that MySql, SQL Server, and HANA instead use alterColumn() *

*/ - public String alterColumnType(String tableName, String columnName, String type) { - return "alter table " + tableName + " " + alterColumn + " " + columnName + " " + columnSetType + convert(type) + alterColumnSuffix; + protected void alterColumnType(DdlWrite writer, AlterColumn alter) { + writer.apply().append("alter table ").append(alter.getTableName()) + .appendWithSpace(alterColumn).appendWithSpace(alter.getColumnName()) + .append(" ").append(columnSetType).append(convert(alter.getType())) + .endOfStatement(); } /** * Alter a column adding or removing the not null constraint. *

- * Note that that MySql, SQL Server, and HANA instead use alterColumnBaseAttributes() + * Note that that MySql, SQL Server, and HANA instead use alterColumn() *

*/ - public String alterColumnNotnull(String tableName, String columnName, boolean notnull) { - String suffix = notnull ? columnSetNotnull : columnSetNull; - return "alter table " + tableName + " " + alterColumn + " " + columnName + " " + suffix + alterColumnSuffix; + protected void alterColumnNotnull(DdlWrite writer, AlterColumn alter) { + + DdlBuffer buffer = writer.apply().append("alter table ").append(alter.getTableName()) + .appendWithSpace(alterColumn).appendWithSpace(alter.getColumnName()); + if (Boolean.TRUE.equals(alter.isNotnull())) { + buffer.appendWithSpace(columnSetNotnull); + } else { + buffer.appendWithSpace(columnSetNull); + } + buffer.endOfStatement(); } /** @@ -619,22 +630,41 @@ public class PlatformDdl { /** * Alter column setting the default value. + *

+ * Note that that MySql, SQL Server, and HANA instead use alterColumn() + *

*/ - public String alterColumnDefaultValue(String tableName, String columnName, String defaultValue) { - String suffix = DdlHelp.isDropDefault(defaultValue) ? columnDropDefault : columnSetDefault + " " + convertDefaultValue(defaultValue); - return "alter table " + tableName + " " + alterColumn + " " + columnName + " " + suffix + alterColumnSuffix; + protected void alterColumnDefault(DdlWrite writer, AlterColumn alter) { + DdlBuffer buffer = writer.apply().append("alter table ").append(alter.getTableName()) + .appendWithSpace(alterColumn).appendWithSpace(alter.getColumnName()); + if (DdlHelp.isDropDefault(alter.getDefaultValue())) { + buffer.appendWithSpace(columnDropDefault); + } else { + buffer.appendWithSpace(columnSetDefault).appendWithSpace(convertDefaultValue(alter.getDefaultValue())); + } + buffer.endOfStatement(); } /** - * Alter column setting both the type and not null constraint. + * Alter column setting (type, default value and not null constraint). *

- * Used by MySql, SQL Server, and HANA as these require both column attributes to be set together. + * Used by MySql, SQL Server, and HANA as these require all column attributes to + * be set together. *

*/ - public String alterColumnBaseAttributes(AlterColumn alter) { - // by default do nothing, only used by mysql, sql server, and HANA as they can only - // modify the column with the full column definition - return null; + public void alterColumn(DdlWrite writer, AlterColumn alter) { + + if (hasValue(alter.getType())) { + alterColumnType(writer, alter); + } + + if (hasValue(alter.getDefaultValue())) { + alterColumnDefault(writer, alter); + } + + if (alter.isNotnull() != null) { + alterColumnNotnull(writer, alter); + } } protected void appendColumns(String[] columns, StringBuilder buffer) { diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PostgresDdl.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PostgresDdl.java index f9bf55276..984333fbb 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PostgresDdl.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PostgresDdl.java @@ -2,6 +2,8 @@ package io.ebeaninternal.dbmigration.ddlgeneration.platform; import io.ebean.config.dbplatform.DatabasePlatform; import io.ebeaninternal.dbmigration.ddlgeneration.DdlBuffer; +import io.ebeaninternal.dbmigration.ddlgeneration.DdlWrite; +import io.ebeaninternal.dbmigration.migration.AlterColumn; /** * Postgres specific DDL. @@ -56,7 +58,13 @@ public class PostgresDdl extends PlatformDdl { } @Override - public String alterColumnType(String tableName, String columnName, String type) { - return super.alterColumnType(tableName, columnName, type) + " using " + columnName + "::" + convert(type); + protected void alterColumnType(DdlWrite writer, AlterColumn alter) { + String type = convert(alter.getType()); + + writer.apply().append("alter table ").append(alter.getTableName()) + .appendWithSpace(alterColumn).appendWithSpace(alter.getColumnName()) + .appendWithSpace(columnSetType).append(type) + .append(" using ").append(alter.getColumnName()).append("::").append(type) + .endOfStatement(); } } diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/SQLiteDdl.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/SQLiteDdl.java index 8db601cfd..2242721c7 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/SQLiteDdl.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/SQLiteDdl.java @@ -3,6 +3,8 @@ package io.ebeaninternal.dbmigration.ddlgeneration.platform; import io.ebean.config.dbplatform.DatabasePlatform; import io.ebeaninternal.dbmigration.ddlgeneration.DdlBuffer; import io.ebeaninternal.dbmigration.ddlgeneration.DdlOptions; +import io.ebeaninternal.dbmigration.ddlgeneration.DdlWrite; +import io.ebeaninternal.dbmigration.migration.AlterColumn; /** * SQLite platform specific DDL. @@ -59,18 +61,21 @@ public class SQLiteDdl extends PlatformDdl { } @Override - public String alterColumnDefaultValue(String tableName, String columnName, String defaultValue) { - return "-- not supported: " + super.alterColumnDefaultValue(tableName, columnName, defaultValue); + public void alterColumnType(DdlWrite writer, AlterColumn alter) { + writer.apply().append("-- not supported: "); + super.alterColumnType(writer, alter); } @Override - public String alterColumnType(String tableName, String columnName, String type) { - return "-- not supported: " + super.alterColumnType(tableName, columnName, type); + public void alterColumnDefault(DdlWrite writer, AlterColumn alter) { + writer.apply().append("-- not supported: "); + super.alterColumnDefault(writer, alter); } @Override - public String alterColumnNotnull(String tableName, String columnName, boolean notnull) { - return "-- not supported: " + super.alterColumnNotnull(tableName, columnName, notnull); + public void alterColumnNotnull(DdlWrite writer, AlterColumn alter) { + writer.apply().append("-- not supported: "); + super.alterColumnNotnull(writer, alter); } } diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/SqlServerDdl.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/SqlServerDdl.java index 62b86be4a..0cd256c30 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/SqlServerDdl.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/SqlServerDdl.java @@ -11,6 +11,12 @@ import io.ebeaninternal.dbmigration.migration.AlterColumn; */ public class SqlServerDdl extends PlatformDdl { + private static final String CONSTRAINT = "C"; + private static final String UNIQUE_CONSTRAINT = "UQ"; + private static final String USER_TABLE = "U"; + private static final String FOREIGN_KEY = "F"; + private static final String SEQUENCE_OBJECT = "SO"; + public SqlServerDdl(DatabasePlatform platform) { super(platform); this.identitySuffix = " identity(1,1)"; @@ -31,12 +37,7 @@ public class SqlServerDdl extends PlatformDdl { @Override public String dropTable(String tableName) { - StringBuilder buffer = new StringBuilder(); - buffer.append("IF OBJECT_ID('"); - buffer.append(tableName); - buffer.append("', 'U') IS NOT NULL drop table "); - buffer.append(tableName); - return buffer.toString(); + return ifObjectExists(tableName, USER_TABLE) + "drop table " + tableName; } @Override @@ -46,12 +47,12 @@ public class SqlServerDdl extends PlatformDdl { if (pos != -1) { objectId = tableName.substring(0, pos + 1) + fkName; } - return "IF OBJECT_ID('" + objectId + "', 'F') IS NOT NULL " + super.alterTableDropForeignKey(tableName, fkName); + return ifObjectExists(objectId, FOREIGN_KEY) + super.alterTableDropForeignKey(tableName, fkName); } @Override public String dropSequence(String sequenceName) { - return "IF OBJECT_ID('" + sequenceName + "', 'SO') IS NOT NULL drop sequence " + sequenceName; + return ifObjectExists(sequenceName, SEQUENCE_OBJECT) + "drop sequence " + sequenceName; } @Override @@ -71,12 +72,11 @@ public class SqlServerDdl extends PlatformDdl { throw new NullPointerException(); } // issues#233 - String start = "create unique nonclustered index " + uqName + " on " + tableName + "("; - StringBuilder sb = new StringBuilder(start); - + StringBuilder sb = new StringBuilder(256); + sb.append("create unique nonclustered index ").append(uqName).append(" on ").append(tableName).append('('); for (int i = 0; i < columns.length; i++) { if (i > 0) { - sb.append(","); + sb.append(','); } sb.append(columns[i]); } @@ -91,11 +91,9 @@ public class SqlServerDdl extends PlatformDdl { @Override public String alterTableDropConstraint(String tableName, String constraintName) { - StringBuilder sb = new StringBuilder(); - sb.append("IF (OBJECT_ID('").append(constraintName).append("', 'C') IS NOT NULL) "); - sb.append(super.alterTableDropConstraint(tableName, constraintName)); - return sb.toString(); + return ifObjectExists(maxConstraintName(constraintName), CONSTRAINT) + super.alterTableDropConstraint(tableName, constraintName); } + /** * Drop a unique constraint from the table (Sometimes this is an index). */ @@ -103,10 +101,12 @@ public class SqlServerDdl extends PlatformDdl { public String alterTableDropUniqueConstraint(String tableName, String uniqueConstraintName) { StringBuilder sb = new StringBuilder(); sb.append(dropIndex(uniqueConstraintName, tableName)).append(";\n"); - sb.append("IF (OBJECT_ID('").append(maxConstraintName(uniqueConstraintName)).append("', 'UQ') IS NOT NULL) "); - sb.append(super.alterTableDropUniqueConstraint(tableName, uniqueConstraintName)); + + sb.append(ifObjectExists(maxConstraintName(uniqueConstraintName), UNIQUE_CONSTRAINT)) + .append(super.alterTableDropUniqueConstraint(tableName, uniqueConstraintName)); return sb.toString(); } + /** * Generate and return the create sequence DDL. */ @@ -133,50 +133,57 @@ public class SqlServerDdl extends PlatformDdl { } @Override - public String alterColumnDefaultValue(String tableName, String columnName, String defaultValue) { + protected void alterColumnDefault(DdlWrite writer, AlterColumn alter) { // Unfortunately, the SqlServer creates default values with a random name. // You can specify a name in DDL, but this does not work in conjunction with // temporal tables in certain cases. So we have to delete the constraint with // a rather complex statement. - StringBuilder sb = new StringBuilder(); - if (DdlHelp.isDropDefault(defaultValue)) { - sb.append("EXEC usp_ebean_drop_default_constraint ").append(tableName).append(", ").append(columnName); - } else { - sb.append("alter table ").append(tableName); - sb.append(" add default ").append(convertDefaultValue(defaultValue)).append(" for ").append(columnName); - } - return sb.toString(); - } - - @Override - public String alterColumnBaseAttributes(AlterColumn alter) { - if (alter.getType() == null && alter.isNotnull() == null) { - // No type change or notNull change - // defaultValue change already handled in alterColumnDefaultValue - return null; - } String tableName = alter.getTableName(); String columnName = alter.getColumnName(); - String type = alter.getType() != null ? alter.getType() : alter.getCurrentType(); - type = convert(type); - boolean notnull = (alter.isNotnull() != null) ? alter.isNotnull() : Boolean.TRUE.equals(alter.isCurrentNotnull()); - String notnullClause = notnull ? " not null" : ""; - - return "alter table " + tableName + " " + alterColumn + " " + columnName + " " + type + notnullClause; + String defaultValue = alter.getDefaultValue(); + if (DdlHelp.isDropDefault(defaultValue)) { + writer.apply().appendStatement(execUspDropDefaultConstraint(tableName, columnName)); + } else { + writer.apply().appendStatement(execUspDropDefaultConstraint(tableName, columnName)); + setDefaultValue(writer, tableName, columnName, defaultValue); + } } @Override - public String alterColumnType(String tableName, String columnName, String type) { + public void alterColumn(DdlWrite writer, AlterColumn alter) { + String tableName = alter.getTableName(); + String columnName = alter.getColumnName(); + if (alter.getType() == null && alter.isNotnull() == null) { + // No type change or notNull change + if (hasValue(alter.getDefaultValue())) { + alterColumnDefault(writer, alter); + } + } else { + // we must regenerate whole statement -> read altered and current value + String type = alter.getType() != null ? alter.getType() : alter.getCurrentType(); + type = convert(type); + boolean notnull = (alter.isNotnull() != null) ? alter.isNotnull() : Boolean.TRUE.equals(alter.isCurrentNotnull()); + String defaultValue = alter.getDefaultValue() != null ? alter.getDefaultValue() : alter.getCurrentDefaultValue(); + DdlBuffer buffer = writer.apply(); + if (hasValue(defaultValue)) { + // default value present -> drop default constraint before altering + buffer.appendStatement(execUspDropDefaultConstraint(tableName, columnName)); + } - // can't alter itself - done in alterColumnBaseAttributes() - return null; - } + buffer = writer.apply().append("alter table ").append(tableName) + .appendWithSpace(alterColumn).appendWithSpace(columnName); + buffer.appendWithSpace(type); + if (notnull) { + buffer.append(" not null"); + } - @Override - public String alterColumnNotnull(String tableName, String columnName, boolean notnull) { + buffer.endOfStatement(); - // can't alter itself - done in alterColumnBaseAttributes() - return null; + // re add - default constraint + if (hasValue(defaultValue) && !DdlHelp.isDropDefault(defaultValue)) { + setDefaultValue(writer, tableName, columnName, defaultValue); + } + } } /** @@ -202,9 +209,8 @@ public class SqlServerDdl extends PlatformDdl { * (constraints, default values, indices and foreign keys). That's why we call a user stored procedure here */ @Override - public void alterTableDropColumn(DdlBuffer buffer, String tableName, String columnName) { - - buffer.append("EXEC usp_ebean_drop_column ").append(tableName).append(", ").append(columnName).endOfStatement(); + public void alterTableDropColumn(DdlWrite writer, String tableName, String columnName) { + writer.apply().append("EXEC usp_ebean_drop_column ").append(tableName).append(", ").append(columnName).endOfStatement(); } /** @@ -246,4 +252,18 @@ public class SqlServerDdl extends PlatformDdl { .endOfStatement(); } + private String ifObjectExists(String object, String objectType) { + return "IF OBJECT_ID('" + object + "', '" + objectType + "') IS NOT NULL "; + } + + private String execUspDropDefaultConstraint(String tableName, String columnName) { + return "EXEC usp_ebean_drop_default_constraint " + tableName + ", " + columnName; + } + + private void setDefaultValue(DdlWrite writer, String tableName, String columnName, String defaultValue) { + writer.apply().append("alter table ").append(tableName) + .append(" add default ").append(convertDefaultValue(defaultValue)).append(" for ").append(columnName) + .endOfStatement(); + } + } diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/SqlServerHistoryDdl.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/SqlServerHistoryDdl.java index f82ea20da..812389c2d 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/SqlServerHistoryDdl.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/SqlServerHistoryDdl.java @@ -4,6 +4,7 @@ import io.ebean.config.DatabaseConfig; import io.ebeaninternal.dbmigration.ddlgeneration.DdlBuffer; import io.ebeaninternal.dbmigration.ddlgeneration.DdlWrite; import io.ebeaninternal.dbmigration.migration.AddHistoryTable; +import io.ebeaninternal.dbmigration.migration.AlterColumn; import io.ebeaninternal.dbmigration.migration.DropHistoryTable; import io.ebeaninternal.dbmigration.model.MTable; @@ -62,9 +63,16 @@ public class SqlServerHistoryDdl implements PlatformHistoryDdl { DdlBuffer apply = writer.applyHistoryView(); apply.append("-- dropping history support for ").append(baseTable).endOfStatement(); // drop default constraints + DdlWrite tmpWriter = new DdlWrite(); + AlterColumn alter = new AlterColumn(); + alter.setTableName(baseTable); + alter.setDefaultValue(DdlHelp.DROP_DEFAULT); + alter.setColumnName(systemPeriodStart); + platformDdl.alterColumn(tmpWriter, alter); + alter.setColumnName(systemPeriodEnd); + platformDdl.alterColumn(tmpWriter, alter); + apply.append(tmpWriter.apply().getBuffer()); // workaround - will be refactored later - apply.append(platformDdl.alterColumnDefaultValue(baseTable, systemPeriodStart, DdlHelp.DROP_DEFAULT)).endOfStatement(); - apply.append(platformDdl.alterColumnDefaultValue(baseTable, systemPeriodEnd, DdlHelp.DROP_DEFAULT)).endOfStatement(); // switch of versioning & period apply.append("alter table ").append(baseTable).append(" set (system_versioning = off)").endOfStatement(); apply.append("alter table ").append(baseTable).append(" drop period for system_time").endOfStatement(); diff --git a/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/BaseTableDdlTest.java b/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/BaseTableDdlTest.java index 737916367..58e328a64 100644 --- a/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/BaseTableDdlTest.java +++ b/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/BaseTableDdlTest.java @@ -55,7 +55,7 @@ public class BaseTableDdlTest { column.setName("col_name"); column.setType("varchar(20)"); - ddlGen.alterTableAddColumn(writer.apply(), "mytable", column, false, false); + ddlGen.alterTableAddColumn(writer, "mytable", column, false, false); String ddl = writer.apply().getBuffer(); assertThat(ddl).contains("alter table mytable add col_name varchar2(20)"); @@ -72,7 +72,7 @@ public class BaseTableDdlTest { column.setName("col_name"); column.setType("varchar(20)"); - ddlGen.alterTableAddColumn(writer.apply(), "mytable", column, false, false); + ddlGen.alterTableAddColumn(writer, "mytable", column, false, false); String ddl = writer.apply().getBuffer(); assertThat(ddl).contains("alter table mytable add column col_name String"); @@ -105,7 +105,7 @@ public class BaseTableDdlTest { column.setComment("some comment"); column.setType("int"); - ddl.alterTableAddColumn(writer.apply(), "my_table", column, false, false); + ddl.alterTableAddColumn(writer, "my_table", column, false, false); assertEquals( "alter table my_table add column my_column int;\n" + "comment on column my_table.my_column is 'some comment';\n", diff --git a/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/HanaDdlTest.java b/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/HanaDdlTest.java index 861e37d63..4eb4e91f9 100644 --- a/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/HanaDdlTest.java +++ b/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/HanaDdlTest.java @@ -13,7 +13,7 @@ public class HanaDdlTest { public void alterTableDropColumn() { HanaColumnStoreDdl ddl = new HanaColumnStoreDdl(new HanaPlatform()); DdlWrite writer = new DdlWrite(); - ddl.alterTableDropColumn(writer.apply(), "my_table", "my_column"); + ddl.alterTableDropColumn(writer, "my_table", "my_column"); assertEquals("CALL usp_ebean_drop_column('my_table', 'my_column');\n", writer.apply().getBuffer()); } @@ -33,7 +33,7 @@ public class HanaDdlTest { column.setCheckConstraintName("check_constraint"); column.setHistoryExclude(Boolean.TRUE); column.setIdentity(Boolean.TRUE); - ddl.alterTableAddColumn(writer.apply(), "my_table", column, false, "1"); + ddl.alterTableAddColumn(writer, "my_table", column, false, "1"); assertEquals("alter table my_table add ( my_column int default 1 not null);\nalter table my_table add constraint check_constraint CHECK(my_column > 0);\n", writer.apply().getBuffer()); } } diff --git a/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformDdl_AlterColumnTest.java b/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformDdl_AlterColumnTest.java index e6cbea55c..67a39f011 100644 --- a/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformDdl_AlterColumnTest.java +++ b/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformDdl_AlterColumnTest.java @@ -3,6 +3,7 @@ package io.ebeaninternal.dbmigration.ddlgeneration.platform; import io.ebean.DB; import io.ebean.config.DatabaseConfig; import io.ebean.config.dbplatform.IdType; +import io.ebean.config.dbplatform.db2.DB2LuwPlatform; import io.ebean.config.dbplatform.h2.H2Platform; import io.ebean.config.dbplatform.hana.HanaPlatform; import io.ebean.config.dbplatform.mysql.MySqlPlatform; @@ -14,12 +15,12 @@ import io.ebeaninternal.dbmigration.ddlgeneration.PlatformDdlBuilder; import io.ebeaninternal.dbmigration.migration.AlterColumn; import io.ebeaninternal.dbmigration.migration.AlterForeignKey; import io.ebeaninternal.dbmigration.migration.Column; + +import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.Test; -import static org.assertj.core.api.Assertions.assertThat; -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertNull; -import static org.junit.jupiter.api.Assertions.assertTrue; + +import org.assertj.core.api.SoftAssertions; public class PlatformDdl_AlterColumnTest { @@ -31,229 +32,359 @@ public class PlatformDdl_AlterColumnTest { private final PlatformDdl oraDdl = PlatformDdlBuilder.create(new OraclePlatform()); private final PlatformDdl sqlServerDdl = PlatformDdlBuilder.create(new SqlServer17Platform()); private final PlatformDdl hanaDdl = PlatformDdlBuilder.create(new HanaPlatform()); + private final PlatformDdl db2Ddl = PlatformDdlBuilder.create(new DB2LuwPlatform()); + + private final SoftAssertions softly = new SoftAssertions(); { DatabaseConfig serverConfig = DB.getDefault().pluginApi().config(); sqlServerDdl.configure(serverConfig); } - AlterColumn alterNotNull() { - AlterColumn alterColumn = new AlterColumn(); - alterColumn.setTableName("mytab"); - alterColumn.setColumnName("acol"); - alterColumn.setCurrentType("varchar(5)"); - alterColumn.setNotnull(Boolean.TRUE); - - return alterColumn; + @AfterEach + void assertAll() { + softly.assertAll(); } @Test public void convertArrayType_default() { - assertThat(mysqlDdl.convertArrayType("varchar[](90)")).isEqualTo("varchar(90)"); - assertThat(mysqlDdl.convertArrayType("integer[](60)")).isEqualTo("varchar(60)"); - assertThat(mysqlDdl.convertArrayType("varchar[]")).isEqualTo("varchar(1000)"); - assertThat(mysqlDdl.convertArrayType("integer[]")).isEqualTo("varchar(1000)"); + softly.assertThat(mysqlDdl.convertArrayType("varchar[](90)")).isEqualTo("varchar(90)"); + softly.assertThat(mysqlDdl.convertArrayType("integer[](60)")).isEqualTo("varchar(60)"); + softly.assertThat(mysqlDdl.convertArrayType("varchar[]")).isEqualTo("varchar(1000)"); + softly.assertThat(mysqlDdl.convertArrayType("integer[]")).isEqualTo("varchar(1000)"); } @Test public void convertArrayType_h2() { if (useV1Syntax) { - assertThat(h2Ddl.convertArrayType("varchar[](90)")).isEqualTo("array"); - assertThat(h2Ddl.convertArrayType("integer[](60)")).isEqualTo("array"); - assertThat(h2Ddl.convertArrayType("varchar[]")).isEqualTo("array"); - assertThat(h2Ddl.convertArrayType("integer[]")).isEqualTo("array"); + softly.assertThat(h2Ddl.convertArrayType("varchar[](90)")).isEqualTo("array"); + softly.assertThat(h2Ddl.convertArrayType("integer[](60)")).isEqualTo("array"); + softly.assertThat(h2Ddl.convertArrayType("varchar[]")).isEqualTo("array"); + softly.assertThat(h2Ddl.convertArrayType("integer[]")).isEqualTo("array"); } else { - assertThat(h2Ddl.convertArrayType("varchar[](90)")).isEqualTo("varchar array"); - assertThat(h2Ddl.convertArrayType("integer[](60)")).isEqualTo("integer array"); - assertThat(h2Ddl.convertArrayType("varchar[]")).isEqualTo("varchar array"); - assertThat(h2Ddl.convertArrayType("integer[]")).isEqualTo("integer array"); + softly.assertThat(h2Ddl.convertArrayType("varchar[](90)")).isEqualTo("varchar array"); + softly.assertThat(h2Ddl.convertArrayType("integer[](60)")).isEqualTo("integer array"); + softly.assertThat(h2Ddl.convertArrayType("varchar[]")).isEqualTo("varchar array"); + softly.assertThat(h2Ddl.convertArrayType("integer[]")).isEqualTo("integer array"); } } @Test public void convertArrayType_postgres() { - assertThat(pgDdl.convertArrayType("varchar[](90)")).isEqualTo("varchar[]"); - assertThat(pgDdl.convertArrayType("integer[](60)")).isEqualTo("integer[]"); - assertThat(pgDdl.convertArrayType("varchar[]")).isEqualTo("varchar[]"); - assertThat(pgDdl.convertArrayType("integer[]")).isEqualTo("integer[]"); + softly.assertThat(pgDdl.convertArrayType("varchar[](90)")).isEqualTo("varchar[]"); + softly.assertThat(pgDdl.convertArrayType("integer[](60)")).isEqualTo("integer[]"); + softly.assertThat(pgDdl.convertArrayType("varchar[]")).isEqualTo("varchar[]"); + softly.assertThat(pgDdl.convertArrayType("integer[]")).isEqualTo("integer[]"); } @Test public void convertArrayType_hana() { - assertThat(hanaDdl.convertArrayType("varchar[](90)")).isEqualTo("nvarchar(255) array(90)"); - assertThat(hanaDdl.convertArrayType("integer[](60)")).isEqualTo("integer array(60)"); - assertThat(hanaDdl.convertArrayType("varchar[]")).isEqualTo("nvarchar(255) array"); - assertThat(hanaDdl.convertArrayType("integer[]")).isEqualTo("integer array"); + softly.assertThat(hanaDdl.convertArrayType("varchar[](90)")).isEqualTo("nvarchar(255) array(90)"); + softly.assertThat(hanaDdl.convertArrayType("integer[](60)")).isEqualTo("integer array(60)"); + softly.assertThat(hanaDdl.convertArrayType("varchar[]")).isEqualTo("nvarchar(255) array"); + softly.assertThat(hanaDdl.convertArrayType("integer[]")).isEqualTo("integer array"); } @Test public void testAlterColumnBaseAttributes() { - AlterColumn alterColumn = alterNotNull(); - assertNull(h2Ddl.alterColumnBaseAttributes(alterColumn)); - assertNull(pgDdl.alterColumnBaseAttributes(alterColumn)); - assertNull(oraDdl.alterColumnBaseAttributes(alterColumn)); + AlterColumn alter = new AlterColumn(); + alter.setTableName("mytab"); + alter.setColumnName("acol"); + alter.setCurrentType("varchar(5)"); + alter.setCurrentDefaultValue("'ho'"); + alter.setCurrentNotnull(Boolean.FALSE); - String sql = mysqlDdl.alterColumnBaseAttributes(alterColumn); - assertEquals("alter table mytab modify acol varchar(5) not null", sql); + // alter all attributes + alter.setNotnull(Boolean.TRUE); // -> alter to not null + alter.setDefaultValue("'hi'"); // and set default + alter.setType("varchar(50)"); // and alter type - sql = sqlServerDdl.alterColumnBaseAttributes(alterColumn); - assertEquals("alter table mytab alter column acol nvarchar(5) not null", sql); + String sql = alterColumn(h2Ddl, alter); + softly.assertThat(sql).isEqualTo("alter table mytab alter column acol varchar(50);\n" + + "alter table mytab alter column acol set default 'hi';\n" + + "alter table mytab alter column acol set not null;\n"); - sql = hanaDdl.alterColumnBaseAttributes(alterColumn); - assertEquals("alter table mytab alter ( acol nvarchar(5) not null)", sql); + sql = alterColumn(pgDdl, alter); + softly.assertThat(sql).isEqualTo("alter table mytab alter column acol type varchar(50) using acol::varchar(50);\n" + + "alter table mytab alter column acol set default 'hi';\n" + + "alter table mytab alter column acol set not null;\n"); - alterColumn.setNotnull(Boolean.FALSE); - sql = mysqlDdl.alterColumnBaseAttributes(alterColumn); - assertEquals("alter table mytab modify acol varchar(5)", sql); + sql = alterColumn(oraDdl, alter); + softly.assertThat(sql).isEqualTo("alter table mytab modify acol varchar2(50);\n" + + "alter table mytab modify acol default 'hi';\n" + + "alter table mytab modify acol not null;\n"); - sql = hanaDdl.alterColumnBaseAttributes(alterColumn); - assertEquals("alter table mytab alter ( acol nvarchar(5))", sql); + sql = alterColumn(mysqlDdl, alter); + softly.assertThat(sql).isEqualTo("alter table mytab modify acol varchar(50) not null default 'hi';\n"); - alterColumn.setNotnull(null); - alterColumn.setType("varchar(100)"); + sql = alterColumn(sqlServerDdl, alter); + softly.assertThat(sql).isEqualTo("EXEC usp_ebean_drop_default_constraint mytab, acol;\n" + + "alter table mytab alter column acol nvarchar(50) not null;\n" + + "alter table mytab add default 'hi' for acol;\n"); - sql = mysqlDdl.alterColumnBaseAttributes(alterColumn); - assertEquals("alter table mytab modify acol varchar(100)", sql); + sql = alterColumn(hanaDdl, alter); + softly.assertThat(sql).isEqualTo("alter table mytab alter ( acol nvarchar(50) default 'hi' not null);\n"); - sql = hanaDdl.alterColumnBaseAttributes(alterColumn); - assertEquals("alter table mytab alter ( acol nvarchar(100))", sql); + sql = alterColumn(db2Ddl, alter); + softly.assertThat(sql).isEqualTo("alter table mytab alter column acol set data type varchar(50);\n" + + "alter table mytab alter column acol set default 'hi';\n" + + "alter table mytab alter column acol set not null;\n"); - alterColumn.setCurrentNotnull(Boolean.TRUE); - sql = mysqlDdl.alterColumnBaseAttributes(alterColumn); - assertEquals("alter table mytab modify acol varchar(100) not null", sql); + // + alter.setCurrentNotnull(Boolean.TRUE); + alter.setNotnull(Boolean.FALSE); + alter.setDefaultValue("DROP DEFAULT"); + alter.setType(null); // do not alter type + + sql = alterColumn(h2Ddl, alter); + softly.assertThat(sql).isEqualTo("alter table mytab alter column acol drop default;\n" + + "alter table mytab alter column acol set null;\n"); + + sql = alterColumn(pgDdl, alter); + softly.assertThat(sql).isEqualTo("alter table mytab alter column acol drop default;\n" + + "alter table mytab alter column acol drop not null;\n"); + + sql = alterColumn(oraDdl, alter); + softly.assertThat(sql).isEqualTo("alter table mytab modify acol default null;\n" + + "alter table mytab modify acol null;\n"); + + sql = alterColumn(mysqlDdl, alter); + softly.assertThat(sql).isEqualTo("alter table mytab modify acol varchar(5);\n"); + + sql = alterColumn(sqlServerDdl, alter); + softly.assertThat(sql).isEqualTo("EXEC usp_ebean_drop_default_constraint mytab, acol;\n" + + "alter table mytab alter column acol nvarchar(5);\n"); + + sql = alterColumn(hanaDdl, alter); + softly.assertThat(sql).isEqualTo("alter table mytab alter ( acol nvarchar(5) default null);\n"); + + sql = alterColumn(db2Ddl, alter); + softly.assertThat(sql).isEqualTo("alter table mytab alter column acol drop default;\n" + + "alter table mytab alter column acol drop not null;\n"); - sql = hanaDdl.alterColumnBaseAttributes(alterColumn); - assertEquals("alter table mytab alter ( acol nvarchar(100) not null)", sql); } @Test public void testAlterColumnType() { - String sql = h2Ddl.alterColumnType("mytab", "acol", "varchar(20)"); - assertEquals("alter table mytab alter column acol varchar(20)", sql); + AlterColumn alter = new AlterColumn(); + alter.setTableName("mytab"); + alter.setColumnName("acol"); + alter.setCurrentType("integer"); + alter.setType("varchar(20)"); - sql = pgDdl.alterColumnType("mytab", "acol", "varchar(20)"); - assertEquals("alter table mytab alter column acol type varchar(20) using acol::varchar(20)", sql); - sql = pgDdl.alterColumnType("mytab", "acol", "bigint"); - assertEquals("alter table mytab alter column acol type bigint using acol::bigint", sql); + String sql = alterColumn(h2Ddl, alter); + softly.assertThat(sql).isEqualTo("alter table mytab alter column acol varchar(20);\n"); - sql = oraDdl.alterColumnType("mytab", "acol", "varchar(20)"); - assertEquals("alter table mytab modify acol varchar2(20)", sql); + sql = alterColumn(pgDdl, alter); + softly.assertThat(sql).isEqualTo("alter table mytab alter column acol type varchar(20) using acol::varchar(20);\n"); - sql = mysqlDdl.alterColumnType("mytab", "acol", "varchar(20)"); - assertNull(sql); + sql = alterColumn(oraDdl, alter); + softly.assertThat(sql).isEqualTo("alter table mytab modify acol varchar2(20);\n"); - sql = sqlServerDdl.alterColumnType("mytab", "acol", "varchar(20)"); - assertNull(sql); + sql = alterColumn(mysqlDdl, alter); + softly.assertThat(sql).isEqualTo("alter table mytab modify acol varchar(20);\n"); + + sql = alterColumn(sqlServerDdl, alter); + softly.assertThat(sql).isEqualTo("alter table mytab alter column acol nvarchar(20);\n"); + + sql = alterColumn(hanaDdl, alter); + softly.assertThat(sql).isEqualTo("alter table mytab alter ( acol nvarchar(20));\n"); + + sql = alterColumn(db2Ddl, alter); + softly.assertThat(sql).isEqualTo("alter table mytab alter column acol set data type varchar(20);\n"); + + alter.setType("bigint"); + sql = alterColumn(pgDdl, alter); + softly.assertThat(sql).isEqualTo("alter table mytab alter column acol type bigint using acol::bigint;\n"); + + alter.setCurrentType("bigint"); + alter.setType("integer"); + sql = alterColumn(hanaDdl, alter); + softly.assertThat(sql).isEqualTo("alter table mytab alter ( acol decimal );\n" + + "alter table mytab alter ( acol integer);\n"); + + alter.setCurrentType("varchar(20)"); + alter.setType("varchar(10)"); + sql = alterColumn(hanaDdl, alter); + softly.assertThat(sql).isEqualTo("alter table mytab alter ( acol nclob);\n" + + "alter table mytab alter ( acol nvarchar(10));\n"); - sql = hanaDdl.alterColumnType("mytab", "acol", "varchar(20)"); - assertNull(sql); } @Test public void testAlterColumnNotnull() { + AlterColumn alter = new AlterColumn(); + alter.setTableName("mytab"); + alter.setColumnName("acol"); + alter.setCurrentType("varchar(20)"); + alter.setCurrentNotnull(Boolean.FALSE); + alter.setNotnull(Boolean.TRUE); - String sql = h2Ddl.alterColumnNotnull("mytab", "acol", true); - assertEquals("alter table mytab alter column acol set not null", sql); + String sql = alterColumn(h2Ddl, alter); + softly.assertThat(sql).isEqualTo("alter table mytab alter column acol set not null;\n"); - sql = pgDdl.alterColumnNotnull("mytab", "acol", true); - assertEquals("alter table mytab alter column acol set not null", sql); + sql = alterColumn(pgDdl, alter); + softly.assertThat(sql).isEqualTo("alter table mytab alter column acol set not null;\n"); - sql = oraDdl.alterColumnNotnull("mytab", "acol", true); - assertEquals("alter table mytab modify acol not null", sql); + sql = alterColumn(oraDdl, alter); + softly.assertThat(sql).isEqualTo("alter table mytab modify acol not null;\n"); - sql = mysqlDdl.alterColumnNotnull("mytab", "acol", true); - assertNull(sql); + sql = alterColumn(mysqlDdl, alter); + softly.assertThat(sql).isEqualTo("alter table mytab modify acol varchar(20) not null;\n"); - sql = sqlServerDdl.alterColumnNotnull("mytab", "acol", true); - assertNull(sql); + sql = alterColumn(sqlServerDdl, alter); + softly.assertThat(sql).isEqualTo("alter table mytab alter column acol nvarchar(20) not null;\n"); + + sql = alterColumn(hanaDdl, alter); + softly.assertThat(sql).isEqualTo("alter table mytab alter ( acol nvarchar(20) not null);\n"); + + sql = alterColumn(db2Ddl, alter); + softly.assertThat(sql).isEqualTo("alter table mytab alter column acol set not null;\n"); - sql = hanaDdl.alterColumnNotnull("mytab", "acol", true); - assertNull(sql); } @Test public void testAlterColumnNull() { - String sql = h2Ddl.alterColumnNotnull("mytab", "acol", false); - assertEquals("alter table mytab alter column acol set null", sql); + AlterColumn alter = new AlterColumn(); + alter.setTableName("mytab"); + alter.setColumnName("acol"); + alter.setCurrentType("varchar(20)"); + alter.setCurrentDefaultValue("'hi'"); + alter.setCurrentNotnull(Boolean.TRUE); - sql = pgDdl.alterColumnNotnull("mytab", "acol", false); - assertEquals("alter table mytab alter column acol drop not null", sql); + alter.setNotnull(Boolean.FALSE); + String sql = alterColumn(h2Ddl, alter); + softly.assertThat(sql).isEqualTo("alter table mytab alter column acol set null;\n"); - sql = oraDdl.alterColumnNotnull("mytab", "acol", false); - assertEquals("alter table mytab modify acol null", sql); + sql = alterColumn(pgDdl, alter); + softly.assertThat(sql).isEqualTo("alter table mytab alter column acol drop not null;\n"); - sql = mysqlDdl.alterColumnNotnull("mytab", "acol", false); - assertNull(sql); + sql = alterColumn(oraDdl, alter); + softly.assertThat(sql).isEqualTo("alter table mytab modify acol null;\n"); - sql = sqlServerDdl.alterColumnNotnull("mytab", "acol", false); - assertNull(sql); + sql = alterColumn(mysqlDdl, alter); + softly.assertThat(sql).isEqualTo("alter table mytab modify acol varchar(20) default 'hi';\n"); - sql = hanaDdl.alterColumnNotnull("mytab", "acol", false); - assertNull(sql); + sql = alterColumn(sqlServerDdl, alter); + softly.assertThat(sql).isEqualTo("EXEC usp_ebean_drop_default_constraint mytab, acol;\n" + + "alter table mytab alter column acol nvarchar(20);\n" + + "alter table mytab add default 'hi' for acol;\n"); + + sql = alterColumn(hanaDdl, alter); + softly.assertThat(sql).isEqualTo("alter table mytab alter ( acol nvarchar(20) default 'hi');\n"); + + sql = alterColumn(db2Ddl, alter); + softly.assertThat(sql).isEqualTo("alter table mytab alter column acol drop not null;\n"); } @Test - public void testAlterColumnDefaultValue() { + public void testAlterColumnAddDefaultValue() { + AlterColumn alter = new AlterColumn(); + alter.setTableName("mytab"); + alter.setColumnName("acol"); + alter.setCurrentType("varchar(20)"); + alter.setCurrentNotnull(Boolean.TRUE); + alter.setDefaultValue("'hi'"); - String sql = h2Ddl.alterColumnDefaultValue("mytab", "acol", "'hi'"); - assertEquals("alter table mytab alter column acol set default 'hi'", sql); + String sql = alterColumn(h2Ddl, alter); + softly.assertThat(sql).isEqualTo("alter table mytab alter column acol set default 'hi';\n"); - sql = pgDdl.alterColumnDefaultValue("mytab", "acol", "'hi'"); - assertEquals("alter table mytab alter column acol set default 'hi'", sql); + sql = alterColumn(pgDdl, alter); + softly.assertThat(sql).isEqualTo("alter table mytab alter column acol set default 'hi';\n"); - sql = oraDdl.alterColumnDefaultValue("mytab", "acol", "'hi'"); - assertEquals("alter table mytab modify acol default 'hi'", sql); + sql = alterColumn(oraDdl, alter); + softly.assertThat(sql).isEqualTo("alter table mytab modify acol default 'hi';\n"); - sql = mysqlDdl.alterColumnDefaultValue("mytab", "acol", "'hi'"); - assertEquals("alter table mytab alter acol set default 'hi'", sql); + sql = alterColumn(mysqlDdl, alter); + softly.assertThat(sql).isEqualTo("alter table mytab alter acol set default 'hi';\n"); - sql = sqlServerDdl.alterColumnDefaultValue("mytab", "acol", "'hi'"); - assertEquals("alter table mytab add default 'hi' for acol", sql); + sql = alterColumn(sqlServerDdl, alter); + softly.assertThat(sql).isEqualTo("EXEC usp_ebean_drop_default_constraint mytab, acol;\n" + + "alter table mytab add default 'hi' for acol;\n"); - boolean exceptionCaught = false; - try { - hanaDdl.alterColumnDefaultValue("mytab", "acol", "'hi'"); - } catch (UnsupportedOperationException e) { - exceptionCaught = true; - } - assertTrue(exceptionCaught); + sql = alterColumn(hanaDdl, alter); + softly.assertThat(sql).isEqualTo("alter table mytab alter ( acol nvarchar(20) default 'hi' not null);\n"); + + sql = alterColumn(db2Ddl, alter); + softly.assertThat(sql).isEqualTo("alter table mytab alter column acol set default 'hi';\n"); + } + + @Test + public void testAlterColumnChangeDefaultValue() { + AlterColumn alter = new AlterColumn(); + alter.setTableName("mytab"); + alter.setColumnName("acol"); + alter.setCurrentType("varchar(20)"); + alter.setCurrentNotnull(Boolean.TRUE); + alter.setDefaultValue("'ho'"); + alter.setDefaultValue("'hi'"); + + String sql = alterColumn(h2Ddl, alter); + softly.assertThat(sql).isEqualTo("alter table mytab alter column acol set default 'hi';\n"); + + sql = alterColumn(pgDdl, alter); + softly.assertThat(sql).isEqualTo("alter table mytab alter column acol set default 'hi';\n"); + + sql = alterColumn(oraDdl, alter); + softly.assertThat(sql).isEqualTo("alter table mytab modify acol default 'hi';\n"); + + sql = alterColumn(mysqlDdl, alter); + softly.assertThat(sql).isEqualTo("alter table mytab alter acol set default 'hi';\n"); + + sql = alterColumn(sqlServerDdl, alter); + softly.assertThat(sql).isEqualTo("EXEC usp_ebean_drop_default_constraint mytab, acol;\n" + + "alter table mytab add default 'hi' for acol;\n"); + + sql = alterColumn(hanaDdl, alter); + softly.assertThat(sql).isEqualTo("alter table mytab alter ( acol nvarchar(20) default 'hi' not null);\n"); + + sql = alterColumn(db2Ddl, alter); + softly.assertThat(sql).isEqualTo("alter table mytab alter column acol set default 'hi';\n"); } @Test public void testAlterColumnDropDefault() { - String sql = h2Ddl.alterColumnDefaultValue("mytab", "acol", "DROP DEFAULT"); - assertEquals("alter table mytab alter column acol drop default", sql); + AlterColumn alter = new AlterColumn(); + alter.setTableName("mytab"); + alter.setColumnName("acol"); + alter.setCurrentType("varchar(20)"); + alter.setCurrentNotnull(Boolean.TRUE); + alter.setCurrentDefaultValue("'hi'"); + alter.setDefaultValue("DROP DEFAULT"); - sql = pgDdl.alterColumnDefaultValue("mytab", "acol", "DROP DEFAULT"); - assertEquals("alter table mytab alter column acol drop default", sql); + String sql = alterColumn(h2Ddl, alter); + softly.assertThat(sql).isEqualTo("alter table mytab alter column acol drop default;\n"); - sql = oraDdl.alterColumnDefaultValue("mytab", "acol", "DROP DEFAULT"); - assertEquals("alter table mytab modify acol default null", sql); + sql = alterColumn(pgDdl, alter); + softly.assertThat(sql).isEqualTo("alter table mytab alter column acol drop default;\n"); - sql = mysqlDdl.alterColumnDefaultValue("mytab", "acol", "DROP DEFAULT"); - assertEquals("alter table mytab alter acol drop default", sql); + sql = alterColumn(oraDdl, alter); + softly.assertThat(sql).isEqualTo("alter table mytab modify acol default null;\n"); - sql = sqlServerDdl.alterColumnDefaultValue("mytab", "acol", "DROP DEFAULT"); - assertEquals("EXEC usp_ebean_drop_default_constraint mytab, acol", sql); + sql = alterColumn(mysqlDdl, alter); + softly.assertThat(sql).isEqualTo("alter table mytab alter acol drop default;\n"); + + sql = alterColumn(sqlServerDdl, alter); + softly.assertThat(sql).isEqualTo("EXEC usp_ebean_drop_default_constraint mytab, acol;\n"); + + sql = alterColumn(hanaDdl, alter); + softly.assertThat(sql).isEqualTo("alter table mytab alter ( acol nvarchar(20) default null not null);\n"); + + sql = alterColumn(db2Ddl, alter); + softly.assertThat(sql).isEqualTo("alter table mytab alter column acol drop default;\n"); - boolean exceptionCaught = false; - try { - hanaDdl.alterColumnDefaultValue("mytab", "acol", "DROP DEFAULT"); - } catch (UnsupportedOperationException e) { - exceptionCaught = true; - } - assertTrue(exceptionCaught); } @Test public void oracle_alterTableAddColumn() { DdlWrite writer = new DdlWrite(); - oraDdl.alterTableAddColumn(writer.apply(), "my_table", simpleColumn(), false, "1"); - assertThat(writer.apply().getBuffer()).isEqualTo("alter table my_table add my_column int default 1 not null;\n"); + oraDdl.alterTableAddColumn(writer, "my_table", simpleColumn(), false, "1"); + softly.assertThat(writer.apply().getBuffer()) + .isEqualTo("alter table my_table add my_column int default 1 not null;\n"); } private Column simpleColumn() { @@ -267,79 +398,148 @@ public class PlatformDdl_AlterColumnTest { @Test public void useIdentityType_h2() { - assertEquals(h2Ddl.useIdentityType(null), IdType.IDENTITY); - assertEquals(h2Ddl.useIdentityType(IdType.SEQUENCE), IdType.SEQUENCE); - assertEquals(h2Ddl.useIdentityType(IdType.IDENTITY), IdType.IDENTITY); - assertEquals(h2Ddl.useIdentityType(IdType.GENERATOR), IdType.GENERATOR); - assertEquals(h2Ddl.useIdentityType(IdType.EXTERNAL), IdType.EXTERNAL); + softly.assertThat(h2Ddl.useIdentityType(null)).isEqualTo(IdType.IDENTITY); + softly.assertThat(h2Ddl.useIdentityType(IdType.SEQUENCE)).isEqualTo(IdType.SEQUENCE); + softly.assertThat(h2Ddl.useIdentityType(IdType.IDENTITY)).isEqualTo(IdType.IDENTITY); + softly.assertThat(h2Ddl.useIdentityType(IdType.GENERATOR)).isEqualTo(IdType.GENERATOR); + softly.assertThat(h2Ddl.useIdentityType(IdType.EXTERNAL)).isEqualTo(IdType.EXTERNAL); } @Test public void useIdentityType_postgres() { - assertEquals(pgDdl.useIdentityType(IdType.GENERATOR), IdType.GENERATOR); - assertEquals(pgDdl.useIdentityType(IdType.EXTERNAL), IdType.EXTERNAL); + softly.assertThat(pgDdl.useIdentityType(IdType.GENERATOR)).isEqualTo(IdType.GENERATOR); + softly.assertThat(pgDdl.useIdentityType(IdType.EXTERNAL)).isEqualTo(IdType.EXTERNAL); - assertEquals(pgDdl.useIdentityType(null), IdType.IDENTITY); - assertEquals(pgDdl.useIdentityType(IdType.SEQUENCE), IdType.SEQUENCE); - assertEquals(pgDdl.useIdentityType(IdType.IDENTITY), IdType.IDENTITY); + softly.assertThat(pgDdl.useIdentityType(null)).isEqualTo(IdType.IDENTITY); + softly.assertThat(pgDdl.useIdentityType(IdType.SEQUENCE)).isEqualTo(IdType.SEQUENCE); + softly.assertThat(pgDdl.useIdentityType(IdType.IDENTITY)).isEqualTo(IdType.IDENTITY); } @Test public void useIdentityType_mysql() { - assertEquals(mysqlDdl.useIdentityType(null), IdType.IDENTITY); - assertEquals(mysqlDdl.useIdentityType(IdType.SEQUENCE), IdType.IDENTITY); - assertEquals(mysqlDdl.useIdentityType(IdType.IDENTITY), IdType.IDENTITY); - assertEquals(mysqlDdl.useIdentityType(IdType.GENERATOR), IdType.GENERATOR); - assertEquals(mysqlDdl.useIdentityType(IdType.EXTERNAL), IdType.EXTERNAL); + softly.assertThat(mysqlDdl.useIdentityType(null)).isEqualTo(IdType.IDENTITY); + softly.assertThat(mysqlDdl.useIdentityType(IdType.SEQUENCE)).isEqualTo(IdType.IDENTITY); + softly.assertThat(mysqlDdl.useIdentityType(IdType.IDENTITY)).isEqualTo(IdType.IDENTITY); + softly.assertThat(mysqlDdl.useIdentityType(IdType.GENERATOR)).isEqualTo(IdType.GENERATOR); + softly.assertThat(mysqlDdl.useIdentityType(IdType.EXTERNAL)).isEqualTo(IdType.EXTERNAL); } @Test public void useIdentityType_oracle() { - assertEquals(oraDdl.useIdentityType(null), IdType.IDENTITY); - assertEquals(oraDdl.useIdentityType(IdType.SEQUENCE), IdType.SEQUENCE); - assertEquals(oraDdl.useIdentityType(IdType.IDENTITY), IdType.IDENTITY); - assertEquals(oraDdl.useIdentityType(IdType.GENERATOR), IdType.GENERATOR); - assertEquals(oraDdl.useIdentityType(IdType.EXTERNAL), IdType.EXTERNAL); + softly.assertThat(oraDdl.useIdentityType(null)).isEqualTo(IdType.IDENTITY); + softly.assertThat(oraDdl.useIdentityType(IdType.SEQUENCE)).isEqualTo(IdType.SEQUENCE); + softly.assertThat(oraDdl.useIdentityType(IdType.IDENTITY)).isEqualTo(IdType.IDENTITY); + softly.assertThat(oraDdl.useIdentityType(IdType.GENERATOR)).isEqualTo(IdType.GENERATOR); + softly.assertThat(oraDdl.useIdentityType(IdType.EXTERNAL)).isEqualTo(IdType.EXTERNAL); } @Test public void useIdentityType_hana() { - assertEquals(hanaDdl.useIdentityType(null), IdType.IDENTITY); - assertEquals(hanaDdl.useIdentityType(IdType.SEQUENCE), IdType.IDENTITY); - assertEquals(hanaDdl.useIdentityType(IdType.IDENTITY), IdType.IDENTITY); - assertEquals(hanaDdl.useIdentityType(IdType.GENERATOR), IdType.GENERATOR); - assertEquals(hanaDdl.useIdentityType(IdType.EXTERNAL), IdType.EXTERNAL); + softly.assertThat(hanaDdl.useIdentityType(null)).isEqualTo(IdType.IDENTITY); + softly.assertThat(hanaDdl.useIdentityType(IdType.SEQUENCE)).isEqualTo(IdType.IDENTITY); + softly.assertThat(hanaDdl.useIdentityType(IdType.IDENTITY)).isEqualTo(IdType.IDENTITY); + softly.assertThat(hanaDdl.useIdentityType(IdType.GENERATOR)).isEqualTo(IdType.GENERATOR); + softly.assertThat(hanaDdl.useIdentityType(IdType.EXTERNAL)).isEqualTo(IdType.EXTERNAL); } @Test public void appendForeignKeySuffix_when_defaults() { - assertThat(alterFkey(null, null)).isEqualTo(" on delete restrict on update restrict"); + softly.assertThat(alterFkey(h2Ddl, null, null)).isEqualTo(" on delete restrict on update restrict"); + softly.assertThat(alterFkey(pgDdl, null, null)).isEqualTo(" on delete restrict on update restrict"); + softly.assertThat(alterFkey(mysqlDdl, null, null)).isEqualTo(" on delete restrict on update restrict"); + softly.assertThat(alterFkey(oraDdl, null, null)).isEqualTo(""); + softly.assertThat(alterFkey(sqlServerDdl, null, null)).isEqualTo(""); + softly.assertThat(alterFkey(hanaDdl, null, null)).isEqualTo(" on delete restrict on update restrict"); + softly.assertThat(alterFkey(db2Ddl, null, null)).isEqualTo(" on delete restrict"); } @Test public void appendForeignKeySuffix_when_RestrictSetNull() { - assertThat(alterFkey("RESTRICT", "SET_NULL")).isEqualTo(" on delete restrict on update set null"); + softly.assertThat(alterFkey(h2Ddl, "RESTRICT", "SET_NULL")) + .isEqualTo(" on delete restrict on update set null"); + + softly.assertThat(alterFkey(pgDdl, "RESTRICT", "SET_NULL")) + .isEqualTo(" on delete restrict on update set null"); + + softly.assertThat(alterFkey(mysqlDdl, "RESTRICT", "SET_NULL")) + .isEqualTo(" on delete restrict on update set null"); + + softly.assertThat(alterFkey(oraDdl, "RESTRICT", "SET_NULL")) + .isEqualTo(""); + + softly.assertThat(alterFkey(sqlServerDdl, "RESTRICT", "SET_NULL")) + .isEqualTo(" on update set null"); + + softly.assertThat(alterFkey(hanaDdl, "RESTRICT", "SET_NULL")) + .isEqualTo(" on delete restrict on update set null"); + + softly.assertThat(alterFkey(db2Ddl, "RESTRICT", "SET_NULL")) + .isEqualTo(" on delete restrict"); } @Test public void appendForeignKeySuffix_when_SetNullRestrict() { - assertThat(alterFkey("SET_NULL", "RESTRICT")).isEqualTo(" on delete set null on update restrict"); + softly.assertThat(alterFkey(h2Ddl, "SET_NULL", "RESTRICT")) + .isEqualTo(" on delete set null on update restrict"); + + softly.assertThat(alterFkey(pgDdl, "SET_NULL", "RESTRICT")) + .isEqualTo(" on delete set null on update restrict"); + + softly.assertThat(alterFkey(mysqlDdl, "SET_NULL", "RESTRICT")) + .isEqualTo(" on delete set null on update restrict"); + + softly.assertThat(alterFkey(oraDdl, "SET_NULL", "RESTRICT")) + .isEqualTo(" on delete set null"); + + softly.assertThat(alterFkey(sqlServerDdl, "SET_NULL", "RESTRICT")) + .isEqualTo(" on delete set null"); + + softly.assertThat(alterFkey(hanaDdl, "SET_NULL", "RESTRICT")) + .isEqualTo(" on delete set null on update restrict"); + + softly.assertThat(alterFkey(db2Ddl, "SET_NULL", "RESTRICT")) + .isEqualTo(" on delete set null"); } @Test public void appendForeignKeySuffix_when_SetDefaultCascade() { - assertThat(alterFkey("SET_DEFAULT", "CASCADE")).isEqualTo(" on delete set default on update cascade"); + softly.assertThat(alterFkey(h2Ddl, "SET_DEFAULT", "CASCADE")) + .isEqualTo(" on delete set default on update cascade"); + + softly.assertThat(alterFkey(pgDdl, "SET_DEFAULT", "CASCADE")) + .isEqualTo(" on delete set default on update cascade"); + + softly.assertThat(alterFkey(mysqlDdl, "SET_DEFAULT", "CASCADE")) + .isEqualTo(" on delete set default on update cascade"); + + softly.assertThat(alterFkey(oraDdl, "SET_DEFAULT", "CASCADE")) + .isEqualTo(""); + + softly.assertThat(alterFkey(sqlServerDdl, "SET_DEFAULT", "CASCADE")) + .isEqualTo(" on delete set default on update cascade"); + + softly.assertThat(alterFkey(hanaDdl, "SET_DEFAULT", "CASCADE")) + .isEqualTo(" on delete set default on update cascade"); + + softly.assertThat(alterFkey(db2Ddl, "SET_DEFAULT", "CASCADE")) + .isEqualTo(" on delete set default"); } - private String alterFkey(String onDelete, String onUpdate) { + private String alterColumn(PlatformDdl ddl, AlterColumn alterColumn) { + DdlWrite write = new DdlWrite(); + ddl.alterColumn(write, alterColumn); + return write.apply().getBuffer(); + } + + private String alterFkey(PlatformDdl ddl, String onDelete, String onUpdate) { AlterForeignKey afk = new AlterForeignKey(); afk.setOnDelete(onDelete); afk.setOnUpdate(onUpdate); StringBuilder buffer = new StringBuilder(); - h2Ddl.appendForeignKeySuffix(new WriteForeignKey(afk), buffer); + ddl.appendForeignKeySuffix(new WriteForeignKey(afk), buffer); return buffer.toString(); } diff --git a/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformDdl_dropUniqueConstraintTest.java b/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformDdl_dropUniqueConstraintTest.java index 7833898f7..cebab093f 100644 --- a/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformDdl_dropUniqueConstraintTest.java +++ b/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformDdl_dropUniqueConstraintTest.java @@ -42,7 +42,7 @@ public class PlatformDdl_dropUniqueConstraintTest { sql = sqlServerDdl.alterTableDropUniqueConstraint("mytab", "uq_name"); assertEquals( "IF EXISTS (SELECT name FROM sys.indexes WHERE object_id = OBJECT_ID('mytab','U') AND name = 'uq_name') drop index uq_name ON mytab;\n" - + "IF (OBJECT_ID('uq_name', 'UQ') IS NOT NULL) alter table mytab drop constraint uq_name", + + "IF OBJECT_ID('uq_name', 'UQ') IS NOT NULL alter table mytab drop constraint uq_name", sql); sql = mysqlDdl.alterTableDropUniqueConstraint("mytab", "uq_name"); From 9bcba0b80d5ce8e3519b92b34e4cfe592f76ab3a Mon Sep 17 00:00:00 2001 From: Roland Praml Date: Mon, 7 Mar 2022 15:40:45 +0100 Subject: [PATCH 062/114] Sql-scripts --- .../dbmigration/mariadb-noprocs/1.1.sql | 10 +++----- .../dbmigration/mariadb-noprocs/1.3.sql | 12 +++------ .../mariadb-noprocs/idx_mariadb.migrations | 4 +-- .../migrationtest/dbmigration/mariadb/1.1.sql | 10 +++----- .../migrationtest/dbmigration/mariadb/1.3.sql | 12 +++------ .../mariadb/idx_mariadb.migrations | 4 +-- .../migrationtest/dbmigration/mysql/1.1.sql | 10 +++----- .../migrationtest/dbmigration/mysql/1.3.sql | 12 +++------ .../dbmigration/mysql/idx_mysql.migrations | 4 +-- .../migrationtest/dbmigration/mysql55/1.1.sql | 10 +++----- .../migrationtest/dbmigration/mysql55/1.3.sql | 12 +++------ .../dbmigration/mysql55/idx_mysql.migrations | 4 +-- .../dbmigration/sqlserver16/1.1.sql | 19 ++++++++------ .../dbmigration/sqlserver16/1.3.sql | 25 +++++++++++-------- .../sqlserver16/idx_sqlserver.migrations | 4 +-- .../dbmigration/sqlserver17/1.1.sql | 19 ++++++++------ .../dbmigration/sqlserver17/1.3.sql | 25 +++++++++++-------- .../sqlserver17/idx_sqlserver.migrations | 4 +-- 18 files changed, 86 insertions(+), 114 deletions(-) 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 04603643f..ec9514319 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 @@ -36,9 +36,7 @@ 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 status varchar(1) not null default 'A'; alter table migtest_e_basic modify status2 varchar(127); -- rename all collisions; @@ -67,8 +65,7 @@ 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; +alter table migtest_e_history2 modify test_string varchar(255) not null default 'unknown'; 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); @@ -79,8 +76,7 @@ alter table migtest_e_history5 add column test_boolean tinyint(1) default 0 not -- 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_number1 integer not null default 42; alter table migtest_e_history6 modify test_number2 integer; alter table migtest_e_softdelete add column deleted tinyint(1) default 0 not null; diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb-noprocs/1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb-noprocs/1.3.sql index c3f1dd68f..0425230ac 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb-noprocs/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb-noprocs/1.3.sql @@ -14,18 +14,15 @@ 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 modify status2 varchar(1) not null default 'N'; 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 modify user_id integer not null default 23; alter table migtest_e_basic add column description_file longblob; 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); @@ -38,19 +35,16 @@ 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; +alter table migtest_e_history6 modify test_number2 integer not null default 7; 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; 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 a66b70c10..d1d18beb6 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 @@ -616900688, 1.0__initial.sql -128637084, 1.1.sql +-786596816, 1.1.sql -2077736415, 1.2__dropsFor_1.1.sql --1744111309, 1.3.sql +1262945599, 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 04603643f..ec9514319 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 @@ -36,9 +36,7 @@ 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 status varchar(1) not null default 'A'; alter table migtest_e_basic modify status2 varchar(127); -- rename all collisions; @@ -67,8 +65,7 @@ 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; +alter table migtest_e_history2 modify test_string varchar(255) not null default 'unknown'; 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); @@ -79,8 +76,7 @@ alter table migtest_e_history5 add column test_boolean tinyint(1) default 0 not -- 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_number1 integer not null default 42; alter table migtest_e_history6 modify test_number2 integer; alter table migtest_e_softdelete add column deleted tinyint(1) default 0 not null; 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 index c3f1dd68f..0425230ac 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb/1.3.sql @@ -14,18 +14,15 @@ 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 modify status2 varchar(1) not null default 'N'; 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 modify user_id integer not null default 23; alter table migtest_e_basic add column description_file longblob; 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); @@ -38,19 +35,16 @@ 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; +alter table migtest_e_history6 modify test_number2 integer not null default 7; 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; 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 d7958ff29..00322e59e 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 -616900688, 1.0__initial.sql -128637084, 1.1.sql +-786596816, 1.1.sql -2098746494, 1.2__dropsFor_1.1.sql --1744111309, 1.3.sql +1262945599, 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/mysql/1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/mysql/1.1.sql index 16d54565f..020fbaa27 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 @@ -42,9 +42,7 @@ 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 status varchar(1) not null default 'A'; alter table migtest_e_basic modify status2 varchar(127); -- rename all collisions; @@ -72,8 +70,7 @@ 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 modify test_string varchar(255) not null default 'unknown'; 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); @@ -89,8 +86,7 @@ alter table migtest_e_history5_history add column test_boolean tinyint(1) defaul -- 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_number1 integer not null default 42; alter table migtest_e_history6 modify test_number2 integer; alter table migtest_e_softdelete add column deleted tinyint(1) default 0 not null; 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 index b3d9845a5..2eb7ccc79 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/mysql/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/mysql/1.3.sql @@ -19,18 +19,15 @@ 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 modify status2 varchar(1) not null default 'N'; 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 modify user_id integer not null default 23; alter table migtest_e_basic add column description_file longblob; 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); @@ -43,7 +40,6 @@ 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); @@ -52,13 +48,11 @@ 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_e_history6 modify test_number2 integer not null default 7; 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); 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 5dbbf2fd2..2ff170b68 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 890673066, 1.0__initial.sql --1627573867, 1.1.sql +67386209, 1.1.sql 1986189381, 1.2__dropsFor_1.1.sql -798979911, 1.3.sql +2054074037, 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/mysql55/1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/mysql55/1.1.sql index 16d54565f..020fbaa27 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/mysql55/1.1.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/mysql55/1.1.sql @@ -42,9 +42,7 @@ 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 status varchar(1) not null default 'A'; alter table migtest_e_basic modify status2 varchar(127); -- rename all collisions; @@ -72,8 +70,7 @@ 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 modify test_string varchar(255) not null default 'unknown'; 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); @@ -89,8 +86,7 @@ alter table migtest_e_history5_history add column test_boolean tinyint(1) defaul -- 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_number1 integer not null default 42; alter table migtest_e_history6 modify test_number2 integer; alter table migtest_e_softdelete add column deleted tinyint(1) default 0 not null; 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 index b3d9845a5..2eb7ccc79 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/mysql55/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/mysql55/1.3.sql @@ -19,18 +19,15 @@ 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 modify status2 varchar(1) not null default 'N'; 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 modify user_id integer not null default 23; alter table migtest_e_basic add column description_file longblob; 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); @@ -43,7 +40,6 @@ 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); @@ -52,13 +48,11 @@ 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_e_history6 modify test_number2 integer not null default 7; 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); 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 index 5994ca140..cba785aa6 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/mysql55/idx_mysql.migrations +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/mysql55/idx_mysql.migrations @@ -1,8 +1,8 @@ 1835064798, I__create_procs.sql 881444156, 1.0__initial.sql --1627573867, 1.1.sql +67386209, 1.1.sql 1986189381, 1.2__dropsFor_1.1.sql -798979911, 1.3.sql +2054074037, 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/sqlserver16/1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/1.1.sql index 51c12789a..bd340a266 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/1.1.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/1.1.sql @@ -36,11 +36,12 @@ IF OBJECT_ID('fk_migtest_fk_set_null_one_id', 'F') IS NOT NULL alter table migte 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; +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) not null; +alter table migtest_e_basic add default 'A' for status; 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; +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); @@ -60,20 +61,21 @@ alter table migtest_e_basic add constraint ck_migtest_e_basic_progress check ( p 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 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; +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; +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; +EXEC usp_ebean_drop_default_constraint migtest_e_history2, test_string; alter table migtest_e_history2 alter column test_string varchar(255) not null; +alter table migtest_e_history2 add default 'unknown' for test_string; 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); @@ -84,8 +86,9 @@ 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; +EXEC usp_ebean_drop_default_constraint migtest_e_history6, test_number1; alter table migtest_e_history6 alter column test_number1 integer not null; +alter table migtest_e_history6 add default 42 for test_number1; alter table migtest_e_history6 alter column test_number2 integer; alter table migtest_e_softdelete add deleted bit default 0 not null; 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 index 004107385..7915d515c 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/1.3.sql @@ -14,39 +14,41 @@ IF OBJECT_ID('fk_migtest_fk_none_one_id', 'F') IS NOT NULL alter table migtest_f 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; +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; +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(1) not null; +alter table migtest_e_basic add default 'N' for status2; 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; +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; +EXEC usp_ebean_drop_default_constraint migtest_e_basic, user_id; alter table migtest_e_basic alter column user_id integer not null; +alter table migtest_e_basic add default 23 for user_id; alter table migtest_e_basic add description_file image; 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 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 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 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; +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; +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); @@ -59,8 +61,9 @@ 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; +EXEC usp_ebean_drop_default_constraint migtest_e_history6, test_number2; alter table migtest_e_history6 alter column test_number2 integer not null; +alter table migtest_e_history6 add default 7 for test_number2; 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; 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 index a147ed2f5..619e350d6 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/idx_sqlserver.migrations +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/idx_sqlserver.migrations @@ -1,8 +1,8 @@ -2122378240, I__create_procs.sql 1983037247, 1.0__initial.sql --1042228916, 1.1.sql +1735900055, 1.1.sql 1019731053, 1.2__dropsFor_1.1.sql --897790738, 1.3.sql +239521374, 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/sqlserver17/1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/1.1.sql index 9090ca711..4b142aa09 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/1.1.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/1.1.sql @@ -37,11 +37,12 @@ IF OBJECT_ID('fk_migtest_fk_set_null_one_id', 'F') IS NOT NULL alter table migte 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; +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) not null; +alter table migtest_e_basic add default 'A' for status; 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; +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); @@ -61,20 +62,21 @@ alter table migtest_e_basic add constraint ck_migtest_e_basic_progress check ( p 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 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; +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; +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; +EXEC usp_ebean_drop_default_constraint migtest_e_history2, test_string; alter table migtest_e_history2 alter column test_string nvarchar(255) not null; +alter table migtest_e_history2 add default 'unknown' for test_string; 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); @@ -85,8 +87,9 @@ 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; +EXEC usp_ebean_drop_default_constraint migtest_e_history6, test_number1; alter table migtest_e_history6 alter column test_number1 integer not null; +alter table migtest_e_history6 add default 42 for test_number1; alter table migtest_e_history6 alter column test_number2 integer; alter table migtest_e_softdelete add deleted bit default 0 not null; diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/1.3.sql index fde85d001..23dacc249 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/1.3.sql @@ -15,39 +15,41 @@ IF OBJECT_ID('fk_migtest_fk_none_one_id', 'F') IS NOT NULL alter table migtest_f 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; +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; +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(1) not null; +alter table migtest_e_basic add default 'N' for status2; 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; +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; +EXEC usp_ebean_drop_default_constraint migtest_e_basic, user_id; alter table migtest_e_basic alter column user_id integer not null; +alter table migtest_e_basic add default 23 for user_id; alter table migtest_e_basic add description_file image; 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 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 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 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; +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; +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); @@ -60,8 +62,9 @@ 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; +EXEC usp_ebean_drop_default_constraint migtest_e_history6, test_number2; alter table migtest_e_history6 alter column test_number2 integer not null; +alter table migtest_e_history6 add default 7 for test_number2; 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; diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/idx_sqlserver.migrations b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/idx_sqlserver.migrations index 95435eb0b..69734f2f2 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/idx_sqlserver.migrations +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/idx_sqlserver.migrations @@ -1,8 +1,8 @@ -2122378240, I__create_procs.sql -813787447, 1.0__initial.sql --898063858, 1.1.sql +-925841767, 1.1.sql 1019731053, 1.2__dropsFor_1.1.sql --494373130, 1.3.sql +-1858208, 1.3.sql -1335541264, 1.4__dropsFor_1.3.sql 1607822082, R__order_views_mssql.sql From c3bdac52714f11877c8b47476f672db6fa4c21bc Mon Sep 17 00:00:00 2001 From: Roland Praml Date: Mon, 7 Mar 2022 16:41:27 +0100 Subject: [PATCH 063/114] [Clickhouse] Refactored columnNotNull --- .../ddlgeneration/platform/ClickHouseDdl.java | 6 +----- .../ddlgeneration/platform/PlatformDdl.java | 13 ++++--------- 2 files changed, 5 insertions(+), 14 deletions(-) diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/ClickHouseDdl.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/ClickHouseDdl.java index 2c3e2d841..940cdcf24 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/ClickHouseDdl.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/ClickHouseDdl.java @@ -14,6 +14,7 @@ public class ClickHouseDdl extends PlatformDdl { super(platform); this.includeStorageEngine = true; this.identitySuffix = ""; + this.columnNotNull = null; } @Override @@ -68,11 +69,6 @@ public class ClickHouseDdl extends PlatformDdl { return null; } - @Override - protected void writeColumnNotNull(DdlBuffer buffer) { - // do nothing - } - @Override public void addTableComment(DdlBuffer apply, String tableName, String tableComment) { // do nothing diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformDdl.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformDdl.java index f439d366e..e93983683 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformDdl.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformDdl.java @@ -97,6 +97,8 @@ public class PlatformDdl { protected String columnSetNull = "set null"; + protected String columnNotNull = "not null"; + protected String updateNullWithDefault = "update ${table} set ${column} = ${default} where ${column} is null"; protected String createTable = "create table"; @@ -272,20 +274,13 @@ public class PlatformDdl { } } if (isTrue(column.isNotnull()) || isTrue(column.isPrimaryKey())) { - writeColumnNotNull(buffer); + buffer.appendWithSpace(columnNotNull); } // add check constraints later as we really want to give them a nice name // so that the database can potentially provide a nice SQL error } - /** - * Allow for platform overriding (e.g. ClickHouse). - */ - protected void writeColumnNotNull(DdlBuffer buffer) { - buffer.append(" not null"); - } - /** * Returns the check constraint. */ @@ -556,7 +551,7 @@ public class PlatformDdl { if (!onHistoryTable) { if (isTrue(column.isNotnull())) { - writeColumnNotNull(buffer); + buffer.appendWithSpace(columnNotNull); } buffer.append(addColumnSuffix); buffer.endOfStatement(); From 1049d951d97dbd0684c4a2226069ff6155915a56 Mon Sep 17 00:00:00 2001 From: Roland Praml Date: Tue, 8 Mar 2022 12:39:44 +0100 Subject: [PATCH 064/114] Code changes to group alterTables by tableName --- .../ddlgeneration/DdlAlterTable.java | 45 ++++++ .../dbmigration/ddlgeneration/DdlWrite.java | 98 +++++++++++ .../platform/AbstractHanaDdl.java | 108 ++++++++++--- .../platform/BaseAlterTableWrite.java | 152 ++++++++++++++++++ .../ddlgeneration/platform/BaseTableDdl.java | 111 +++++++------ .../platform/DbTriggerBasedHistoryDdl.java | 41 ++--- .../platform/HanaHistoryDdl.java | 26 +-- .../ddlgeneration/platform/HanaTableDdl.java | 34 ++-- .../ddlgeneration/platform/PlatformDdl.java | 55 +++---- .../platform/PostgresHistoryDdl.java | 7 +- .../ddlgeneration/platform/SQLiteDdl.java | 38 +++-- .../dbmigration/model/CurrentModel.java | 19 ++- .../dbmigration/model/PlatformDdlWriter.java | 17 +- 13 files changed, 547 insertions(+), 204 deletions(-) create mode 100644 ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/DdlAlterTable.java create mode 100644 ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/BaseAlterTableWrite.java diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/DdlAlterTable.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/DdlAlterTable.java new file mode 100644 index 000000000..c59666599 --- /dev/null +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/DdlAlterTable.java @@ -0,0 +1,45 @@ +package io.ebeaninternal.dbmigration.ddlgeneration; + +import java.io.IOException; + +/** + * Object that represents an Alter Table statements. Table alters are grouped together by tableName in DDL and can be extended by + * a ddl-specific handler (e.g. doing a reorg for DB2 or implement special grouping for Hana). There is one instance per table. + * + * @author TODO Roland Praml, FOCONIS AG + */ +public interface DdlAlterTable { + + /** + * Writes the alter table statements to target + */ + void write(Appendable target) throws IOException; + + /** + * Adds an alter table command for given column. When you invoke
+ * alterTable(writer, "my_table").add("alter column","my_column).append("type integer") the resulting DDL (in + * standard implementation) would be
+ * alter table my_table alter column my_column type integer + * + * @return a DdlBuffer, which can be used for further appends. Note you MUST NOT call .endOfStatement() on this + * buffer. + */ + DdlBuffer append(String operation, String columnName); + + /** + * Adds a raw command. This is mainly used for executing user stored procedures. + */ + DdlBuffer raw(String string); + + /** + * Flag that detects if history DDL (switching on) is handled for this table. + */ + boolean isHistoryHandled(); + + /** + * Sets the history handled flag for this table. + */ + void setHistoryHandled(); + + +} diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/DdlWrite.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/DdlWrite.java index eff523d09..a0abf8350 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/DdlWrite.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/DdlWrite.java @@ -1,5 +1,10 @@ package io.ebeaninternal.dbmigration.ddlgeneration; +import java.io.IOException; +import java.util.Map; +import java.util.TreeMap; +import java.util.function.Function; + import io.ebeaninternal.dbmigration.ddlgeneration.platform.BaseDdlBuffer; import io.ebeaninternal.dbmigration.model.MConfiguration; import io.ebeaninternal.dbmigration.model.MTable; @@ -16,6 +21,10 @@ public class DdlWrite { private final DdlBuffer apply = new BaseDdlBuffer(); + private final Map applyAlterTables = new TreeMap<>(); + + private final DdlBuffer applyPostAlter = new BaseDdlBuffer(); + private final DdlBuffer applyForeignKeys = new BaseDdlBuffer(); private final DdlBuffer applyHistoryView = new BaseDdlBuffer(); @@ -66,12 +75,21 @@ public class DdlWrite { */ public boolean isApplyEmpty() { return apply.getBuffer().isEmpty() + && applyAlterTables.isEmpty() + && applyPostAlter.getBuffer().isEmpty() && applyForeignKeys.getBuffer().isEmpty() && applyHistoryView.getBuffer().isEmpty() && applyHistoryTrigger.getBuffer().isEmpty() && applyDropDependencies.getBuffer().isEmpty(); } + /** + * Return the buffer that POST ALTER is written to. + */ + public DdlBuffer applyPostAlter() { + return applyPostAlter; + } + /** * Return the buffer that APPLY DDL is written to. */ @@ -86,6 +104,20 @@ public class DdlWrite { return applyDropDependencies; } + /** + * Creates or returns the DdlAlterTable statement for tablename. + * + * Note: All alters on a particular table are sorted in natural order in the ddl script. This allows optimizing the alters by + * merging them or doing a reorg table after altering is done. + * + * @param tableName the table name + * @param factory the factory to construct a new object + * @return + */ + public DdlAlterTable applyAlterTable(String tableName, Function factory) { + return applyAlterTables.computeIfAbsent(tableName, factory); + } + /** * Return the buffer that APPLY DDL is written to for foreign keys and their associated indexes. *

@@ -124,4 +156,70 @@ public class DdlWrite { return dropAll; } + /** + * Writes the apply ddl to the target. + */ + public void writeApply(Appendable target) throws IOException { + if (!applyDropDependencies.isEmpty()) { + target.append("-- drop dependencies\n"); + target.append(applyDropDependencies.getBuffer()); + } + if (!apply.isEmpty()) { + target.append("-- apply changes\n"); + target.append(apply.getBuffer()); + } + if (!applyAlterTables.isEmpty()) { + // target.append("-- apply alter tables\n"); maybe added later. Makes diff easier + for (DdlAlterTable alterTable : applyAlterTables.values()) { + alterTable.write(target); + } + } + if (!applyPostAlter.isEmpty()) { + // target.append("-- apply post alter\n"); maybe added later. + target.append(applyPostAlter.getBuffer()); + } + if (!applyForeignKeys.isEmpty()) { + // target.append("-- foreign keys and indices\n"); maybe added later. + target.append(applyForeignKeys.getBuffer()); + } + + if (!applyHistoryView.isEmpty()) { + target.append(applyHistoryView.getBuffer()); + } + + if (!applyHistoryTrigger.isEmpty()) { + target.append(applyHistoryTrigger.getBuffer()); + } + } + + /** + * Writes the drop all ddl to the target. + */ + public void writeDropAll(Appendable target) throws IOException { + if (!dropAllForeignKeys.isEmpty()) { + target.append("-- drop all foreign keys\n"); + target.append(dropAllForeignKeys.getBuffer()); + } + if (!dropAll.isEmpty()) { + target.append("-- drop all\n"); + target.append(dropAll.getBuffer()); + } + } + + /** + * Returns all create statements. Mainly used for unit-tests + */ + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + try { + writeDropAll(sb); + writeApply(sb); + } catch (IOException e) { + // can not happen + } + return sb.toString(); + } + + } diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/AbstractHanaDdl.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/AbstractHanaDdl.java index d9833753a..b664354b2 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/AbstractHanaDdl.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/AbstractHanaDdl.java @@ -3,12 +3,21 @@ package io.ebeaninternal.dbmigration.ddlgeneration.platform; import io.ebean.config.DatabaseConfig; import io.ebean.config.dbplatform.DatabasePlatform; import io.ebean.config.dbplatform.DbPlatformType; +import io.ebeaninternal.dbmigration.ddlgeneration.DdlAlterTable; import io.ebeaninternal.dbmigration.ddlgeneration.DdlBuffer; import io.ebeaninternal.dbmigration.ddlgeneration.DdlHandler; import io.ebeaninternal.dbmigration.ddlgeneration.DdlWrite; import io.ebeaninternal.dbmigration.migration.AlterColumn; +import java.io.IOException; +import java.util.ArrayList; +import java.util.HashSet; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; +import java.util.Map.Entry; import java.util.Objects; +import java.util.Set; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -18,16 +27,13 @@ public abstract class AbstractHanaDdl extends PlatformDdl { public AbstractHanaDdl(DatabasePlatform platform) { super(platform); - this.addColumn = "add ("; - this.addColumnSuffix = ")"; - this.alterColumn = "alter ("; - this.alterColumnSuffix = ")"; - this.columnDropDefault = " default null"; - this.columnSetDefault = " default"; - this.columnSetNotnull = " not null"; + this.addColumn = "add"; + this.alterColumn = "alter"; + this.columnDropDefault = "default null"; + this.columnSetDefault = "default"; + this.columnSetNotnull = "not null"; this.columnSetNull = " null"; - this.dropColumn = "drop ("; - this.dropColumnSuffix = ")"; + this.dropColumn = "drop"; this.dropConstraintIfExists = "drop constraint "; this.dropIndexIfExists = "drop index "; this.dropSequenceIfExists = "drop sequence "; @@ -52,29 +58,21 @@ public abstract class AbstractHanaDdl extends PlatformDdl { : (alter.getDefaultValue() != null ? alter.getDefaultValue() : alter.getCurrentDefaultValue()); String defaultValueClause = (defaultValue == null || defaultValue.isEmpty()) ? "" : " default " + defaultValue; - DdlBuffer buffer = writer.apply(); if (!isConvertible(currentType, type)) { // add an intermediate conversion if possible if (isNumberType(currentType)) { // numbers can always be converted to decimal - buffer.append("alter table ").append(tableName).append(" ").append(alterColumn).append(" ").append(columnName) - .append(" decimal ").append(notnullClause).append(alterColumnSuffix) - .endOfStatement(); + alterTable(writer, tableName).append(alterColumn, columnName).append("decimal").append(notnullClause); } else if (isStringType(currentType)) { // strings can always be converted to nclob // Note: we do not add default clause here to avoid error[SAP DBTech JDBC: [336]: invalid default value: // default value cannot be created on column of data type NCLOB - buffer.append("alter table ").append(tableName).append(" ").append(alterColumn).append(" ").append(columnName) - .append(" nclob").append(notnullClause).append(alterColumnSuffix) - .endOfStatement(); + alterTable(writer, tableName).append(alterColumn, columnName).append("nclob").append(notnullClause); } } - buffer.append("alter table ").append(tableName).append(" ").append(alterColumn).append(" ").append(columnName) - .append(" ").append(type).append(defaultValueClause).append(notnullClause).append(alterColumnSuffix); - - buffer.endOfStatement(); + alterTable(writer, tableName).append(alterColumn, columnName).append(type).append(defaultValueClause).append(notnullClause); } @Override @@ -127,8 +125,7 @@ public abstract class AbstractHanaDdl extends PlatformDdl { */ @Override public void alterTableDropColumn(DdlWrite writer, String tableName, String columnName) { - writer.apply().append("CALL usp_ebean_drop_column('").append(tableName).append("', '").append(columnName).append("')") - .endOfStatement(); + alterTable(writer, tableName).raw("CALL usp_ebean_drop_column('").append(tableName).append("', '").append(columnName).append("')"); } /** @@ -202,4 +199,71 @@ public abstract class AbstractHanaDdl extends PlatformDdl { return type != null && (type.startsWith("varchar") || type.startsWith("nvarchar") || "clob".equals(type) || "nclob".equals(type)); } + + @Override + protected DdlAlterTable alterTable(DdlWrite writer, String tableName) { + return writer.applyAlterTable(tableName, HanaAlterTableWrite::new); + } + + /** + * Joins alter table commands and add open/closing brackets for the alter statements + */ + private static class HanaAlterTableWrite extends BaseAlterTableWrite { + + public HanaAlterTableWrite(String tableName) { + super(tableName); + } + + @Override + protected List postProcessCommands(List cmds) { + List newCmds = new ArrayList<>(); + Map> batches = new LinkedHashMap<>(); + Set columns = new HashSet<>(); + for (AlterCmd cmd : cmds) { + switch (cmd.getOperation()) { + case "add": + case "alter": + case "drop": + if (cmd.getColumn() != null && !columns.add(cmd.getColumn())) { + // column already seen + flushBatches(newCmds, batches); + columns.clear(); + } + batches.computeIfAbsent(cmd.getOperation(), k -> new ArrayList<>()).add(cmd); + break; + default: + flushBatches(newCmds, batches); + columns.clear(); + newCmds.add(cmd); + } + } + flushBatches(newCmds, batches); + return newCmds; + } + + /** + * Merges add/alter/drop commands into one statement. + */ + private void flushBatches(List newCmds, Map> batches) { + for (Entry> entry : batches.entrySet()) { + AlterCmd raw = newRawCommand("alter table ").append(tableName()).append(" ") + .append(entry.getKey()).append(" ("); + List cmds = entry.getValue(); + for (int i = 0; i < cmds.size(); i++) { + AlterCmd cmd = cmds.get(i); + if (i > 0) { + raw.append(",\n "); + } + raw.append(cmd.getColumn()); + if (!cmd.getAlternation().isEmpty()) { + raw.append(" ").append(cmd.getAlternation()); + } + } + raw.append(")"); + newCmds.add(raw); + } + batches.clear(); + } + } + } diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/BaseAlterTableWrite.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/BaseAlterTableWrite.java new file mode 100644 index 000000000..bd777d5a5 --- /dev/null +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/BaseAlterTableWrite.java @@ -0,0 +1,152 @@ +package io.ebeaninternal.dbmigration.ddlgeneration.platform; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + +import io.ebeaninternal.dbmigration.ddlgeneration.DdlAlterTable; +import io.ebeaninternal.dbmigration.ddlgeneration.DdlBuffer; + +/** + * Contains alter statements per table. + * + * @author Roland Praml, FOCONIS AG + */ +public class BaseAlterTableWrite implements DdlAlterTable { + + protected static final String RAW_OPERATION = "$RAW"; + + public class AlterCmd { + // the command (e.g. "alter", "modify" + private final String operation; + // the affected column (note: each column can only be altered once on MariaDB) + private final String column; + + private final DdlBuffer alternationBuffer = new BaseDdlBuffer() { + @Override + public DdlBuffer endOfStatement() { + throw new UnsupportedOperationException(); + }; + }; + + protected AlterCmd(String operation, String column) { + this.operation = operation; + this.column = column; + } + + public AlterCmd append(String content) { + alternationBuffer.append(content); + return this; + } + + public String getOperation() { + return operation; + } + + public String getColumn() { + return column; + } + + public String getAlternation() { + return alternationBuffer.getBuffer(); + } + + protected void write(Appendable target) throws IOException { + if (operation.equals(RAW_OPERATION)) { + // this is a raw command. e.g. an USP call. Must be done in the correct order + // of all alter commands + target.append(getAlternation()); + } else { + target.append("alter table ").append(tableName).append(' ').append(operation); + if (column != null) { + target.append(' ').append(column); + } + if (!getAlternation().isEmpty()) { + target.append(' ').append(getAlternation()); + } + } + } + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + try { + write(sb); + } catch (IOException e) { + throw new RuntimeException(e); + } + return sb.toString(); + } + } + + private final String tableName; + + private List cmds = new ArrayList<>(); + + private boolean historyHandled; + + public BaseAlterTableWrite(String tableName) { + this.tableName = tableName; + } + + public String tableName() { + return tableName; + } + + protected AlterCmd newRawCommand(String sql) { + AlterCmd cmd = new AlterCmd(RAW_OPERATION, null); + cmd.alternationBuffer.append(sql); + return cmd; + } + + public AlterCmd newOperation(String operation, String column) { + return new AlterCmd(operation, column); + } + + /** + * Adds a statement. The statement is prefixed with "alter table TABLENAME" and may be batched, if platform supports this. The + * returned StringBuilder can be used, to complete the statement + */ + @Override + public DdlBuffer append(String operation, String column) { + AlterCmd cmd = new AlterCmd(operation, column); + cmds.add(cmd); + return cmd.alternationBuffer; + } + + @Override + public DdlBuffer raw(String sql) { + AlterCmd cmd = newRawCommand(sql); + cmds.add(cmd); + return cmd.alternationBuffer; + } + + /** + * Method can be overwritten to return a new list of commands. The given list must not be modified, but a new command list with + * modified commands can be returned (e.g. to handle DB2 reorg or special syntax in Hana) + */ + protected List postProcessCommands(List cmds) { + return cmds; + } + + /** + * Writes the DDL to target. + */ + @Override + public void write(Appendable target) throws IOException { + for (AlterCmd cmd : postProcessCommands(Collections.unmodifiableList(cmds))) { + cmd.write(target); + target.append(";\n"); + } + } + + @Override + public boolean isHistoryHandled() { + return historyHandled; + } + + @Override + public void setHistoryHandled() { + historyHandled = true; + } +} diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/BaseTableDdl.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/BaseTableDdl.java index f4b8980c1..aa0241532 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/BaseTableDdl.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/BaseTableDdl.java @@ -11,7 +11,6 @@ import io.ebeaninternal.dbmigration.ddlgeneration.DdlBuffer; import io.ebeaninternal.dbmigration.ddlgeneration.DdlOptions; import io.ebeaninternal.dbmigration.ddlgeneration.DdlWrite; import io.ebeaninternal.dbmigration.ddlgeneration.TableDdl; -import io.ebeaninternal.dbmigration.ddlgeneration.platform.util.IndexSet; import io.ebeaninternal.dbmigration.migration.AddColumn; import io.ebeaninternal.dbmigration.migration.AddHistoryTable; import io.ebeaninternal.dbmigration.migration.AddTableComment; @@ -127,29 +126,29 @@ public class BaseTableDdl implements TableDdl { after = getScriptsForPlatform(alter.getAfter()); } - void writeBefore(DdlBuffer buffer) { + void write(DdlWrite writer) { if (!before.isEmpty()) { - buffer.end(); - } - - if (!before.isEmpty() && withHistory) { - buffer.append("-- NOTE: table has @History - special migration may be necessary").newLine(); - } - for (String ddlScript : before) { - buffer.appendStatement(translate(ddlScript, tableName, columnName, defaultValue)); - } - } - - void writeAfter(DdlBuffer buffer) { - if (!after.isEmpty() && withHistory) { - buffer.append("-- NOTE: table has @History - special migration may be necessary").newLine(); - } - // here we run post migration scripts - for (String ddlScript : after) { - buffer.appendStatement(translate(ddlScript, tableName, columnName, defaultValue)); + writer.apply().end(); + if (withHistory) { + writer.apply().append("-- NOTE: table has @History - special migration may be necessary").newLine(); + } + for (String ddlScript : before) { + writer.apply().appendStatement(translate(ddlScript, tableName, columnName, defaultValue)); + } } + // effective order in DDL.sql: + // 'before' goes to apply-buffer + // altered columns will be in the alterTable buffers. + // 'after' goes to the post-alter-buffer if (!after.isEmpty()) { - buffer.end(); + writer.applyPostAlter().append("-- NOTE: table has @History - special migration may be necessary").newLine(); + + // here we run post migration scripts + for (String ddlScript : after) { + writer.applyPostAlter().appendStatement(translate(ddlScript, tableName, columnName, defaultValue)); + } + + writer.applyPostAlter().end(); } } @@ -248,7 +247,7 @@ public class BaseTableDdl implements TableDdl { } } if (platformDdl.isInlineForeignKeys()) { - writeInlineForeignKeys(writer, createTable); + writeInlineForeignKeys(apply, createTable); } apply.newLine().append(")"); addTableStorageEngine(apply, createTable); @@ -340,7 +339,8 @@ public class BaseTableDdl implements TableDdl { uqName = col.getUnique(); } String[] columnNames = {col.getName()}; - writer.apply().appendStatement(platformDdl.alterTableAddUniqueConstraint(tableName, uqName, columnNames, Boolean.TRUE.equals(col.isNotnull()) ? null : columnNames)); + String[] nullableColumns = Boolean.TRUE.equals(col.isNotnull()) ? null : columnNames; + writer.applyPostAlter().appendStatement(platformDdl.alterTableAddUniqueConstraint(tableName, uqName, columnNames, nullableColumns)); writer.dropAllForeignKeys().appendStatement(platformDdl.dropIndex(uqName, tableName)); } @@ -349,7 +349,7 @@ public class BaseTableDdl implements TableDdl { String[] columnNames = split(constraint.getColumnNames()); String[] nullableColumns = split(constraint.getNullableColumns()); - writer.apply().appendStatement(platformDdl.alterTableAddUniqueConstraint(tableName, uqName, columnNames, nullableColumns)); + writer.applyPostAlter().appendStatement(platformDdl.alterTableAddUniqueConstraint(tableName, uqName, columnNames, nullableColumns)); writer.dropAllForeignKeys().appendStatement(platformDdl.dropIndex(uqName, tableName)); } } @@ -368,25 +368,25 @@ public class BaseTableDdl implements TableDdl { platformDdl.createWithHistory(writer, table); } - protected void writeInlineForeignKeys(DdlWrite writer, CreateTable createTable) { + protected void writeInlineForeignKeys(DdlBuffer buffer, CreateTable createTable) { for (Column column : createTable.getColumn()) { String references = column.getReferences(); if (hasValue(references)) { - writeInlineForeignKey(writer, column); + writeInlineForeignKey(buffer, column); } } - writeInlineCompoundForeignKeys(writer, createTable); + writeInlineCompoundForeignKeys(buffer, createTable); } - protected void writeInlineForeignKey(DdlWrite writer, Column column) { + protected void writeInlineForeignKey(DdlBuffer buffer, Column column) { String fkConstraint = platformDdl.tableInlineForeignKey(new WriteForeignKey(null, column)); - writer.apply().append(",").newLine().append(" ").append(fkConstraint); + buffer.append(",").newLine().append(" ").append(fkConstraint); } - protected void writeInlineCompoundForeignKeys(DdlWrite writer, CreateTable createTable) { + protected void writeInlineCompoundForeignKeys(DdlBuffer buffer, CreateTable createTable) { for (ForeignKey key : createTable.getForeignKey()) { String fkConstraint = platformDdl.tableInlineForeignKey(new WriteForeignKey(null, key)); - writer.apply().append(",").newLine().append(" ").append(fkConstraint); + buffer.append(",").newLine().append(" ").append(fkConstraint); } } @@ -558,7 +558,7 @@ public class BaseTableDdl implements TableDdl { @Override public void generate(DdlWrite writer, CreateIndex index) { if (platformInclude(index.getPlatforms())) { - writer.apply().appendStatement(platformDdl.createIndex(new WriteCreateIndex(index))); + writer.applyPostAlter().appendStatement(platformDdl.createIndex(new WriteCreateIndex(index))); writer.dropAll().appendStatement(platformDdl.dropIndex(index.getIndexName(), index.getTableName(), Boolean.TRUE.equals(index.isConcurrent()))); } } @@ -566,7 +566,8 @@ public class BaseTableDdl implements TableDdl { @Override public void generate(DdlWrite writer, DropIndex dropIndex) { if (platformInclude(dropIndex.getPlatforms())) { - writer.apply().appendStatement(platformDdl.dropIndex(dropIndex.getIndexName(), dropIndex.getTableName(), Boolean.TRUE.equals(dropIndex.isConcurrent()))); + writer.applyDropDependencies() + .appendStatement(platformDdl.dropIndex(dropIndex.getIndexName(), dropIndex.getTableName(), Boolean.TRUE.equals(dropIndex.isConcurrent()))); } } @@ -574,12 +575,14 @@ public class BaseTableDdl implements TableDdl { public void generate(DdlWrite writer, AddUniqueConstraint constraint) { if (platformInclude(constraint.getPlatforms())) { if (DdlHelp.isDropConstraint(constraint.getColumnNames())) { - writer.apply().appendStatement(platformDdl.alterTableDropUniqueConstraint(constraint.getTableName(), constraint.getConstraintName())); + writer.applyDropDependencies() + .appendStatement(platformDdl.alterTableDropUniqueConstraint(constraint.getTableName(), constraint.getConstraintName())); } else { String[] cols = split(constraint.getColumnNames()); String[] nullableColumns = split(constraint.getNullableColumns()); - writer.apply().appendStatement(platformDdl.alterTableAddUniqueConstraint(constraint.getTableName(), constraint.getConstraintName(), cols, nullableColumns)); + writer.applyPostAlter() + .appendStatement(platformDdl.alterTableAddUniqueConstraint(constraint.getTableName(), constraint.getConstraintName(), cols, nullableColumns)); } } } @@ -587,9 +590,9 @@ public class BaseTableDdl implements TableDdl { @Override public void generate(DdlWrite writer, AlterForeignKey alterForeignKey) { if (DdlHelp.isDropForeignKey(alterForeignKey.getColumnNames())) { - writer.apply().appendStatement(platformDdl.alterTableDropForeignKey(alterForeignKey.getTableName(), alterForeignKey.getName())); + writer.applyDropDependencies().appendStatement(platformDdl.alterTableDropForeignKey(alterForeignKey.getTableName(), alterForeignKey.getName())); } else { - writer.apply().appendStatement(platformDdl.alterTableAddForeignKey(writer.getOptions(), new WriteForeignKey(alterForeignKey))); + writer.applyForeignKeys().appendStatement(platformDdl.alterTableAddForeignKey(writer.getOptions(), new WriteForeignKey(alterForeignKey))); } } @@ -634,7 +637,7 @@ public class BaseTableDdl implements TableDdl { @Override public void generate(DdlWrite writer, AddTableComment addTableComment) { if (hasValue(addTableComment.getComment())) { - platformDdl.addTableComment(writer.apply(), addTableComment.getName(), addTableComment.getComment()); + platformDdl.addTableComment(writer.applyPostAlter(), addTableComment.getName(), addTableComment.getComment()); } } @@ -669,7 +672,7 @@ public class BaseTableDdl implements TableDdl { */ @Override public void generate(DdlWrite writer, DropTable dropTable) { - dropTable(writer.apply(), dropTable.getName()); + dropTable(writer.applyPostAlter(), dropTable.getName()); if (hasValue(dropTable.getSequenceCol()) && platformDdl.getPlatform().getDbIdentity().isSupportsSequence()) { String sequenceName = dropTable.getSequenceName(); @@ -702,7 +705,7 @@ public class BaseTableDdl implements TableDdl { @Override public void generate(DdlWrite writer, AlterColumn alterColumn) { DdlMigrationHelp ddlHelp = new DdlMigrationHelp(alterColumn); - ddlHelp.writeBefore(writer.apply()); + ddlHelp.write(writer); if (isTrue(alterColumn.isHistoryExclude())) { regenerateHistoryTriggers(alterColumn.getTableName(), HistoryTableUpdate.Change.EXCLUDE, alterColumn.getColumnName()); @@ -750,11 +753,10 @@ public class BaseTableDdl implements TableDdl { // add constraint last (after potential type change) addCheckConstraint(writer, alterColumn); } - ddlHelp.writeAfter(writer.apply()); } private void alterColumnComment(DdlWrite writer, AlterColumn alterColumn) { - platformDdl.addColumnComment(writer.apply(), alterColumn.getTableName(), alterColumn.getColumnName(), alterColumn.getComment()); + platformDdl.addColumnComment(writer.applyPostAlter(), alterColumn.getTableName(), alterColumn.getColumnName(), alterColumn.getComment()); } /** @@ -792,23 +794,28 @@ public class BaseTableDdl implements TableDdl { } protected void dropCheckConstraint(DdlWrite writer, AlterColumn alter, String constraintName) { - writer.apply().appendStatement(platformDdl.alterTableDropConstraint(alter.getTableName(), constraintName)); + writer.applyDropDependencies() + .appendStatement(platformDdl.alterTableDropConstraint(alter.getTableName(), constraintName)); } protected void addCheckConstraint(DdlWrite writer, AlterColumn alter) { - writer.apply().appendStatement(platformDdl.alterTableAddCheckConstraint(alter.getTableName(), alter.getCheckConstraintName(), alter.getCheckConstraint())); + writer.applyPostAlter() + .appendStatement(platformDdl.alterTableAddCheckConstraint(alter.getTableName(), alter.getCheckConstraintName(), alter.getCheckConstraint())); } + protected void alterColumnAddForeignKey(DdlWrite writer, AlterColumn alterColumn) { - alterTableAddForeignKey(writer.getOptions(), writer.apply(), new WriteForeignKey(alterColumn)); + alterTableAddForeignKey(writer.getOptions(), writer.applyForeignKeys(), new WriteForeignKey(alterColumn)); } protected void alterColumnDropForeignKey(DdlWrite writer, AlterColumn alter) { - writer.apply().appendStatement(platformDdl.alterTableDropForeignKey(alter.getTableName(), alter.getDropForeignKey())); + writer.applyDropDependencies() + .appendStatement(platformDdl.alterTableDropForeignKey(alter.getTableName(), alter.getDropForeignKey())); } protected void alterColumnDropUniqueConstraint(DdlWrite writer, AlterColumn alter) { - writer.apply().appendStatement(platformDdl.alterTableDropUniqueConstraint(alter.getTableName(), alter.getDropUnique())); + writer.applyDropDependencies() + .appendStatement(platformDdl.alterTableDropUniqueConstraint(alter.getTableName(), alter.getDropUnique())); } protected void alterColumnAddUniqueOneToOneConstraint(DdlWrite writer, AlterColumn alter) { @@ -822,7 +829,8 @@ public class BaseTableDdl implements TableDdl { protected void addUniqueConstraint(DdlWrite writer, AlterColumn alter, String uqName) { String[] cols = {alter.getColumnName()}; boolean notNull = alter.isNotnull() != null ? alter.isNotnull() : Boolean.TRUE.equals(alter.isNotnull()); - writer.apply().appendStatement(platformDdl.alterTableAddUniqueConstraint(alter.getTableName(), uqName, cols, notNull ? null : cols)); + writer.applyPostAlter() + .appendStatement(platformDdl.alterTableAddUniqueConstraint(alter.getTableName(), uqName, cols, notNull ? null : cols)); writer.dropAllForeignKeys().appendStatement(platformDdl.dropIndex(uqName, alter.getTableName())); } @@ -835,18 +843,15 @@ public class BaseTableDdl implements TableDdl { protected void alterTableAddColumn(DdlWrite writer, String tableName, Column column, boolean onHistoryTable, boolean withHistory) { DdlMigrationHelp help = new DdlMigrationHelp(tableName, column, withHistory); if (!onHistoryTable) { - help.writeBefore(writer.apply()); + help.write(writer); } platformDdl.alterTableAddColumn(writer, tableName, column, onHistoryTable, help.getDefaultValue()); final String comment = column.getComment(); if (comment != null && !comment.isEmpty()) { - platformDdl.addColumnComment(writer.apply(), tableName, column.getName(), comment); + platformDdl.addColumnComment(writer.applyPostAlter(), tableName, column.getName(), comment); } - if (!onHistoryTable) { - help.writeAfter(writer.apply()); - } } protected boolean isFalse(Boolean value) { diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/DbTriggerBasedHistoryDdl.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/DbTriggerBasedHistoryDdl.java index 252cd271b..10644a8a1 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/DbTriggerBasedHistoryDdl.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/DbTriggerBasedHistoryDdl.java @@ -5,7 +5,6 @@ import io.ebean.config.DbConstraintNaming; import io.ebeaninternal.dbmigration.ddlgeneration.DdlBuffer; import io.ebeaninternal.dbmigration.ddlgeneration.DdlWrite; import io.ebeaninternal.dbmigration.migration.AddHistoryTable; -import io.ebeaninternal.dbmigration.migration.AlterColumn; import io.ebeaninternal.dbmigration.migration.DropHistoryTable; import io.ebeaninternal.dbmigration.model.MColumn; import io.ebeaninternal.dbmigration.model.MTable; @@ -63,8 +62,7 @@ public abstract class DbTriggerBasedHistoryDdl implements PlatformHistoryDdl { protected abstract void updateHistoryTriggers(DbTriggerUpdate triggerUpdate); /** - * Process the HistoryTableUpdate which can result in changes to the apply, rollback - * and drop scripts. + * Process the HistoryTableUpdate which can result in changes to the apply, rollback and drop scripts. */ protected void updateTriggers(DdlWrite writer, MTable table, HistoryTableUpdate update) { @@ -88,7 +86,10 @@ public abstract class DbTriggerBasedHistoryDdl implements PlatformHistoryDdl { // drop in appropriate order dropTriggers(writer.applyDropDependencies(), baseTable); - dropHistoryTableEtc(writer.applyDropDependencies(), baseTable); + dropWithHistoryView(writer.applyDropDependencies(), baseTable); + dropHistoryTable(writer.applyDropDependencies(), baseTable); + + dropSysPeriodColumns(writer, baseTable); } @Override @@ -107,14 +108,19 @@ public abstract class DbTriggerBasedHistoryDdl implements PlatformHistoryDdl { public void createWithHistory(DdlWrite writer, MTable table) { String baseTable = table.getName(); - String whenCreatedColumn = table.getWhenCreatedColumn(); - dropTriggers(writer.dropAll(), baseTable); - dropHistoryTableEtc(writer.dropAll(), baseTable); + addSysPeriodColumns(writer.apply(), baseTable, table.getWhenCreatedColumn()); + createHistoryTable(writer.applyPostAlter(), table); - addHistoryTable(writer, table, whenCreatedColumn); - createStoredFunction(writer, table); createTriggers(writer, table); + createWithHistoryView(writer.applyPostAlter(), table.getName()); + + // drop all scripts + dropTriggers(writer.dropAll(), baseTable); + dropWithHistoryView(writer.dropAll(), baseTable); + dropHistoryTable(writer.dropAll(), baseTable); + // no need to dropSysPeriodColumns as whole table will be deleted soon + } protected abstract void createTriggers(DdlWrite writer, MTable table); @@ -156,7 +162,7 @@ public abstract class DbTriggerBasedHistoryDdl implements PlatformHistoryDdl { DdlBuffer apply = writer.applyHistoryView(); addSysPeriodColumns(apply, baseTableName, whenCreatedColumn); - createHistoryTable(apply, table); + createHistoryTable(writer.applyPostAlter(), table); createWithHistoryView(apply, baseTableName); } @@ -234,18 +240,17 @@ public abstract class DbTriggerBasedHistoryDdl implements PlatformHistoryDdl { appendColumnName(apply, prefix, sysPeriodEnd); } - protected void dropHistoryTableEtc(DdlBuffer buffer, String baseTableName) { - - buffer.append("drop view ").append(baseTableName).append(viewSuffix).endOfStatement(); - dropSysPeriodColumns(buffer, baseTableName); - buffer.append("drop table ").append(baseTableName).append(historySuffix).endOfStatement().end(); + protected void dropWithHistoryView(DdlBuffer apply, String baseTableName) { + apply.append("drop view ").append(baseTableName).append(viewSuffix).endOfStatement(); } - protected void dropSysPeriodColumns(DdlBuffer buffer, String baseTableName) { - DdlWrite writer = new DdlWrite(); + protected void dropHistoryTable(DdlBuffer apply, String baseTableName) { + apply.append("drop table ").append(baseTableName).append(historySuffix).endOfStatement().end(); + } + + protected void dropSysPeriodColumns(DdlWrite writer, String baseTableName) { platformDdl.alterTableDropColumn(writer, baseTableName, sysPeriodStart); platformDdl.alterTableDropColumn(writer, baseTableName, sysPeriodEnd); - buffer.append(writer.apply().getBuffer()); // Workaround - will be removed later } protected void appendInsertIntoHistory(DdlBuffer buffer, String historyTable, List columns) { diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/HanaHistoryDdl.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/HanaHistoryDdl.java index 7e743048c..917fc35dc 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/HanaHistoryDdl.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/HanaHistoryDdl.java @@ -19,7 +19,6 @@ public class HanaHistoryDdl implements PlatformHistoryDdl { private String systemPeriodEnd; private PlatformDdl platformDdl; private String historySuffix; - private final AtomicInteger counter = new AtomicInteger(0); private Map createdHistoryTables = new ConcurrentHashMap<>(); @Override @@ -64,7 +63,8 @@ public class HanaHistoryDdl implements PlatformHistoryDdl { apply.append("alter table ").append(tableName).append(" add period for system_time(").append(systemPeriodStart) .append(",").append(systemPeriodEnd).append(")").endOfStatement(); - enableSystemVersioning(apply, tableName, historyTableName, true, false); + enableSystemVersioning(apply, tableName, true); + platformDdl.alterTable(writer, tableName).setHistoryHandled(); createdHistoryTables.put(tableName, historyTableName); @@ -123,30 +123,14 @@ public class HanaHistoryDdl implements PlatformHistoryDdl { } public void disableSystemVersioning(DdlBuffer apply, String tableName) { - disableSystemVersioning(apply, tableName, false); + apply.append("alter table ").append(tableName).append(" drop system versioning").endOfStatement(); } - public void disableSystemVersioning(DdlBuffer apply, String tableName, boolean uniqueStatement) { - apply.append("alter table ").append(tableName).append(" drop system versioning"); - if (uniqueStatement) { - // needed for the DB migration test to prevent the statement from being filtered - // out as a duplicate - apply.append(" /* ").append(String.valueOf(counter.getAndIncrement())).append(" */"); - } - apply.endOfStatement(); - } - - public void enableSystemVersioning(DdlBuffer apply, String tableName, String historyTableName, boolean validated, - boolean uniqueStatement) { - apply.append("alter table ").append(tableName).append(" add system versioning history table ").append(historyTableName); + public void enableSystemVersioning(DdlBuffer apply, String tableName, boolean validated) { + apply.append("alter table ").append(tableName).append(" add system versioning history table ").append(tableName).append(historySuffix); if (!validated) { apply.append(" not validated"); } - if (uniqueStatement) { - // needed for the DB migration test to prevent the statement from being filtered - // out as a duplicate - apply.append(" /* ").append(String.valueOf(counter.getAndIncrement())).append(" */"); - } apply.endOfStatement(); } diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/HanaTableDdl.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/HanaTableDdl.java index 2500ad179..d760bda34 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/HanaTableDdl.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/HanaTableDdl.java @@ -2,6 +2,7 @@ package io.ebeaninternal.dbmigration.ddlgeneration.platform; import io.ebean.config.DatabaseConfig; import io.ebean.config.PropertiesWrapper; +import io.ebeaninternal.dbmigration.ddlgeneration.DdlAlterTable; import io.ebeaninternal.dbmigration.ddlgeneration.DdlWrite; import io.ebeaninternal.dbmigration.migration.AddColumn; import io.ebeaninternal.dbmigration.migration.AlterColumn; @@ -14,17 +15,10 @@ import java.util.List; public class HanaTableDdl extends BaseTableDdl { private final HanaHistoryDdl historyDdl; - private final boolean generateUniqueDdl; public HanaTableDdl(DatabaseConfig config, PlatformDdl platformDdl) { super(config, platformDdl); this.historyDdl = (HanaHistoryDdl) platformDdl.historyDdl; - if (config.getProperties() != null) { - PropertiesWrapper wrapper = new PropertiesWrapper("ebean", "hana", config.getProperties(), config.getClassLoadConfig()); - this.generateUniqueDdl = wrapper.getBoolean("generateUniqueDdl", false); - } else { - this.generateUniqueDdl = false; - } } @Override @@ -39,7 +33,12 @@ public class HanaTableDdl extends BaseTableDdl { boolean manageSystemVersioning = isTrue(table.isWithHistory()) && historyDdl.isSystemVersioningEnabled(tableName); if (manageSystemVersioning) { - historyDdl.disableSystemVersioning(writer.apply(), table.getName(), this.generateUniqueDdl); + DdlAlterTable alter = platformDdl.alterTable(writer, tableName); + if (!alter.isHistoryHandled()) { + alter.setHistoryHandled(); + historyDdl.disableSystemVersioning(writer.apply(), table.getName()); + historyDdl.enableSystemVersioning(writer.applyPostAlter(), table.getName(), false); + } } super.generate(writer, addColumn); @@ -51,8 +50,6 @@ public class HanaTableDdl extends BaseTableDdl { for (Column column : columns) { alterTableAddColumn(writer, historyTable, column, true, true); } - - historyDdl.enableSystemVersioning(writer.apply(), table.getName(), historyTable, false, this.generateUniqueDdl); } } @@ -68,7 +65,12 @@ public class HanaTableDdl extends BaseTableDdl { boolean manageSystemVersioning = isTrue(table.isWithHistory()) && historyDdl.isSystemVersioningEnabled(tableName); if (manageSystemVersioning) { - historyDdl.disableSystemVersioning(writer.apply(), tableName, this.generateUniqueDdl); + DdlAlterTable alter = platformDdl.alterTable(writer, tableName); + if (!alter.isHistoryHandled()) { + alter.setHistoryHandled(); + historyDdl.disableSystemVersioning(writer.apply(), table.getName()); + historyDdl.enableSystemVersioning(writer.applyPostAlter(), table.getName(), false); + } } super.generate(writer, alterColumn); @@ -89,8 +91,6 @@ public class HanaTableDdl extends BaseTableDdl { platformDdl.alterColumn(writer, alterHistoryColumn); } - - historyDdl.enableSystemVersioning(writer.apply(), tableName, historyTable, false, this.generateUniqueDdl); } } @@ -106,7 +106,12 @@ public class HanaTableDdl extends BaseTableDdl { boolean manageSystemVersioning = isTrue(table.isWithHistory()) && historyDdl.isSystemVersioningEnabled(tableName); if (manageSystemVersioning) { - historyDdl.disableSystemVersioning(writer.apply(), tableName, this.generateUniqueDdl); + DdlAlterTable alter = platformDdl.alterTable(writer, tableName); + if (!alter.isHistoryHandled()) { + alter.setHistoryHandled(); + historyDdl.disableSystemVersioning(writer.apply(), table.getName()); + historyDdl.enableSystemVersioning(writer.applyPostAlter(), tableName, false); + } } super.generate(writer, dropColumn); @@ -116,7 +121,6 @@ public class HanaTableDdl extends BaseTableDdl { String historyTable = historyTable(tableName); alterTableDropColumn(writer, historyTable, dropColumn.getColumnName()); - historyDdl.enableSystemVersioning(writer.apply(), tableName, historyTable, false, this.generateUniqueDdl); } } diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformDdl.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformDdl.java index e93983683..454682a04 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformDdl.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformDdl.java @@ -77,16 +77,12 @@ public class PlatformDdl { protected String alterColumn = "alter column"; - protected String alterColumnSuffix = ""; - protected String dropUniqueConstraint = "drop constraint"; protected String addConstraint = "add constraint"; protected String addColumn = "add column"; - protected String addColumnSuffix = ""; - protected String columnSetType = ""; protected String columnSetDefault = "set default"; @@ -105,8 +101,6 @@ public class PlatformDdl { protected String dropColumn = "drop column"; - protected String dropColumnSuffix = ""; - protected String addForeignKeySkipCheck = ""; protected String uniqueIndex = "unique"; @@ -536,10 +530,8 @@ public class PlatformDdl { public void alterTableAddColumn(DdlWrite writer, String tableName, Column column, boolean onHistoryTable, String defaultValue) { String convertedType = convert(column.getType()); - DdlBuffer buffer = writer.apply(); - buffer.append("alter table ").append(tableName) - .append(" ").append(addColumn).append(" ").append(column.getName()) - .append(" ").append(convertedType); + DdlBuffer buffer = alterTable(writer, tableName).append(addColumn, column.getName()); + buffer.append(convertedType); // Add default value also to history table if it is not excluded if (defaultValue != null) { @@ -553,27 +545,18 @@ public class PlatformDdl { if (isTrue(column.isNotnull())) { buffer.appendWithSpace(columnNotNull); } - buffer.append(addColumnSuffix); - buffer.endOfStatement(); // check constraints cannot be added in one statement for h2 if (!StringHelper.isNull(column.getCheckConstraint())) { String ddl = alterTableAddCheckConstraint(tableName, column.getCheckConstraintName(), column.getCheckConstraint()); - if (hasValue(ddl)) { - buffer.append(ddl).endOfStatement(); - } + writer.applyPostAlter().appendStatement(ddl); } - } else { - buffer.append(addColumnSuffix); - buffer.endOfStatement(); } } public void alterTableDropColumn(DdlWrite writer, String tableName, String columnName) { - writer.apply().append("alter table ").append(tableName).append(" ") - .append(dropColumn).append(" ").append(columnName) - .append(dropColumnSuffix).endOfStatement(); + alterTable(writer, tableName).append(dropColumn, columnName); } /** @@ -592,10 +575,8 @@ public class PlatformDdl { *

*/ protected void alterColumnType(DdlWrite writer, AlterColumn alter) { - writer.apply().append("alter table ").append(alter.getTableName()) - .appendWithSpace(alterColumn).appendWithSpace(alter.getColumnName()) - .append(" ").append(columnSetType).append(convert(alter.getType())) - .endOfStatement(); + alterTable(writer, alter.getTableName()).append(alterColumn, alter.getColumnName()) + .append(columnSetType).append(convert(alter.getType())); } /** @@ -605,15 +586,12 @@ public class PlatformDdl { *

*/ protected void alterColumnNotnull(DdlWrite writer, AlterColumn alter) { - - DdlBuffer buffer = writer.apply().append("alter table ").append(alter.getTableName()) - .appendWithSpace(alterColumn).appendWithSpace(alter.getColumnName()); + DdlBuffer buffer = alterTable(writer, alter.getTableName()).append(alterColumn, alter.getColumnName()); if (Boolean.TRUE.equals(alter.isNotnull())) { - buffer.appendWithSpace(columnSetNotnull); + buffer.append(columnSetNotnull); } else { - buffer.appendWithSpace(columnSetNull); + buffer.append(columnSetNull); } - buffer.endOfStatement(); } /** @@ -630,14 +608,12 @@ public class PlatformDdl { *

*/ protected void alterColumnDefault(DdlWrite writer, AlterColumn alter) { - DdlBuffer buffer = writer.apply().append("alter table ").append(alter.getTableName()) - .appendWithSpace(alterColumn).appendWithSpace(alter.getColumnName()); + DdlBuffer buffer = alterTable(writer, alter.getTableName()).append(alterColumn, alter.getColumnName()); if (DdlHelp.isDropDefault(alter.getDefaultValue())) { - buffer.appendWithSpace(columnDropDefault); + buffer.append(columnDropDefault); } else { - buffer.appendWithSpace(columnSetDefault).appendWithSpace(convertDefaultValue(alter.getDefaultValue())); + buffer.append(columnSetDefault).appendWithSpace(convertDefaultValue(alter.getDefaultValue())); } - buffer.endOfStatement(); } /** @@ -662,6 +638,13 @@ public class PlatformDdl { } } + /** + * Creates or replace a new DdlAlterTable for given tableName. + */ + protected DdlAlterTable alterTable(DdlWrite writer, String tableName) { + return writer.applyAlterTable(tableName, BaseAlterTableWrite::new); + } + protected void appendColumns(String[] columns, StringBuilder buffer) { buffer.append(" ("); for (int i = 0; i < columns.length; i++) { diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PostgresHistoryDdl.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PostgresHistoryDdl.java index c5b7f23d7..228b1c529 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PostgresHistoryDdl.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PostgresHistoryDdl.java @@ -47,8 +47,8 @@ public class PostgresHistoryDdl extends DbTriggerBasedHistoryDdl { } @Override - protected void dropSysPeriodColumns(DdlBuffer buffer, String baseTableName) { - buffer.append("alter table ").append(baseTableName).append(" drop column ").append(sysPeriod).endOfStatement(); + protected void dropSysPeriodColumns(DdlWrite writer, String baseTableName) { + platformDdl.alterTableDropColumn(writer, baseTableName, sysPeriod); } @Override @@ -56,8 +56,9 @@ public class PostgresHistoryDdl extends DbTriggerBasedHistoryDdl { String baseTableName = table.getName(); String procedureName = procedureName(baseTableName); String triggerName = triggerName(baseTableName); - + List columnNames = columnNamesForApply(table); DdlBuffer apply = writer.applyHistoryTrigger(); + createOrReplaceFunction(apply, procedureName, historyTableName(baseTableName), columnNames); apply .append("create trigger ").append(triggerName).newLine() .append(" before update or delete on ").append(baseTableName).newLine() diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/SQLiteDdl.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/SQLiteDdl.java index 2242721c7..50ce99d25 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/SQLiteDdl.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/SQLiteDdl.java @@ -1,10 +1,13 @@ package io.ebeaninternal.dbmigration.ddlgeneration.platform; +import java.util.ArrayList; +import java.util.List; + import io.ebean.config.dbplatform.DatabasePlatform; +import io.ebeaninternal.dbmigration.ddlgeneration.DdlAlterTable; import io.ebeaninternal.dbmigration.ddlgeneration.DdlBuffer; import io.ebeaninternal.dbmigration.ddlgeneration.DdlOptions; import io.ebeaninternal.dbmigration.ddlgeneration.DdlWrite; -import io.ebeaninternal.dbmigration.migration.AlterColumn; /** * SQLite platform specific DDL. @@ -61,21 +64,28 @@ public class SQLiteDdl extends PlatformDdl { } @Override - public void alterColumnType(DdlWrite writer, AlterColumn alter) { - writer.apply().append("-- not supported: "); - super.alterColumnType(writer, alter); + protected DdlAlterTable alterTable(DdlWrite writer, String tableName) { + return writer.applyAlterTable(tableName, SQLiteAlterTableWrite::new); } - @Override - public void alterColumnDefault(DdlWrite writer, AlterColumn alter) { - writer.apply().append("-- not supported: "); - super.alterColumnDefault(writer, alter); - } + static class SQLiteAlterTableWrite extends BaseAlterTableWrite { + public SQLiteAlterTableWrite(String tableName) { + super(tableName); + } - @Override - public void alterColumnNotnull(DdlWrite writer, AlterColumn alter) { - writer.apply().append("-- not supported: "); - super.alterColumnNotnull(writer, alter); + @Override + protected List postProcessCommands(List cmds) { + List ret = new ArrayList(); + for (AlterCmd cmd : cmds) { + switch (cmd.getOperation()) { + case "alter column": + ret.add(newRawCommand("-- not supported: " + cmd)); + break; + default: + ret.add(cmd); + } + } + return ret; + } } - } diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/model/CurrentModel.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/model/CurrentModel.java index a369097f7..faac168ea 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/model/CurrentModel.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/model/CurrentModel.java @@ -16,6 +16,7 @@ import io.ebeaninternal.extraddl.model.ExtraDdl; import io.ebeaninternal.extraddl.model.ExtraDdlXmlReader; import io.ebeaninternal.dbmigration.ddlgeneration.PlatformDdlBuilder; +import java.io.IOException; import java.util.List; import static io.ebeaninternal.api.PlatformMatch.matchPlatform; @@ -127,10 +128,13 @@ public class CurrentModel { if (jaxbPresent) { addExtraDdl(ddl, ExtraDdlXmlReader.readBuiltin(), "-- init script "); } - ddl.append(writer.apply().getBuffer()); - ddl.append(writer.applyForeignKeys().getBuffer()); - ddl.append(writer.applyHistoryView().getBuffer()); - ddl.append(writer.applyHistoryTrigger().getBuffer()); + + try { + writer.writeApply(ddl); + } catch (IOException e) { // should not happen on StringBuilder + throw new RuntimeException(e); + } + return ddl.toString(); } @@ -157,8 +161,11 @@ public class CurrentModel { if (ddlHeader != null && !ddlHeader.isEmpty()) { ddl.append(ddlHeader).append('\n'); } - ddl.append(writer.dropAllForeignKeys().getBuffer()); - ddl.append(writer.dropAll().getBuffer()); + try { + writer.writeDropAll(ddl); + } catch (IOException e) { // should not happen on StringBuilder + throw new RuntimeException(e); + } return ddl.toString(); } diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/model/PlatformDdlWriter.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/model/PlatformDdlWriter.java index 1755e04a9..83de7e459 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/model/PlatformDdlWriter.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/model/PlatformDdlWriter.java @@ -3,7 +3,6 @@ package io.ebeaninternal.dbmigration.model; import io.ebean.config.DatabaseConfig; import io.ebean.config.dbplatform.DatabasePlatform; import io.ebean.util.IOUtils; -import io.ebeaninternal.dbmigration.ddlgeneration.DdlBuffer; import io.ebeaninternal.dbmigration.ddlgeneration.DdlHandler; import io.ebeaninternal.dbmigration.ddlgeneration.DdlWrite; import io.ebeaninternal.dbmigration.ddlgeneration.PlatformDdlBuilder; @@ -91,21 +90,7 @@ public class PlatformDdlWriter { if (header != null && !header.isEmpty()) { writer.append(header).append('\n'); } - // merge the apply buffers in the appropriate order - prependDropDependencies(writer, ddl.applyDropDependencies()); - writer.append("-- apply changes\n"); - writer.append(ddl.apply().getBuffer()); - writer.append(ddl.applyForeignKeys().getBuffer()); - writer.append(ddl.applyHistoryView().getBuffer()); - writer.append(ddl.applyHistoryTrigger().getBuffer()); - } - - private void prependDropDependencies(Writer writer, DdlBuffer buffer) throws IOException { - if (!buffer.isEmpty()) { - writer.append("-- drop dependencies\n"); - writer.append(buffer.getBuffer()); - writer.append("\n"); - } + ddl.writeApply(writer); } /** From 3a93abaa7fab811d7f8e6d17337f60e394b4df0d Mon Sep 17 00:00:00 2001 From: Roland Praml Date: Tue, 8 Mar 2022 12:43:54 +0100 Subject: [PATCH 065/114] Only moves in DDL (checked with git -c color.diff.newMoved=black -c color.diff.oldMoved=black diff --color-moved=plain '*.sql') --- .../dbmigration/clickhouse/1.1.sql | 72 +++---- .../clickhouse/1.2__dropsFor_1.1.sql | 7 - .../dbmigration/clickhouse/1.3.sql | 45 ++--- .../clickhouse/1.4__dropsFor_1.3.sql | 15 -- .../clickhouse/idx_clickhouse.migrations | 8 +- .../dbmigration/cockroach/1.1.sql | 92 ++++----- .../cockroach/1.2__dropsFor_1.1.sql | 20 +- .../dbmigration/cockroach/1.3.sql | 65 +++--- .../cockroach/1.4__dropsFor_1.3.sql | 44 ++--- .../cockroach/idx_cockroach.migrations | 8 +- .../dbmigration/db2fori/1.0__initial.sql | 6 +- .../migrationtest/dbmigration/db2fori/1.1.sql | 96 ++++----- .../dbmigration/db2fori/1.2__dropsFor_1.1.sql | 20 +- .../migrationtest/dbmigration/db2fori/1.3.sql | 71 +++---- .../dbmigration/db2fori/1.4__dropsFor_1.3.sql | 44 ++--- .../dbmigration/db2fori/idx_db2.migrations | 10 +- .../dbmigration/db2legacy/1.0__initial.sql | 6 +- .../dbmigration/db2legacy/1.1.sql | 96 ++++----- .../db2legacy/1.2__dropsFor_1.1.sql | 20 +- .../dbmigration/db2legacy/1.3.sql | 71 +++---- .../db2legacy/1.4__dropsFor_1.3.sql | 44 ++--- .../dbmigration/db2legacy/idx_db2.migrations | 10 +- .../dbmigration/db2luw/1.0__initial.sql | 6 +- .../migrationtest/dbmigration/db2luw/1.1.sql | 96 ++++----- .../dbmigration/db2luw/1.2__dropsFor_1.1.sql | 20 +- .../migrationtest/dbmigration/db2luw/1.3.sql | 71 +++---- .../dbmigration/db2luw/1.4__dropsFor_1.3.sql | 44 ++--- .../dbmigration/db2luw/idx_db2.migrations | 10 +- .../dbmigration/db2zos/1.0__initial.sql | 6 +- .../migrationtest/dbmigration/db2zos/1.1.sql | 96 ++++----- .../dbmigration/db2zos/1.2__dropsFor_1.1.sql | 20 +- .../migrationtest/dbmigration/db2zos/1.3.sql | 71 +++---- .../dbmigration/db2zos/1.4__dropsFor_1.3.sql | 44 ++--- .../dbmigration/db2zos/idx_db2.migrations | 10 +- .../migrationtest/dbmigration/generic/1.1.sql | 96 ++++----- .../dbmigration/generic/1.2__dropsFor_1.1.sql | 7 - .../migrationtest/dbmigration/generic/1.3.sql | 69 +++---- .../dbmigration/generic/1.4__dropsFor_1.3.sql | 15 -- .../generic/idx_generic.migrations | 8 +- .../dbmigration/h2/1.0__initial.sql | 106 +++++----- .../migrationtest/dbmigration/h2/1.1.sql | 116 +++++------ .../dbmigration/h2/1.2__dropsFor_1.1.sql | 25 +-- .../migrationtest/dbmigration/h2/1.3.sql | 69 ++++--- .../dbmigration/h2/1.4__dropsFor_1.3.sql | 25 +-- .../dbmigration/h2/idx_h2.migrations | 10 +- .../migrationtest/dbmigration/hsqldb/1.1.sql | 96 ++++----- .../dbmigration/hsqldb/1.2__dropsFor_1.1.sql | 20 +- .../migrationtest/dbmigration/hsqldb/1.3.sql | 69 +++---- .../dbmigration/hsqldb/1.4__dropsFor_1.3.sql | 44 ++--- .../dbmigration/hsqldb/idx_hsqldb.migrations | 8 +- .../dbmigration/mariadb-noprocs/1.1.sql | 68 +++---- .../mariadb-noprocs/1.2__dropsFor_1.1.sql | 20 +- .../dbmigration/mariadb-noprocs/1.3.sql | 49 ++--- .../mariadb-noprocs/1.4__dropsFor_1.3.sql | 44 ++--- .../mariadb-noprocs/idx_mariadb.migrations | 8 +- .../migrationtest/dbmigration/mariadb/1.1.sql | 68 +++---- .../dbmigration/mariadb/1.2__dropsFor_1.1.sql | 2 +- .../migrationtest/dbmigration/mariadb/1.3.sql | 49 ++--- .../dbmigration/mariadb/1.4__dropsFor_1.3.sql | 2 +- .../mariadb/idx_mariadb.migrations | 8 +- .../dbmigration/mysql/1.0__initial.sql | 42 ++-- .../migrationtest/dbmigration/mysql/1.1.sql | 96 ++++----- .../dbmigration/mysql/1.2__dropsFor_1.1.sql | 1 - .../migrationtest/dbmigration/mysql/1.3.sql | 53 +++-- .../dbmigration/mysql/1.4__dropsFor_1.3.sql | 5 +- .../dbmigration/mysql/idx_mysql.migrations | 8 +- .../dbmigration/mysql55/1.0__initial.sql | 42 ++-- .../migrationtest/dbmigration/mysql55/1.1.sql | 96 ++++----- .../dbmigration/mysql55/1.2__dropsFor_1.1.sql | 1 - .../migrationtest/dbmigration/mysql55/1.3.sql | 53 +++-- .../dbmigration/mysql55/1.4__dropsFor_1.3.sql | 5 +- .../dbmigration/mysql55/idx_mysql.migrations | 8 +- .../dbmigration/nuodb/1.0__initial.sql | 42 ++-- .../migrationtest/dbmigration/nuodb/1.1.sql | 112 +++++------ .../dbmigration/nuodb/1.2__dropsFor_1.1.sql | 25 +-- .../migrationtest/dbmigration/nuodb/1.3.sql | 65 +++--- .../dbmigration/nuodb/1.4__dropsFor_1.3.sql | 25 +-- .../dbmigration/nuodb/idx_nuodb.migrations | 10 +- .../migrationtest/dbmigration/oracle/1.1.sql | 186 +++++++++--------- .../dbmigration/oracle/1.2__dropsFor_1.1.sql | 20 +- .../migrationtest/dbmigration/oracle/1.3.sql | 79 ++++---- .../dbmigration/oracle/1.4__dropsFor_1.3.sql | 44 ++--- .../dbmigration/oracle/idx_oracle.migrations | 8 +- .../dbmigration/oracle11/1.1.sql | 186 +++++++++--------- .../oracle11/1.2__dropsFor_1.1.sql | 20 +- .../dbmigration/oracle11/1.3.sql | 81 ++++---- .../oracle11/1.4__dropsFor_1.3.sql | 44 ++--- .../oracle11/idx_oracle.migrations | 8 +- .../dbmigration/postgres/1.0__initial.sql | 40 ++-- .../dbmigration/postgres/1.1.sql | 110 +++++------ .../postgres/1.2__dropsFor_1.1.sql | 25 +-- .../dbmigration/postgres/1.3.sql | 73 ++++--- .../postgres/1.4__dropsFor_1.3.sql | 23 +-- .../postgres/idx_postgres.migrations | 10 +- .../dbmigration/postgres9/1.0__initial.sql | 40 ++-- .../dbmigration/postgres9/1.1.sql | 110 +++++------ .../postgres9/1.2__dropsFor_1.1.sql | 25 +-- .../dbmigration/postgres9/1.3.sql | 73 ++++--- .../postgres9/1.4__dropsFor_1.3.sql | 23 +-- .../postgres9/idx_postgres.migrations | 10 +- .../dbmigration/sqlanywhere/1.1.sql | 96 ++++----- .../sqlanywhere/1.2__dropsFor_1.1.sql | 7 - .../dbmigration/sqlanywhere/1.3.sql | 69 +++---- .../sqlanywhere/1.4__dropsFor_1.3.sql | 15 -- .../sqlanywhere/idx_sqlanywhere.migrations | 8 +- .../migrationtest/dbmigration/sqlite/1.1.sql | 92 ++++----- .../dbmigration/sqlite/1.2__dropsFor_1.1.sql | 7 - .../migrationtest/dbmigration/sqlite/1.3.sql | 65 +++--- .../dbmigration/sqlite/1.4__dropsFor_1.3.sql | 15 -- .../dbmigration/sqlite/idx_sqlite.migrations | 8 +- .../dbmigration/sqlserver16/1.0__initial.sql | 6 +- .../dbmigration/sqlserver16/1.1.sql | 80 ++++---- .../sqlserver16/1.2__dropsFor_1.1.sql | 2 +- .../dbmigration/sqlserver16/1.3.sql | 73 +++---- .../sqlserver16/1.4__dropsFor_1.3.sql | 2 +- .../sqlserver16/idx_sqlserver.migrations | 10 +- .../dbmigration/sqlserver17/1.0__initial.sql | 6 +- .../dbmigration/sqlserver17/1.1.sql | 80 ++++---- .../sqlserver17/1.2__dropsFor_1.1.sql | 2 +- .../dbmigration/sqlserver17/1.3.sql | 75 +++---- .../sqlserver17/1.4__dropsFor_1.3.sql | 2 +- .../sqlserver17/idx_sqlserver.migrations | 10 +- .../dbmigration/yugabyte/1.0__initial.sql | 86 ++++---- .../dbmigration/yugabyte/1.1.sql | 112 +++++------ .../yugabyte/1.2__dropsFor_1.1.sql | 25 +-- .../dbmigration/yugabyte/1.3.sql | 73 ++++--- .../yugabyte/1.4__dropsFor_1.3.sql | 23 +-- .../yugabyte/idx_yugabyte.migrations | 10 +- 128 files changed, 2555 insertions(+), 2896 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 b7d677a4d..032c92d9f 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 @@ -1,4 +1,10 @@ -- Migrationscripts for ebean unittest +-- drop dependencies +alter table migtest_e_basic drop constraint if exists ck_migtest_e_basic_status; +alter table migtest_e_basic drop constraint if exists ck_migtest_e_basic_status2; +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_enum drop constraint if exists ck_migtest_e_enum_test_status; -- apply changes create table migtest_e_user ( id UInt32 @@ -19,63 +25,59 @@ create table migtest_mtm_m_phone_numbers ( value String ) 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; + + + +-- 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_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; +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 alter column status2 String; +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 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; +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 column new_integer UInt32 default 42; +alter table migtest_e_history alter column test_string UInt64; 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; +alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I','?')); +alter table migtest_e_basic add constraint uq_migtest_e_basic_description unique (description); +-- NOTE: table has @History - special migration may be necessary +update migtest_e_basic set new_boolean_field = old_boolean; +alter table migtest_e_basic add constraint ck_migtest_e_basic_progress check ( progress in (0,1,2)); +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); 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 index bf1e082c9..219f0c1c5 100644 --- 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 @@ -1,15 +1,8 @@ -- Migrationscripts for ebean unittest --- apply changes alter table migtest_e_basic drop column description_file; - 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 index 88cea0bee..79da8548d 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/clickhouse/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/clickhouse/1.3.sql @@ -1,49 +1,50 @@ -- Migrationscripts for ebean unittest +-- drop dependencies +alter table migtest_e_basic drop constraint if exists ck_migtest_e_basic_status; +alter table migtest_e_basic drop constraint if exists ck_migtest_e_basic_status2; +alter table migtest_e_basic drop constraint uq_migtest_e_basic_description; +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_enum drop constraint if exists ck_migtest_e_enum_test_status; -- 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; + +update migtest_e_basic set user_id = 23 where user_id is 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_basic alter column status drop default; +alter table migtest_e_basic alter column status set null; 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 description_file blob; 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; +alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I')); +alter table migtest_e_basic add constraint ck_migtest_e_basic_status2 check ( status2 in ('N','A','I')); +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 add constraint ck_migtest_e_enum_test_status check ( test_status in ('N','A','I')); 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 f45a36211..033f0a5a2 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 @@ -1,33 +1,18 @@ -- 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 index 83e4a9ccc..d3b643f3d 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 @@ -697238714, 1.0__initial.sql -1864520180, 1.1.sql -628353409, 1.2__dropsFor_1.1.sql --489730240, 1.3.sql --1045594368, 1.4__dropsFor_1.3.sql +-1730180752, 1.1.sql +-155876508, 1.2__dropsFor_1.1.sql +1059765262, 1.3.sql +767202122, 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 97a71855d..91f885e05 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 @@ -1,4 +1,14 @@ -- Migrationscripts for ebean unittest +-- drop dependencies +alter table if exists migtest_fk_cascade drop constraint if exists fk_migtest_fk_cascade_one_id; +alter table if exists 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 drop constraint if exists ck_migtest_e_basic_status2; +drop index uq_migtest_e_basic_indextest2 cascade; +drop index uq_migtest_e_basic_indextest6 cascade; +alter table migtest_e_enum drop constraint if exists ck_migtest_e_enum_test_status; +drop index if exists ix_migtest_e_basic_indextest1; +drop index if exists ix_migtest_e_basic_indextest5; -- apply changes create table migtest_e_user ( id integer generated by default as identity not null, @@ -22,78 +32,64 @@ create table migtest_mtm_m_phone_numbers ( 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); -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; - -drop index uq_migtest_e_basic_indextest2 cascade; -drop index uq_migtest_e_basic_indextest6 cascade; -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; + + + +-- 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_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_e_basic alter column status set default 'A'; +alter table migtest_e_basic alter column status set not null; +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; +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; +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 column new_integer integer default 42 not null; +alter table migtest_e_history alter column test_string type bigint; 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 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; +alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I','?')); +alter table migtest_e_basic add constraint uq_migtest_e_basic_description unique (description); +-- NOTE: table has @History - special migration may be necessary +update migtest_e_basic set new_boolean_field = old_boolean; +alter table migtest_e_basic add constraint ck_migtest_e_basic_progress check ( progress in (0,1,2)); +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); 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; @@ -109,8 +105,14 @@ alter table migtest_mtm_m_migtest_mtm_c add constraint fk_migtest_mtm_m_migtest_ 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; +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; 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_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 add constraint fk_migtest_fk_set_null_one_id foreign key (one_id) references migtest_fk_one (id) on delete restrict on update restrict; +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_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 index dc03cd36d..10f33e294 100644 --- 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 @@ -1,16 +1,10 @@ -- Migrationscripts for ebean unittest -- apply changes -alter table migtest_e_basic drop column description_file; - -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 cascade; drop sequence if exists migtest_e_ref_seq; +alter table migtest_e_basic drop column description_file; +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 cascade; 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 index 6b369c321..f0f005c1f 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/cockroach/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/cockroach/1.3.sql @@ -1,4 +1,21 @@ -- Migrationscripts for ebean unittest +-- drop dependencies +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 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_e_basic drop constraint if exists ck_migtest_e_basic_status; +alter table migtest_e_basic drop constraint if exists ck_migtest_e_basic_status2; +drop index uq_migtest_e_basic_description cascade; +alter table if exists migtest_e_basic drop constraint if exists fk_migtest_e_basic_user_id; +drop index uq_migtest_e_basic_status_indextest1 cascade; +drop index uq_migtest_e_basic_name cascade; +drop index uq_migtest_e_basic_indextest4 cascade; +drop index uq_migtest_e_basic_indextest5 cascade; +alter table migtest_e_enum drop constraint if exists ck_migtest_e_enum_test_status; +drop index if exists ix_migtest_e_basic_indextest3; +drop index if exists ix_migtest_e_basic_indextest6; -- apply changes create table migtest_e_ref ( id integer generated by default as identity not null, @@ -7,60 +24,44 @@ create table migtest_e_ref ( 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; + +update migtest_e_basic set user_id = 23 where user_id is 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_basic alter column status drop default; +alter table migtest_e_basic alter column status drop not null; 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')); -drop index uq_migtest_e_basic_description cascade; - -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 description_file bytea; 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; - -drop index uq_migtest_e_basic_status_indextest1 cascade; -drop index uq_migtest_e_basic_name cascade; -drop index uq_migtest_e_basic_indextest4 cascade; -drop index uq_migtest_e_basic_indextest5 cascade; -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_history4 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; +alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I')); +alter table migtest_e_basic add constraint ck_migtest_e_basic_status2 check ( status2 in ('N','A','I')); +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 add constraint ck_migtest_e_enum_test_status check ( test_status in ('N','A','I')); 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; +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_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.4__dropsFor_1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/cockroach/1.4__dropsFor_1.3.sql index 585b09841..58c3531c6 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 @@ -1,35 +1,21 @@ -- 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 cascade; drop sequence if exists migtest_e_user_seq; +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 cascade; 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 0ba59d68c..126d21dc2 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 @@ -1611775717, 1.0__initial.sql --525928117, 1.1.sql -746142601, 1.2__dropsFor_1.1.sql --1795996592, 1.3.sql --574081288, 1.4__dropsFor_1.3.sql +-1338613903, 1.1.sql +-1958981572, 1.2__dropsFor_1.1.sql +1074808242, 1.3.sql +546721540, 1.4__dropsFor_1.3.sql 561281075, R__order_views.sql 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 index 05b097f9e..bc5ff797e 100644 --- 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 @@ -76,8 +76,6 @@ create table migtest_e_basic ( 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, @@ -130,7 +128,6 @@ create table migtest_e_ref ( 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, @@ -162,6 +159,9 @@ create table migtest_oto_master ( constraint pk_migtest_oto_master 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; +alter table migtest_e_ref add constraint uq_migtest_e_ref_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_migtest_fk_cascade_one_id on migtest_fk_cascade (one_id); 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 index cfed3e3ef..dda555e4b 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/db2fori/1.1.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2fori/1.1.sql @@ -1,4 +1,14 @@ -- Migrationscripts for ebean unittest +-- drop dependencies +alter table migtest_fk_cascade drop constraint fk_migtest_fk_cascade_one_id; +alter table migtest_fk_set_null drop constraint fk_migtest_fk_set_null_one_id; +alter table migtest_e_basic drop constraint ck_migtest_e_basic_status; +alter table migtest_e_basic drop constraint ck_migtest_e_basic_status2; +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_enum drop constraint ck_migtest_e_enum_test_status; +drop index ix_migtest_e_basic_indextest1; +drop index ix_migtest_e_basic_indextest5; -- apply changes create table migtest_e_user ( id integer generated by default as identity not null, @@ -22,81 +32,67 @@ create table migtest_mtm_m_phone_numbers ( 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; + + + +-- 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_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_e_basic alter column status set default 'A'; +alter table migtest_e_basic alter column status set not null; +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; +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; +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 column new_integer integer default 42 not null; +alter table migtest_e_history alter column test_string set data type bigint; 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; +alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I','?')); +create unique index uq_migtest_e_basic_description on migtest_e_basic(description) exclude null keys; +-- NOTE: table has @History - special migration may be necessary +update migtest_e_basic set new_boolean_field = old_boolean; +alter table migtest_e_basic add constraint ck_migtest_e_basic_progress check ( progress in (0,1,2)); +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; +comment on column migtest_e_history.test_string is 'Column altered to long now'; +comment on table migtest_e_history is 'We have history now'; 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; @@ -112,8 +108,14 @@ alter table migtest_mtm_m_migtest_mtm_c add constraint fk_migtest_mtm_m_migtest_ 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; +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; 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_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 add constraint fk_migtest_fk_set_null_one_id foreign key (one_id) references migtest_fk_one (id) on delete restrict; +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_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/db2fori/1.2__dropsFor_1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/db2fori/1.2__dropsFor_1.1.sql index 6dd324358..248e4eb1d 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/db2fori/1.2__dropsFor_1.1.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2fori/1.2__dropsFor_1.1.sql @@ -1,16 +1,10 @@ -- Migrationscripts for ebean unittest -- apply changes -alter table migtest_e_basic drop column description_file; - -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; +alter table migtest_e_basic drop column description_file; +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; 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 index 67dc88e93..e70e9c4fe 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/db2fori/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2fori/1.3.sql @@ -1,68 +1,69 @@ -- Migrationscripts for ebean unittest +-- drop dependencies +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_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_e_basic drop constraint ck_migtest_e_basic_status; +alter table migtest_e_basic drop constraint ck_migtest_e_basic_status2; +alter table migtest_e_basic drop constraint uq_migtest_e_basic_description; +alter table migtest_e_basic drop constraint fk_migtest_e_basic_user_id; +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_enum drop constraint ck_migtest_e_enum_test_status; +drop index ix_migtest_e_basic_indextest3; +drop index ix_migtest_e_basic_indextest6; -- 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; + +update migtest_e_basic set user_id = 23 where user_id is 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_basic alter column status drop default; +alter table migtest_e_basic alter column status drop not null; 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 description_file blob(64M); 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; +alter table migtest_e_ref add constraint uq_migtest_e_ref_name unique (name); +alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I')); +alter table migtest_e_basic add constraint ck_migtest_e_basic_status2 check ( status2 in ('N','A','I')); +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 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 ''; 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; +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_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.4__dropsFor_1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/db2fori/1.4__dropsFor_1.3.sql index bd6f31169..9c502bad5 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/db2fori/1.4__dropsFor_1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2fori/1.4__dropsFor_1.3.sql @@ -1,35 +1,21 @@ -- 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; +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 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/db2fori/idx_db2.migrations b/ebean-test/src/test/resources/migrationtest/dbmigration/db2fori/idx_db2.migrations index 4b0730bca..93127463e 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/db2fori/idx_db2.migrations +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2fori/idx_db2.migrations @@ -1,7 +1,7 @@ --1545566871, 1.0__initial.sql --1594597621, 1.1.sql --1093742153, 1.2__dropsFor_1.1.sql -217221833, 1.3.sql -441227910, 1.4__dropsFor_1.3.sql +-2143374692, 1.0__initial.sql +871483623, 1.1.sql +-812302674, 1.2__dropsFor_1.1.sql +-628362807, 1.3.sql +-915919511, 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 index 436ede7d6..9023b5a61 100644 --- 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 @@ -76,8 +76,6 @@ create table migtest_e_basic ( 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, @@ -130,7 +128,6 @@ create table migtest_e_ref ( 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, @@ -162,6 +159,9 @@ create table migtest_oto_master ( constraint pk_migtest_oto_master 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; +alter table migtest_e_ref add constraint uq_mgtst__rf_nm unique (name); 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); 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 index eb81e66e0..0cef0468a 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/db2legacy/1.1.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2legacy/1.1.sql @@ -1,4 +1,14 @@ -- Migrationscripts for ebean unittest +-- drop dependencies +alter table migtest_fk_cascade drop constraint fk_mgtst_fk_65kf6l; +alter table migtest_fk_set_null drop constraint fk_mgtst_fk_wicx8x; +alter table migtest_e_basic drop constraint ck_mgtst__bsc_stts; +alter table migtest_e_basic drop constraint ck_mgtst__b_z543fg; +alter table migtest_e_basic drop constraint uq_mgtst__b_4aybzy; +alter table migtest_e_basic drop constraint uq_mgtst__b_4ayc02; +alter table migtest_e_enum drop constraint ck_mgtst__n_773sok; +drop index ix_mgtst__b_eu8csq; +drop index ix_mgtst__b_eu8csu; -- apply changes create table migtest_e_user ( id integer generated by default as identity not null, @@ -22,81 +32,67 @@ create table migtest_mtm_m_phone_numbers ( 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; + + + +-- 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_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_e_basic alter column status set default 'A'; +alter table migtest_e_basic alter column status set not null; +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; +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; +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 column new_integer integer default 42 not null; +alter table migtest_e_history alter column test_string set data type bigint; 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; +alter table migtest_e_basic add constraint ck_mgtst__bsc_stts check ( status in ('N','A','I','?')); +create unique index uq_migtest_e_basic_description on migtest_e_basic(description) exclude null keys; +-- NOTE: table has @History - special migration may be necessary +update migtest_e_basic set new_boolean_field = old_boolean; +alter table migtest_e_basic add constraint ck_mgtst__b_l39g41 check ( progress in (0,1,2)); +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; +comment on column migtest_e_history.test_string is 'Column altered to long now'; +comment on table migtest_e_history is 'We have history now'; 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; @@ -112,8 +108,14 @@ alter table migtest_mtm_m_migtest_mtm_c add constraint fk_mgtst_mt_ggi34a foreig 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; +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; 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_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 add constraint fk_mgtst_fk_wicx8x foreign key (one_id) references migtest_fk_one (id) on delete restrict; +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_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 index 6dd324358..248e4eb1d 100644 --- 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 @@ -1,16 +1,10 @@ -- Migrationscripts for ebean unittest -- apply changes -alter table migtest_e_basic drop column description_file; - -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; +alter table migtest_e_basic drop column description_file; +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; 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 index c14e3c85b..95cab2ab2 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/db2legacy/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2legacy/1.3.sql @@ -1,68 +1,69 @@ -- Migrationscripts for ebean unittest +-- drop dependencies +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_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_e_basic drop constraint ck_mgtst__bsc_stts; +alter table migtest_e_basic drop constraint ck_mgtst__b_z543fg; +alter table migtest_e_basic drop constraint uq_mgtst__b_vs45xo; +alter table migtest_e_basic drop constraint fk_mgtst__bsc_sr_d; +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; +alter table migtest_e_enum drop constraint ck_mgtst__n_773sok; +drop index ix_mgtst__b_eu8css; +drop index ix_mgtst__b_eu8csv; -- 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; + +update migtest_e_basic set user_id = 23 where user_id is 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_basic alter column status drop default; +alter table migtest_e_basic alter column status drop not null; 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 description_file blob(64M); 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; +alter table migtest_e_ref add constraint uq_mgtst__rf_nm unique (name); +alter table migtest_e_basic add constraint ck_mgtst__bsc_stts check ( status in ('N','A','I')); +alter table migtest_e_basic add constraint ck_mgtst__b_z543fg check ( status2 in ('N','A','I')); +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 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 ''; 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; +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_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.4__dropsFor_1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/db2legacy/1.4__dropsFor_1.3.sql index bd6f31169..9c502bad5 100644 --- 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 @@ -1,35 +1,21 @@ -- 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; +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 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/idx_db2.migrations b/ebean-test/src/test/resources/migrationtest/dbmigration/db2legacy/idx_db2.migrations index e9d6d9fb7..9c2586f1a 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/db2legacy/idx_db2.migrations +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2legacy/idx_db2.migrations @@ -1,7 +1,7 @@ -835032311, 1.0__initial.sql --1126979163, 1.1.sql --1093742153, 1.2__dropsFor_1.1.sql -661912050, 1.3.sql -441227910, 1.4__dropsFor_1.3.sql +1284033584, 1.0__initial.sql +421195742, 1.1.sql +-812302674, 1.2__dropsFor_1.1.sql +-1132737052, 1.3.sql +-915919511, 1.4__dropsFor_1.3.sql 561281075, R__order_views.sql diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/db2luw/1.0__initial.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/db2luw/1.0__initial.sql index 9123e160b..09c308846 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/db2luw/1.0__initial.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2luw/1.0__initial.sql @@ -76,8 +76,6 @@ create table migtest_e_basic ( 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, @@ -130,7 +128,6 @@ create table migtest_e_ref ( 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, @@ -162,6 +159,9 @@ create table migtest_oto_master ( constraint pk_migtest_oto_master 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; +alter table migtest_e_ref add constraint uq_migtest_e_ref_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_migtest_fk_cascade_one_id on migtest_fk_cascade (one_id); diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/db2luw/1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/db2luw/1.1.sql index c56948302..6fcb022f4 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/db2luw/1.1.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2luw/1.1.sql @@ -1,4 +1,14 @@ -- Migrationscripts for ebean unittest +-- drop dependencies +alter table migtest_fk_cascade drop constraint fk_migtest_fk_cascade_one_id; +alter table migtest_fk_set_null drop constraint fk_migtest_fk_set_null_one_id; +alter table migtest_e_basic drop constraint ck_migtest_e_basic_status; +alter table migtest_e_basic drop constraint ck_migtest_e_basic_status2; +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_enum drop constraint ck_migtest_e_enum_test_status; +drop index ix_migtest_e_basic_indextest1; +drop index ix_migtest_e_basic_indextest5; -- apply changes create table migtest_e_user ( id integer generated by default as identity not null, @@ -22,81 +32,67 @@ create table migtest_mtm_m_phone_numbers ( 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; + + + +-- 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_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_e_basic alter column status set default 'A'; +alter table migtest_e_basic alter column status set not null; +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; +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; +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 column new_integer integer default 42 not null; +alter table migtest_e_history alter column test_string set data type bigint; 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; +alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I','?')); +create unique index uq_migtest_e_basic_description on migtest_e_basic(description) exclude null keys; +-- NOTE: table has @History - special migration may be necessary +update migtest_e_basic set new_boolean_field = old_boolean; +alter table migtest_e_basic add constraint ck_migtest_e_basic_progress check ( progress in (0,1,2)); +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; +comment on column migtest_e_history.test_string is 'Column altered to long now'; +comment on table migtest_e_history is 'We have history now'; 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; @@ -112,8 +108,14 @@ alter table migtest_mtm_m_migtest_mtm_c add constraint fk_migtest_mtm_m_migtest_ 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; +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; 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_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 add constraint fk_migtest_fk_set_null_one_id foreign key (one_id) references migtest_fk_one (id) on delete restrict; +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_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/db2luw/1.2__dropsFor_1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/db2luw/1.2__dropsFor_1.1.sql index 6dd324358..248e4eb1d 100644 --- 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 @@ -1,16 +1,10 @@ -- Migrationscripts for ebean unittest -- apply changes -alter table migtest_e_basic drop column description_file; - -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; +alter table migtest_e_basic drop column description_file; +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; diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/db2luw/1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/db2luw/1.3.sql index c0d33b5f0..4895ff052 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/db2luw/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2luw/1.3.sql @@ -1,68 +1,69 @@ -- Migrationscripts for ebean unittest +-- drop dependencies +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_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_e_basic drop constraint ck_migtest_e_basic_status; +alter table migtest_e_basic drop constraint ck_migtest_e_basic_status2; +alter table migtest_e_basic drop constraint uq_migtest_e_basic_description; +alter table migtest_e_basic drop constraint fk_migtest_e_basic_user_id; +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_enum drop constraint ck_migtest_e_enum_test_status; +drop index ix_migtest_e_basic_indextest3; +drop index ix_migtest_e_basic_indextest6; -- 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; + +update migtest_e_basic set user_id = 23 where user_id is 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_basic alter column status drop default; +alter table migtest_e_basic alter column status drop not null; 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 description_file blob(64M); 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; +alter table migtest_e_ref add constraint uq_migtest_e_ref_name unique (name); +alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I')); +alter table migtest_e_basic add constraint ck_migtest_e_basic_status2 check ( status2 in ('N','A','I')); +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 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 ''; 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; +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_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/db2luw/1.4__dropsFor_1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/db2luw/1.4__dropsFor_1.3.sql index bd6f31169..9c502bad5 100644 --- 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 @@ -1,35 +1,21 @@ -- 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; +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 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/idx_db2.migrations b/ebean-test/src/test/resources/migrationtest/dbmigration/db2luw/idx_db2.migrations index 08a6b5282..fd0c912fb 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/db2luw/idx_db2.migrations +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2luw/idx_db2.migrations @@ -1,7 +1,7 @@ --376187636, 1.0__initial.sql -1615151513, 1.1.sql --1093742153, 1.2__dropsFor_1.1.sql -1569705465, 1.3.sql -441227910, 1.4__dropsFor_1.3.sql +-900865287, 1.0__initial.sql +2094022383, 1.1.sql +-812302674, 1.2__dropsFor_1.1.sql +291385069, 1.3.sql +-915919511, 1.4__dropsFor_1.3.sql 561281075, R__order_views.sql 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 index 9123e160b..09c308846 100644 --- 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 @@ -76,8 +76,6 @@ create table migtest_e_basic ( 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, @@ -130,7 +128,6 @@ create table migtest_e_ref ( 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, @@ -162,6 +159,9 @@ create table migtest_oto_master ( constraint pk_migtest_oto_master 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; +alter table migtest_e_ref add constraint uq_migtest_e_ref_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_migtest_fk_cascade_one_id on migtest_fk_cascade (one_id); 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 index c56948302..6fcb022f4 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/db2zos/1.1.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2zos/1.1.sql @@ -1,4 +1,14 @@ -- Migrationscripts for ebean unittest +-- drop dependencies +alter table migtest_fk_cascade drop constraint fk_migtest_fk_cascade_one_id; +alter table migtest_fk_set_null drop constraint fk_migtest_fk_set_null_one_id; +alter table migtest_e_basic drop constraint ck_migtest_e_basic_status; +alter table migtest_e_basic drop constraint ck_migtest_e_basic_status2; +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_enum drop constraint ck_migtest_e_enum_test_status; +drop index ix_migtest_e_basic_indextest1; +drop index ix_migtest_e_basic_indextest5; -- apply changes create table migtest_e_user ( id integer generated by default as identity not null, @@ -22,81 +32,67 @@ create table migtest_mtm_m_phone_numbers ( 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; + + + +-- 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_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_e_basic alter column status set default 'A'; +alter table migtest_e_basic alter column status set not null; +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; +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; +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 column new_integer integer default 42 not null; +alter table migtest_e_history alter column test_string set data type bigint; 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; +alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I','?')); +create unique index uq_migtest_e_basic_description on migtest_e_basic(description) exclude null keys; +-- NOTE: table has @History - special migration may be necessary +update migtest_e_basic set new_boolean_field = old_boolean; +alter table migtest_e_basic add constraint ck_migtest_e_basic_progress check ( progress in (0,1,2)); +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; +comment on column migtest_e_history.test_string is 'Column altered to long now'; +comment on table migtest_e_history is 'We have history now'; 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; @@ -112,8 +108,14 @@ alter table migtest_mtm_m_migtest_mtm_c add constraint fk_migtest_mtm_m_migtest_ 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; +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; 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_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 add constraint fk_migtest_fk_set_null_one_id foreign key (one_id) references migtest_fk_one (id) on delete restrict; +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_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 index 6dd324358..248e4eb1d 100644 --- 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 @@ -1,16 +1,10 @@ -- Migrationscripts for ebean unittest -- apply changes -alter table migtest_e_basic drop column description_file; - -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; +alter table migtest_e_basic drop column description_file; +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; 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 index c0d33b5f0..4895ff052 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/db2zos/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2zos/1.3.sql @@ -1,68 +1,69 @@ -- Migrationscripts for ebean unittest +-- drop dependencies +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_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_e_basic drop constraint ck_migtest_e_basic_status; +alter table migtest_e_basic drop constraint ck_migtest_e_basic_status2; +alter table migtest_e_basic drop constraint uq_migtest_e_basic_description; +alter table migtest_e_basic drop constraint fk_migtest_e_basic_user_id; +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_enum drop constraint ck_migtest_e_enum_test_status; +drop index ix_migtest_e_basic_indextest3; +drop index ix_migtest_e_basic_indextest6; -- 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; + +update migtest_e_basic set user_id = 23 where user_id is 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_basic alter column status drop default; +alter table migtest_e_basic alter column status drop not null; 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 description_file blob(64M); 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; +alter table migtest_e_ref add constraint uq_migtest_e_ref_name unique (name); +alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I')); +alter table migtest_e_basic add constraint ck_migtest_e_basic_status2 check ( status2 in ('N','A','I')); +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 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 ''; 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; +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_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.4__dropsFor_1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/db2zos/1.4__dropsFor_1.3.sql index bd6f31169..9c502bad5 100644 --- 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 @@ -1,35 +1,21 @@ -- 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; +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 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/idx_db2.migrations b/ebean-test/src/test/resources/migrationtest/dbmigration/db2zos/idx_db2.migrations index 08a6b5282..fd0c912fb 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/db2zos/idx_db2.migrations +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2zos/idx_db2.migrations @@ -1,7 +1,7 @@ --376187636, 1.0__initial.sql -1615151513, 1.1.sql --1093742153, 1.2__dropsFor_1.1.sql -1569705465, 1.3.sql -441227910, 1.4__dropsFor_1.3.sql +-900865287, 1.0__initial.sql +2094022383, 1.1.sql +-812302674, 1.2__dropsFor_1.1.sql +291385069, 1.3.sql +-915919511, 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 5056799e7..b1b8e3eac 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 @@ -1,4 +1,14 @@ -- Migrationscripts for ebean unittest +-- drop dependencies +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; +alter table migtest_e_basic drop constraint if exists ck_migtest_e_basic_status; +alter table migtest_e_basic drop constraint if exists ck_migtest_e_basic_status2; +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_enum drop constraint if exists ck_migtest_e_enum_test_status; +drop index if exists ix_migtest_e_basic_indextest1; +drop index if exists ix_migtest_e_basic_indextest5; -- apply changes create table migtest_e_user ( id integer auto_increment not null, @@ -22,80 +32,66 @@ create table migtest_mtm_m_phone_numbers ( 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 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; + + + +-- 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_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_e_basic alter column status set default 'A'; +alter table migtest_e_basic alter column status set not null; +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 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; +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 column new_integer integer default 42 not null; +alter table migtest_e_history alter column test_string bigint; 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; +alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I','?')); +alter table migtest_e_basic add constraint uq_migtest_e_basic_description unique (description); +-- NOTE: table has @History - special migration may be necessary +update migtest_e_basic set new_boolean_field = old_boolean; +alter table migtest_e_basic add constraint ck_migtest_e_basic_progress check ( progress in (0,1,2)); +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); +comment on column migtest_e_history.test_string is 'Column altered to long now'; +comment on table migtest_e_history is 'We have history now'; 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; @@ -111,8 +107,14 @@ alter table migtest_mtm_m_migtest_mtm_c add constraint fk_migtest_mtm_m_migtest_ 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; +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; 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_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 add constraint fk_migtest_fk_set_null_one_id foreign key (one_id) references migtest_fk_one (id) on delete restrict on update restrict; +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_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 index bf1e082c9..219f0c1c5 100644 --- 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 @@ -1,15 +1,8 @@ -- Migrationscripts for ebean unittest --- apply changes alter table migtest_e_basic drop column description_file; - 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 index 583276331..a9ee65034 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/generic/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/generic/1.3.sql @@ -1,4 +1,21 @@ -- Migrationscripts for ebean unittest +-- drop dependencies +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 drop constraint if exists ck_migtest_e_basic_status2; +alter table migtest_e_basic drop constraint uq_migtest_e_basic_description; +alter table migtest_e_basic drop constraint if exists fk_migtest_e_basic_user_id; +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_enum drop constraint if exists ck_migtest_e_enum_test_status; +drop index if exists ix_migtest_e_basic_indextest3; +drop index if exists ix_migtest_e_basic_indextest6; -- apply changes create table migtest_e_ref ( id integer auto_increment not null, @@ -7,62 +24,46 @@ create table migtest_e_ref ( 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; + +update migtest_e_basic set user_id = 23 where user_id is 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_basic alter column status drop default; +alter table migtest_e_basic alter column status set null; 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 description_file blob; 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; +alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I')); +alter table migtest_e_basic add constraint ck_migtest_e_basic_status2 check ( status2 in ('N','A','I')); +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 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 ''; 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; +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_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.4__dropsFor_1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/generic/1.4__dropsFor_1.3.sql index f45a36211..033f0a5a2 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 @@ -1,33 +1,18 @@ -- 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 index 1e82b78f3..bef530d63 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 @@ -2041271676, 1.0__initial.sql --1825206641, 1.1.sql -628353409, 1.2__dropsFor_1.1.sql --1404280556, 1.3.sql --1045594368, 1.4__dropsFor_1.3.sql +1297418193, 1.1.sql +-155876508, 1.2__dropsFor_1.1.sql +-228806652, 1.3.sql +767202122, 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 index af98aa479..32827c7f1 100644 --- 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 @@ -99,24 +99,32 @@ create table migtest_e_history2 ( obsolete_string2 varchar(255), constraint pk_migtest_e_history2 primary key (id) ); +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_history3 ( id integer generated by default as identity not null, test_string varchar(255), constraint pk_migtest_e_history3 primary key (id) ); +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_history4 ( id integer generated by default as identity not null, test_number integer, constraint pk_migtest_e_history4 primary key (id) ); +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_history5 ( id integer generated by default as identity not null, test_number integer, constraint pk_migtest_e_history5 primary key (id) ); +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_history6 ( id integer generated by default as identity not null, @@ -124,6 +132,8 @@ create table migtest_e_history6 ( test_number2 integer not null, constraint pk_migtest_e_history6 primary key (id) ); +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_ref ( id integer generated by default as identity not null, @@ -162,6 +172,49 @@ create table migtest_oto_master ( constraint pk_migtest_oto_master primary key (id) ); +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; + +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; + +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; + +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; + +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 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); @@ -173,59 +226,6 @@ 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 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"; 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 f639a2e9b..21a9484b5 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 @@ -1,10 +1,18 @@ -- Migrationscripts for ebean unittest -- drop dependencies +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; +alter table migtest_e_basic drop constraint if exists ck_migtest_e_basic_status; +alter table migtest_e_basic drop constraint if exists ck_migtest_e_basic_status2; +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_enum drop constraint if exists ck_migtest_e_enum_test_status; +drop index if exists ix_migtest_e_basic_indextest1; +drop index if exists ix_migtest_e_basic_indextest5; 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, @@ -28,57 +36,42 @@ create table migtest_mtm_m_phone_numbers ( 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 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'; +alter table migtest_e_history add column sys_period_start timestamp default now(); +alter table migtest_e_history add column sys_period_end timestamp; -- NOTE: table has @History - special migration may be necessary update migtest_e_history2 set test_string = 'unknown' where test_string is 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_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_e_basic alter column status set default 'A'; +alter table migtest_e_basic alter column status set not null; +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 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; +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 column new_integer integer default 42 not null; +alter table migtest_e_history alter column test_string bigint; 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); @@ -87,26 +80,37 @@ 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; +alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I','?')); +alter table migtest_e_basic add constraint uq_migtest_e_basic_description unique (description); +-- NOTE: table has @History - special migration may be necessary +update migtest_e_basic set new_boolean_field = old_boolean; +alter table migtest_e_basic add constraint ck_migtest_e_basic_progress check ( progress in (0,1,2)); +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); +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; + +comment on column migtest_e_history.test_string is 'Column altered to long now'; +comment on table migtest_e_history is 'We have history now'; 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; @@ -122,21 +126,17 @@ alter table migtest_mtm_m_migtest_mtm_c add constraint fk_migtest_mtm_m_migtest_ 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; +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; 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_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 add constraint fk_migtest_fk_set_null_one_id foreign key (one_id) references migtest_fk_one (id) on delete restrict on update restrict; +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_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; 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 index d19ef84f0..689634515 100644 --- 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 @@ -1,24 +1,17 @@ -- Migrationscripts for ebean unittest -- drop dependencies drop view if exists migtest_e_history2_with_history; - -- apply changes -alter table migtest_e_basic drop column description_file; - -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; +alter table migtest_e_basic drop column description_file; +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; +alter table migtest_e_history2_history drop column obsolete_string1; +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; -- changes: [drop obsolete_string1, drop obsolete_string2] 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 index b96413090..8a0e8c2b1 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/h2/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/h2/1.3.sql @@ -1,9 +1,24 @@ -- Migrationscripts for ebean unittest -- drop dependencies +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 drop constraint if exists ck_migtest_e_basic_status2; +alter table migtest_e_basic drop constraint uq_migtest_e_basic_description; +alter table migtest_e_basic drop constraint if exists fk_migtest_e_basic_user_id; +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_enum drop constraint if exists ck_migtest_e_enum_test_status; +drop index if exists ix_migtest_e_basic_indextest3; +drop index if exists ix_migtest_e_basic_indextest6; 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, @@ -12,65 +27,49 @@ create table migtest_e_ref ( 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; + +update migtest_e_basic set user_id = 23 where user_id is 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_basic alter column status drop default; +alter table migtest_e_basic alter column status set null; 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 description_file blob; 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; +alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I')); +alter table migtest_e_basic add constraint ck_migtest_e_basic_status2 check ( status2 in ('N','A','I')); +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 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 ''; 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; +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_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/h2/1.4__dropsFor_1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/h2/1.4__dropsFor_1.3.sql index 6574eb2db..87113bc71 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 @@ -2,48 +2,33 @@ -- 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 +drop sequence if exists migtest_e_user_seq; 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_history drop column sys_period_start; +alter table migtest_e_history drop column sys_period_end; 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 test_string2; +alter table migtest_e_history2_history drop column test_string3; 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; drop table if exists migtest_mtm_m_phone_numbers; 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 a91fe3b62..1470afa26 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 @@ -817061778, 1.0__initial.sql -1409369419, 1.1.sql --1095443625, 1.2__dropsFor_1.1.sql -62715852, 1.3.sql -1549130952, 1.4__dropsFor_1.3.sql +-108042782, 1.0__initial.sql +1618208971, 1.1.sql +-159071745, 1.2__dropsFor_1.1.sql +1958704277, 1.3.sql +1195655701, 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/hsqldb/1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/hsqldb/1.1.sql index 31569c927..10809373f 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 @@ -1,4 +1,14 @@ -- Migrationscripts for ebean unittest +-- drop dependencies +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; +alter table migtest_e_basic drop constraint if exists ck_migtest_e_basic_status; +alter table migtest_e_basic drop constraint if exists ck_migtest_e_basic_status2; +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_enum drop constraint if exists ck_migtest_e_enum_test_status; +drop index if exists ix_migtest_e_basic_indextest1; +drop index if exists ix_migtest_e_basic_indextest5; -- apply changes create table migtest_e_user ( id integer generated by default as identity (start with 1) not null, @@ -22,80 +32,66 @@ create table migtest_mtm_m_phone_numbers ( 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 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; + + + +-- 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_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_e_basic alter column status set default 'A'; +alter table migtest_e_basic alter column status set not null; +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 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; +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 column new_integer integer default 42 not null; +alter table migtest_e_history alter column test_string bigint; 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; +alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I','?')); +alter table migtest_e_basic add constraint uq_migtest_e_basic_description unique (description); +-- NOTE: table has @History - special migration may be necessary +update migtest_e_basic set new_boolean_field = old_boolean; +alter table migtest_e_basic add constraint ck_migtest_e_basic_progress check ( progress in (0,1,2)); +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); +comment on column migtest_e_history.test_string is 'Column altered to long now'; +comment on table migtest_e_history is 'We have history now'; 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; @@ -111,8 +107,14 @@ alter table migtest_mtm_m_migtest_mtm_c add constraint fk_migtest_mtm_m_migtest_ 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; +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; 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_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 add constraint fk_migtest_fk_set_null_one_id foreign key (one_id) references migtest_fk_one (id) on delete restrict on update restrict; +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_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 index f38f547e1..a19014aa6 100644 --- 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 @@ -1,16 +1,10 @@ -- Migrationscripts for ebean unittest -- apply changes -alter table migtest_e_basic drop column description_file; - -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; +alter table migtest_e_basic drop column description_file; +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/hsqldb/1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/hsqldb/1.3.sql index ebdeba1c0..55ced8bde 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/hsqldb/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/hsqldb/1.3.sql @@ -1,4 +1,21 @@ -- Migrationscripts for ebean unittest +-- drop dependencies +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 drop constraint if exists ck_migtest_e_basic_status2; +alter table migtest_e_basic drop constraint uq_migtest_e_basic_description; +alter table migtest_e_basic drop constraint if exists fk_migtest_e_basic_user_id; +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_enum drop constraint if exists ck_migtest_e_enum_test_status; +drop index if exists ix_migtest_e_basic_indextest3; +drop index if exists ix_migtest_e_basic_indextest6; -- apply changes create table migtest_e_ref ( id integer generated by default as identity (start with 1) not null, @@ -7,62 +24,46 @@ create table migtest_e_ref ( 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; + +update migtest_e_basic set user_id = 23 where user_id is 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_basic alter column status drop default; +alter table migtest_e_basic alter column status set null; 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 description_file blob; 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; +alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I')); +alter table migtest_e_basic add constraint ck_migtest_e_basic_status2 check ( status2 in ('N','A','I')); +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 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 ''; 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; +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_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.4__dropsFor_1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/hsqldb/1.4__dropsFor_1.3.sql index 706cd2892..51c74520d 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 @@ -1,35 +1,21 @@ -- 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; +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; 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 f9096bcde..b13abc604 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 @@ 1469726733, 1.0__initial.sql --865579750, 1.1.sql --2077736415, 1.2__dropsFor_1.1.sql --982162181, 1.3.sql --1763496614, 1.4__dropsFor_1.3.sql +-525203491, 1.1.sql +-281614627, 1.2__dropsFor_1.1.sql +-844698846, 1.3.sql +1340995947, 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 ec9514319..4e0c06213 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 @@ -1,4 +1,11 @@ -- Migrationscripts for ebean unittest +-- drop dependencies +alter table migtest_fk_cascade drop foreign key fk_migtest_fk_cascade_one_id; +alter table migtest_fk_set_null drop foreign key fk_migtest_fk_set_null_one_id; +alter table migtest_e_basic drop index uq_migtest_e_basic_indextest2; +alter table migtest_e_basic drop index uq_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; -- apply changes create table migtest_e_user ( id integer auto_increment not null, @@ -22,70 +29,59 @@ create table migtest_mtm_m_phone_numbers ( 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 modify status varchar(1) not null default 'A'; 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 SET @@system_versioning_alter_history = 1; update migtest_e_history2 set test_string = 'unknown' where test_string is null; alter table migtest_e_history2 modify test_string varchar(255) not null default 'unknown'; -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 modify test_number1 integer not null default 42; alter table migtest_e_history6 modify test_number2 integer; + + +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_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; +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_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_history5 add column test_boolean tinyint(1) default 0 not null; alter table migtest_e_softdelete add column deleted tinyint(1) default 0 not null; - alter table migtest_oto_child add column master_id bigint; +alter table migtest_e_basic add constraint uq_migtest_e_basic_description unique (description); +-- NOTE: table has @History - special migration may be necessary +update migtest_e_basic set new_boolean_field = old_boolean; +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 comment = 'We have history now'; 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; @@ -101,9 +97,15 @@ alter table migtest_mtm_m_migtest_mtm_c add constraint fk_migtest_mtm_m_migtest_ 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; +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; 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_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 add constraint fk_migtest_fk_set_null_one_id foreign key (one_id) references migtest_fk_one (id) on delete restrict on update restrict; +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_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; diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb-noprocs/1.2__dropsFor_1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb-noprocs/1.2__dropsFor_1.1.sql index f38f547e1..a19014aa6 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb-noprocs/1.2__dropsFor_1.1.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb-noprocs/1.2__dropsFor_1.1.sql @@ -1,16 +1,10 @@ -- Migrationscripts for ebean unittest -- apply changes -alter table migtest_e_basic drop column description_file; - -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; +alter table migtest_e_basic drop column description_file; +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/mariadb-noprocs/1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb-noprocs/1.3.sql index 0425230ac..3f9a60e36 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb-noprocs/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb-noprocs/1.3.sql @@ -1,4 +1,18 @@ -- Migrationscripts for ebean unittest +-- drop dependencies +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_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_e_basic drop index uq_migtest_e_basic_description; +alter table migtest_e_basic drop foreign key fk_migtest_e_basic_user_id; +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; +drop index ix_migtest_e_basic_indextest3 on migtest_e_basic; +drop index ix_migtest_e_basic_indextest6 on migtest_e_basic; -- apply changes create table migtest_e_ref ( id integer auto_increment not null, @@ -7,37 +21,15 @@ create table migtest_e_ref ( 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 modify status varchar(1); update migtest_e_basic set status2 = 'N' where status2 is null; alter table migtest_e_basic modify status2 varchar(1) not null default 'N'; -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 modify user_id integer not null default 23; -alter table migtest_e_basic add column description_file longblob; -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 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 modify test_number1 integer; @@ -45,10 +37,19 @@ 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 modify test_number2 integer not null default 7; +alter table migtest_e_basic add column description_file longblob; +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_history2 add column obsolete_string1 varchar(255); +alter table migtest_e_history2 add column obsolete_string2 varchar(255); +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 = ''; 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; +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_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/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 1e2df9b4e..74fd7d558 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 @@ -1,35 +1,21 @@ -- 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; +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; drop table if exists migtest_mtm_m_phone_numbers; 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 d1d18beb6..b79a76906 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 @@ -616900688, 1.0__initial.sql --786596816, 1.1.sql --2077736415, 1.2__dropsFor_1.1.sql -1262945599, 1.3.sql -89701608, 1.4__dropsFor_1.3.sql +719322817, 1.1.sql +-281614627, 1.2__dropsFor_1.1.sql +-846393359, 1.3.sql +588647554, 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 ec9514319..4e0c06213 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 @@ -1,4 +1,11 @@ -- Migrationscripts for ebean unittest +-- drop dependencies +alter table migtest_fk_cascade drop foreign key fk_migtest_fk_cascade_one_id; +alter table migtest_fk_set_null drop foreign key fk_migtest_fk_set_null_one_id; +alter table migtest_e_basic drop index uq_migtest_e_basic_indextest2; +alter table migtest_e_basic drop index uq_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; -- apply changes create table migtest_e_user ( id integer auto_increment not null, @@ -22,70 +29,59 @@ create table migtest_mtm_m_phone_numbers ( 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 modify status varchar(1) not null default 'A'; 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 SET @@system_versioning_alter_history = 1; update migtest_e_history2 set test_string = 'unknown' where test_string is null; alter table migtest_e_history2 modify test_string varchar(255) not null default 'unknown'; -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 modify test_number1 integer not null default 42; alter table migtest_e_history6 modify test_number2 integer; + + +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_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; +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_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_history5 add column test_boolean tinyint(1) default 0 not null; alter table migtest_e_softdelete add column deleted tinyint(1) default 0 not null; - alter table migtest_oto_child add column master_id bigint; +alter table migtest_e_basic add constraint uq_migtest_e_basic_description unique (description); +-- NOTE: table has @History - special migration may be necessary +update migtest_e_basic set new_boolean_field = old_boolean; +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 comment = 'We have history now'; 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; @@ -101,9 +97,15 @@ alter table migtest_mtm_m_migtest_mtm_c add constraint fk_migtest_mtm_m_migtest_ 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; +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; 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_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 add constraint fk_migtest_fk_set_null_one_id foreign key (one_id) references migtest_fk_one (id) on delete restrict on update restrict; +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_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; 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 70da35eb5..d60ca81e6 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 @@ -12,5 +12,5 @@ CALL usp_ebean_drop_column('migtest_e_history2', 'obsolete_string1'); 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; +drop table if exists migtest_e_ref; 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 index 0425230ac..3f9a60e36 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb/1.3.sql @@ -1,4 +1,18 @@ -- Migrationscripts for ebean unittest +-- drop dependencies +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_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_e_basic drop index uq_migtest_e_basic_description; +alter table migtest_e_basic drop foreign key fk_migtest_e_basic_user_id; +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; +drop index ix_migtest_e_basic_indextest3 on migtest_e_basic; +drop index ix_migtest_e_basic_indextest6 on migtest_e_basic; -- apply changes create table migtest_e_ref ( id integer auto_increment not null, @@ -7,37 +21,15 @@ create table migtest_e_ref ( 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 modify status varchar(1); update migtest_e_basic set status2 = 'N' where status2 is null; alter table migtest_e_basic modify status2 varchar(1) not null default 'N'; -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 modify user_id integer not null default 23; -alter table migtest_e_basic add column description_file longblob; -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 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 modify test_number1 integer; @@ -45,10 +37,19 @@ 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 modify test_number2 integer not null default 7; +alter table migtest_e_basic add column description_file longblob; +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_history2 add column obsolete_string1 varchar(255); +alter table migtest_e_history2 add column obsolete_string2 varchar(255); +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 = ''; 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; +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_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/mariadb/1.4__dropsFor_1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb/1.4__dropsFor_1.3.sql index 60767659b..897bb242c 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 @@ -28,8 +28,8 @@ 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 sequence if exists migtest_e_user_seq; +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/mariadb/idx_mariadb.migrations b/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb/idx_mariadb.migrations index 00322e59e..fa767ed30 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 -616900688, 1.0__initial.sql --786596816, 1.1.sql --2098746494, 1.2__dropsFor_1.1.sql -1262945599, 1.3.sql -930722740, 1.4__dropsFor_1.3.sql +719322817, 1.1.sql +1660090057, 1.2__dropsFor_1.1.sql +-846393359, 1.3.sql +2011305151, 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 92ceaaf21..fc5f6562a 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 @@ -96,24 +96,32 @@ create table migtest_e_history2 ( obsolete_string2 varchar(255), constraint pk_migtest_e_history2 primary key (id) ); +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_history3 ( id integer auto_increment not null, test_string varchar(255), constraint pk_migtest_e_history3 primary key (id) ); +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_history4 ( id integer auto_increment not null, test_number integer, constraint pk_migtest_e_history4 primary key (id) ); +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_history5 ( id integer auto_increment not null, test_number integer, constraint pk_migtest_e_history5 primary key (id) ); +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_history6 ( id integer auto_increment not null, @@ -121,6 +129,8 @@ create table migtest_e_history6 ( test_number2 integer not null, constraint pk_migtest_e_history6 primary key (id) ); +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_ref ( id integer auto_increment not null, @@ -159,19 +169,6 @@ create table migtest_oto_master ( 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), @@ -182,8 +179,6 @@ create table migtest_e_history2_history( ); 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), @@ -192,8 +187,6 @@ create table migtest_e_history3_history( ); 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, @@ -202,8 +195,6 @@ create table migtest_e_history4_history( ); 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, @@ -212,8 +203,6 @@ create table migtest_e_history5_history( ); 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, @@ -223,6 +212,17 @@ create table migtest_e_history6_history( ); create view migtest_e_history6_with_history as select * from migtest_e_history6 union all select * from migtest_e_history6_history; +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; + 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); 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 020fbaa27..bde19e551 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 @@ -1,10 +1,15 @@ -- Migrationscripts for ebean unittest -- drop dependencies +alter table migtest_fk_cascade drop foreign key fk_migtest_fk_cascade_one_id; +alter table migtest_fk_set_null drop foreign key fk_migtest_fk_set_null_one_id; +alter table migtest_e_basic drop index uq_migtest_e_basic_indextest2; +alter table migtest_e_basic drop index uq_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; 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, @@ -28,74 +33,73 @@ create table migtest_mtm_m_phone_numbers ( 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 modify status varchar(1) not null default 'A'; 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 add column sys_period_start datetime(6) default now(6); +alter table migtest_e_history add column sys_period_end datetime(6); 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 modify test_string varchar(255) not null default 'unknown'; -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 modify test_number1 integer not null default 42; alter table migtest_e_history6 modify test_number2 integer; + + +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_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; +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_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_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; alter table migtest_e_softdelete add column deleted tinyint(1) default 0 not null; - alter table migtest_oto_child add column master_id bigint; +alter table migtest_e_basic add constraint uq_migtest_e_basic_description unique (description); +-- NOTE: table has @History - special migration may be necessary +update migtest_e_basic set new_boolean_field = old_boolean; +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); +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; + +alter table migtest_e_history comment = 'We have history now'; 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; @@ -111,21 +115,17 @@ alter table migtest_mtm_m_migtest_mtm_c add constraint fk_migtest_mtm_m_migtest_ 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; +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; 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_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 add constraint fk_migtest_fk_set_null_one_id foreign key (one_id) references migtest_fk_one (id) on delete restrict on update restrict; +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_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; 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 68f5324da..35e6c12a9 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 @@ -1,7 +1,6 @@ -- 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', 'description_file'); 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 index 2eb7ccc79..1a396ceea 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/mysql/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/mysql/1.3.sql @@ -1,9 +1,21 @@ -- Migrationscripts for ebean unittest -- drop dependencies +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_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_e_basic drop index uq_migtest_e_basic_description; +alter table migtest_e_basic drop foreign key fk_migtest_e_basic_user_id; +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; +drop index ix_migtest_e_basic_indextest3 on migtest_e_basic; +drop index ix_migtest_e_basic_indextest6 on migtest_e_basic; 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, @@ -12,39 +24,15 @@ create table migtest_e_ref ( 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 modify status varchar(1); update migtest_e_basic set status2 = 'N' where status2 is null; alter table migtest_e_basic modify status2 varchar(1) not null default 'N'; -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 modify user_id integer not null default 23; -alter table migtest_e_basic add column description_file longblob; -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 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; @@ -53,14 +41,25 @@ 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 modify test_number2 integer not null default 7; +alter table migtest_e_basic add column description_file longblob; +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_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_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_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; +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_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/mysql/1.4__dropsFor_1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/mysql/1.4__dropsFor_1.3.sql index ff2e34d44..35308200b 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,13 +3,10 @@ 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'); @@ -27,6 +24,8 @@ 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_history', 'sys_period_start'); +CALL usp_ebean_drop_column('migtest_e_history', 'sys_period_end'); CALL usp_ebean_drop_column('migtest_e_history2', 'test_string2'); CALL usp_ebean_drop_column('migtest_e_history2_history', 'test_string2'); 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 2ff170b68..c80baaa9e 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 -890673066, 1.0__initial.sql -67386209, 1.1.sql +-677139473, 1.0__initial.sql +-980860692, 1.1.sql 1986189381, 1.2__dropsFor_1.1.sql -2054074037, 1.3.sql --1373040825, 1.4__dropsFor_1.3.sql +-297983164, 1.3.sql +950278009, 1.4__dropsFor_1.3.sql 561281075, R__order_views.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 index a0d087761..573bd7f17 100644 --- 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 @@ -96,24 +96,32 @@ create table migtest_e_history2 ( obsolete_string2 varchar(255), constraint pk_migtest_e_history2 primary key (id) ); +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_history3 ( id integer auto_increment not null, test_string varchar(255), constraint pk_migtest_e_history3 primary key (id) ); +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_history4 ( id integer auto_increment not null, test_number integer, constraint pk_migtest_e_history4 primary key (id) ); +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_history5 ( id integer auto_increment not null, test_number integer, constraint pk_migtest_e_history5 primary key (id) ); +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_history6 ( id integer auto_increment not null, @@ -121,6 +129,8 @@ create table migtest_e_history6 ( test_number2 integer not null, constraint pk_migtest_e_history6 primary key (id) ); +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_ref ( id integer auto_increment not null, @@ -159,19 +169,6 @@ create table migtest_oto_master ( 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), @@ -182,8 +179,6 @@ create table migtest_e_history2_history( ); 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), @@ -192,8 +187,6 @@ create table migtest_e_history3_history( ); 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, @@ -202,8 +195,6 @@ create table migtest_e_history4_history( ); 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, @@ -212,8 +203,6 @@ create table migtest_e_history5_history( ); 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, @@ -223,6 +212,17 @@ create table migtest_e_history6_history( ); create view migtest_e_history6_with_history as select * from migtest_e_history6 union all select * from migtest_e_history6_history; +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; + 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); 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 index 020fbaa27..bde19e551 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/mysql55/1.1.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/mysql55/1.1.sql @@ -1,10 +1,15 @@ -- Migrationscripts for ebean unittest -- drop dependencies +alter table migtest_fk_cascade drop foreign key fk_migtest_fk_cascade_one_id; +alter table migtest_fk_set_null drop foreign key fk_migtest_fk_set_null_one_id; +alter table migtest_e_basic drop index uq_migtest_e_basic_indextest2; +alter table migtest_e_basic drop index uq_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; 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, @@ -28,74 +33,73 @@ create table migtest_mtm_m_phone_numbers ( 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 modify status varchar(1) not null default 'A'; 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 add column sys_period_start datetime(6) default now(6); +alter table migtest_e_history add column sys_period_end datetime(6); 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 modify test_string varchar(255) not null default 'unknown'; -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 modify test_number1 integer not null default 42; alter table migtest_e_history6 modify test_number2 integer; + + +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_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; +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_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_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; alter table migtest_e_softdelete add column deleted tinyint(1) default 0 not null; - alter table migtest_oto_child add column master_id bigint; +alter table migtest_e_basic add constraint uq_migtest_e_basic_description unique (description); +-- NOTE: table has @History - special migration may be necessary +update migtest_e_basic set new_boolean_field = old_boolean; +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); +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; + +alter table migtest_e_history comment = 'We have history now'; 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; @@ -111,21 +115,17 @@ alter table migtest_mtm_m_migtest_mtm_c add constraint fk_migtest_mtm_m_migtest_ 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; +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; 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_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 add constraint fk_migtest_fk_set_null_one_id foreign key (one_id) references migtest_fk_one (id) on delete restrict on update restrict; +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_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; 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 index 68f5324da..35e6c12a9 100644 --- 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 @@ -1,7 +1,6 @@ -- 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', 'description_file'); 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 index 2eb7ccc79..1a396ceea 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/mysql55/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/mysql55/1.3.sql @@ -1,9 +1,21 @@ -- Migrationscripts for ebean unittest -- drop dependencies +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_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_e_basic drop index uq_migtest_e_basic_description; +alter table migtest_e_basic drop foreign key fk_migtest_e_basic_user_id; +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; +drop index ix_migtest_e_basic_indextest3 on migtest_e_basic; +drop index ix_migtest_e_basic_indextest6 on migtest_e_basic; 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, @@ -12,39 +24,15 @@ create table migtest_e_ref ( 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 modify status varchar(1); update migtest_e_basic set status2 = 'N' where status2 is null; alter table migtest_e_basic modify status2 varchar(1) not null default 'N'; -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 modify user_id integer not null default 23; -alter table migtest_e_basic add column description_file longblob; -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 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; @@ -53,14 +41,25 @@ 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 modify test_number2 integer not null default 7; +alter table migtest_e_basic add column description_file longblob; +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_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_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_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; +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_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/mysql55/1.4__dropsFor_1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/mysql55/1.4__dropsFor_1.3.sql index ff2e34d44..35308200b 100644 --- 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 @@ -3,13 +3,10 @@ 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'); @@ -27,6 +24,8 @@ 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_history', 'sys_period_start'); +CALL usp_ebean_drop_column('migtest_e_history', 'sys_period_end'); CALL usp_ebean_drop_column('migtest_e_history2', 'test_string2'); CALL usp_ebean_drop_column('migtest_e_history2_history', 'test_string2'); 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 index cba785aa6..86fe5db15 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/mysql55/idx_mysql.migrations +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/mysql55/idx_mysql.migrations @@ -1,8 +1,8 @@ 1835064798, I__create_procs.sql -881444156, 1.0__initial.sql -67386209, 1.1.sql +-700647047, 1.0__initial.sql +-980860692, 1.1.sql 1986189381, 1.2__dropsFor_1.1.sql -2054074037, 1.3.sql --1373040825, 1.4__dropsFor_1.3.sql +-297983164, 1.3.sql +950278009, 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 index 598ba6f2d..20359f42a 100644 --- 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 @@ -99,24 +99,32 @@ create table migtest_e_history2 ( obsolete_string2 varchar(255), constraint pk_migtest_e_history2 primary key (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_history3 ( id integer generated by default as identity not null, test_string varchar(255), constraint pk_migtest_e_history3 primary key (id) ); +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_history4 ( id integer generated by default as identity not null, test_number integer, constraint pk_migtest_e_history4 primary key (id) ); +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_history5 ( id integer generated by default as identity not null, test_number integer, constraint pk_migtest_e_history5 primary key (id) ); +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_history6 ( id integer generated by default as identity not null, @@ -124,6 +132,8 @@ create table migtest_e_history6 ( test_number2 integer not null, constraint pk_migtest_e_history6 primary key (id) ); +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_ref ( id integer generated by default as identity not null, @@ -162,19 +172,6 @@ create table migtest_oto_master ( 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), @@ -185,8 +182,6 @@ create table migtest_e_history2_history( ); 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), @@ -195,8 +190,6 @@ create table migtest_e_history3_history( ); 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, @@ -205,8 +198,6 @@ create table migtest_e_history4_history( ); 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, @@ -215,8 +206,6 @@ create table migtest_e_history5_history( ); 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, @@ -226,6 +215,17 @@ create table migtest_e_history6_history( ); create view migtest_e_history6_with_history as select * from migtest_e_history6 union all select * from migtest_e_history6_history; +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); + 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)); 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 503833010..895ebaf6a 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 @@ -1,10 +1,18 @@ -- Migrationscripts for ebean unittest -- drop dependencies +alter table migtest_fk_cascade drop constraint fk_migtest_fk_cascade_one_id; +alter table migtest_fk_set_null drop constraint fk_migtest_fk_set_null_one_id; +alter table migtest_e_basic drop constraint ck_migtest_e_basic_status; +alter table migtest_e_basic drop constraint ck_migtest_e_basic_status2; +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_enum drop constraint ck_migtest_e_enum_test_status; +drop index if exists ix_migtest_e_basic_indextest1; +drop index if exists ix_migtest_e_basic_indextest5; 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, @@ -28,55 +36,42 @@ create table migtest_mtm_m_phone_numbers ( 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); -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; +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); -- NOTE: table has @History - special migration may be necessary update migtest_e_history2 set test_string = 'unknown' where test_string is 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_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_e_basic alter column status set default 'A'; +alter table migtest_e_basic alter column status set not null; +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 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; +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 column new_integer integer default 42 not null; +alter table migtest_e_history alter column test_string bigint; 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); @@ -85,26 +80,35 @@ 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; +alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I','?')); +alter table migtest_e_basic add constraint uq_migtest_e_basic_description unique (description); +-- NOTE: table has @History - special migration may be necessary +update migtest_e_basic set new_boolean_field = old_boolean; + +alter table migtest_e_basic add constraint ck_migtest_e_basic_progress check ( progress in (0,1,2)); +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); +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 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); @@ -120,21 +124,17 @@ alter table migtest_mtm_m_migtest_mtm_c add constraint fk_migtest_mtm_m_migtest_ 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); +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); 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_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 add constraint fk_migtest_fk_set_null_one_id foreign key (one_id) references migtest_fk_one (id); +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_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; 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 index 392d707e3..7b635503a 100644 --- 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 @@ -1,24 +1,17 @@ -- Migrationscripts for ebean unittest -- drop dependencies drop view if exists migtest_e_history2_with_history; - -- apply changes -alter table migtest_e_basic drop column description_file; - -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; +alter table migtest_e_basic drop column description_file; +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; +alter table migtest_e_history2_history drop column obsolete_string1; +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; -- changes: [drop obsolete_string1, drop obsolete_string2] 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 index fa3e3b33d..1b5901359 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/nuodb/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/nuodb/1.3.sql @@ -1,9 +1,24 @@ -- Migrationscripts for ebean unittest -- drop dependencies +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_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_e_basic drop constraint ck_migtest_e_basic_status; +alter table migtest_e_basic drop constraint ck_migtest_e_basic_status2; +alter table migtest_e_basic drop constraint uq_migtest_e_basic_description; +alter table migtest_e_basic drop constraint fk_migtest_e_basic_user_id; +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_enum drop constraint ck_migtest_e_enum_test_status; +drop index if exists ix_migtest_e_basic_indextest3; +drop index if exists ix_migtest_e_basic_indextest6; 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, @@ -12,63 +27,47 @@ create table migtest_e_ref ( 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; + +update migtest_e_basic set user_id = 23 where user_id is 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_basic alter column status drop default; +alter table migtest_e_basic alter column status set null; 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 description_file blob; 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; +alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I')); +alter table migtest_e_basic add constraint ck_migtest_e_basic_status2 check ( status2 in ('N','A','I')); +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 add constraint ck_migtest_e_enum_test_status check ( test_status in ('N','A','I')); 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; +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_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); 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 d7e3eaf34..9a52f39b1 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 @@ -3,48 +3,33 @@ 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 +drop sequence if exists migtest_e_user_seq; 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_history drop column sys_period_start; +alter table migtest_e_history drop column sys_period_end; 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 test_string2; +alter table migtest_e_history2_history drop column test_string3; 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; drop table if exists migtest_mtm_m_phone_numbers; 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 f019b05ef..01b434395 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 @@ --1343627271, 1.0__initial.sql -667708916, 1.1.sql --430421425, 1.2__dropsFor_1.1.sql -360040564, 1.3.sql -473283202, 1.4__dropsFor_1.3.sql +-1287707271, 1.0__initial.sql +1113108212, 1.1.sql +-1342063278, 1.2__dropsFor_1.1.sql +384328282, 1.3.sql +7108518, 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 d8cd56c0a..d213631d7 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,4 +1,59 @@ -- Migrationscripts for ebean unittest +-- drop dependencies +alter table migtest_fk_cascade drop constraint fk_migtest_fk_cascade_one_id; +alter table migtest_fk_set_null drop constraint fk_migtest_fk_set_null_one_id; +delimiter $$ +declare + expected_error exception; + pragma exception_init(expected_error, -2443); +begin + execute immediate 'alter table migtest_e_basic drop constraint ck_migtest_e_basic_status'; +exception + when expected_error then null; +end; +$$; +delimiter $$ +declare + expected_error exception; + pragma exception_init(expected_error, -2443); +begin + execute immediate 'alter table migtest_e_basic drop constraint ck_migtest_e_basic_status2'; +exception + when expected_error then null; +end; +$$; +delimiter $$ +declare + expected_error exception; + pragma exception_init(expected_error, -2443); +begin + execute immediate 'alter table migtest_e_basic drop constraint uq_migtest_e_basic_indextest2'; +exception + when expected_error then null; +end; +$$; +delimiter $$ +declare + expected_error exception; + pragma exception_init(expected_error, -2443); +begin + execute immediate 'alter table migtest_e_basic drop constraint uq_migtest_e_basic_indextest6'; +exception + when expected_error then null; +end; +$$; +delimiter $$ +declare + expected_error exception; + pragma exception_init(expected_error, -2443); +begin + execute immediate 'alter table migtest_e_enum drop constraint ck_migtest_e_enum_test_status'; +exception + when expected_error then null; +end; +$$; +drop index ix_migtest_e_basic_indextest1; +drop index ix_migtest_e_basic_indextest5; -- apply changes create table migtest_e_user ( id number(10) generated by default as identity not null, @@ -22,125 +77,66 @@ create table migtest_mtm_m_phone_numbers ( 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; -delimiter $$ -declare - expected_error exception; - pragma exception_init(expected_error, -2443); -begin - execute immediate 'alter table migtest_e_basic drop constraint ck_migtest_e_basic_status'; -exception - when expected_error then null; -end; -$$; -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','?')); -delimiter $$ -declare - expected_error exception; - pragma exception_init(expected_error, -2443); -begin - execute immediate 'alter table migtest_e_basic drop constraint ck_migtest_e_basic_status2'; -exception - when expected_error then null; -end; -$$; -alter table migtest_e_basic modify status2 varchar2(127); -alter table migtest_e_basic modify status2 default null; -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; - -delimiter $$ -declare - expected_error exception; - pragma exception_init(expected_error, -2443); -begin - execute immediate 'alter table migtest_e_basic drop constraint uq_migtest_e_basic_indextest2'; -exception - when expected_error then null; -end; -$$; -delimiter $$ -declare - expected_error exception; - pragma exception_init(expected_error, -2443); -begin - execute immediate 'alter table migtest_e_basic drop constraint uq_migtest_e_basic_indextest6'; -exception - when expected_error then null; -end; -$$; --- 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); -delimiter $$ -declare - expected_error exception; - pragma exception_init(expected_error, -2443); -begin - execute immediate 'alter table migtest_e_enum drop constraint ck_migtest_e_enum_test_status'; -exception - when expected_error then null; -end; -$$; -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; + + + +-- 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_ckey_detail add one_key number(10); +alter table migtest_ckey_detail add two_key varchar2(127); +alter table migtest_ckey_parent add assoc_id number(10); +alter table migtest_e_basic modify status default 'A'; +alter table migtest_e_basic modify status not null; +alter table migtest_e_basic modify status2 varchar2(127); +alter table migtest_e_basic modify status2 default null; +alter table migtest_e_basic modify status2 null; +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; +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 new_integer number(10) default 42 not null; +alter table migtest_e_history modify test_string number(19); 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); +alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I','?')); +-- NOT YET IMPLEMENTED: alter table migtest_e_basic add constraint uq_migtest_e_basic_description unique (description); +-- NOTE: table has @History - special migration may be necessary +update migtest_e_basic set new_boolean_field = old_boolean; +alter table migtest_e_basic add constraint ck_migtest_e_basic_progress check ( progress in (0,1,2)); +-- 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); +comment on column migtest_e_history.test_string is 'Column altered to long now'; +comment on table migtest_e_history is 'We have history now'; 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); @@ -156,8 +152,14 @@ alter table migtest_mtm_m_migtest_mtm_c add constraint fk_mgtst_mtm_m_mgtst_mt_g 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); +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); 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_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 add constraint fk_migtest_fk_set_null_one_id foreign key (one_id) references migtest_fk_one (id); +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_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 index 25ba7f1ea..4c0af48aa 100644 --- 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 @@ -1,18 +1,5 @@ -- Migrationscripts for ebean unittest -- apply changes -alter table migtest_e_basic drop column description_file; - -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; delimiter $$ declare expected_error exception; @@ -23,3 +10,10 @@ exception when expected_error then null; end; $$; +alter table migtest_e_basic drop column description_file; +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; 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 d8bc8ee66..868163641 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,19 +1,10 @@ -- 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) -); - +-- drop dependencies 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; delimiter $$ declare expected_error exception; @@ -24,11 +15,6 @@ exception when expected_error then null; end; $$; -alter table migtest_e_basic modify status default null; -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; delimiter $$ declare expected_error exception; @@ -39,10 +25,6 @@ exception when expected_error then null; end; $$; -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')); delimiter $$ declare expected_error exception; @@ -53,16 +35,7 @@ exception when expected_error then null; 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 modify user_id default 23; -alter table migtest_e_basic modify user_id not null; -alter table migtest_e_basic add description_file blob; -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); - delimiter $$ declare expected_error exception; @@ -103,8 +76,6 @@ exception when expected_error then null; end; $$; --- 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); delimiter $$ declare expected_error exception; @@ -115,26 +86,56 @@ exception when expected_error then null; 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 ''; +drop index ix_migtest_e_basic_indextest3; +drop index ix_migtest_e_basic_indextest6; +-- 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) +); + + +update migtest_e_basic set status2 = 'N' where status2 is null; + +update migtest_e_basic set user_id = 23 where user_id is 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_basic modify status default null; +alter table migtest_e_basic modify status null; +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 modify user_id default 23; +alter table migtest_e_basic modify user_id not null; +alter table migtest_e_basic add description_file blob; +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_history2 modify test_string default null; 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 default null; 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; +alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I')); +alter table migtest_e_basic add constraint ck_migtest_e_basic_status2 check ( status2 in ('N','A','I')); +-- 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 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 ''; 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; +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_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.4__dropsFor_1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/oracle/1.4__dropsFor_1.3.sql index 42bff6949..065b946ee 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 @@ -1,34 +1,5 @@ -- 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; delimiter $$ declare expected_error exception; @@ -39,6 +10,21 @@ exception when expected_error then null; end; $$; +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 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 98d613833..0311f72ce 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 @@ 1732845114, 1.0__initial.sql --769875282, 1.1.sql -1140013965, 1.2__dropsFor_1.1.sql --1374341416, 1.3.sql -1340223598, 1.4__dropsFor_1.3.sql +1978325167, 1.1.sql +716378422, 1.2__dropsFor_1.1.sql +-740156680, 1.3.sql +1781097804, 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.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/oracle11/1.1.sql index d337abc34..6ae6721c2 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/oracle11/1.1.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/oracle11/1.1.sql @@ -1,4 +1,59 @@ -- Migrationscripts for ebean unittest +-- drop dependencies +alter table migtest_fk_cascade drop constraint fk_migtest_fk_cascade_one_id; +alter table migtest_fk_set_null drop constraint fk_migtest_fk_set_null_one_id; +delimiter $$ +declare + expected_error exception; + pragma exception_init(expected_error, -2443); +begin + execute immediate 'alter table migtest_e_basic drop constraint ck_migtest_e_basic_status'; +exception + when expected_error then null; +end; +$$; +delimiter $$ +declare + expected_error exception; + pragma exception_init(expected_error, -2443); +begin + execute immediate 'alter table migtest_e_basic drop constraint ck_migtest_e_basic_status2'; +exception + when expected_error then null; +end; +$$; +delimiter $$ +declare + expected_error exception; + pragma exception_init(expected_error, -2443); +begin + execute immediate 'alter table migtest_e_basic drop constraint uq_migtest_e_basic_indextest2'; +exception + when expected_error then null; +end; +$$; +delimiter $$ +declare + expected_error exception; + pragma exception_init(expected_error, -2443); +begin + execute immediate 'alter table migtest_e_basic drop constraint uq_migtest_e_basic_indextest6'; +exception + when expected_error then null; +end; +$$; +delimiter $$ +declare + expected_error exception; + pragma exception_init(expected_error, -2443); +begin + execute immediate 'alter table migtest_e_enum drop constraint ck_migtest_e_enum_test_status'; +exception + when expected_error then null; +end; +$$; +drop index ix_migtest_e_basic_indextest1; +drop index ix_migtest_e_basic_indextest5; -- apply changes create table migtest_e_user ( id number(10) not null, @@ -23,125 +78,66 @@ create table migtest_mtm_m_phone_numbers ( 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; -delimiter $$ -declare - expected_error exception; - pragma exception_init(expected_error, -2443); -begin - execute immediate 'alter table migtest_e_basic drop constraint ck_migtest_e_basic_status'; -exception - when expected_error then null; -end; -$$; -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','?')); -delimiter $$ -declare - expected_error exception; - pragma exception_init(expected_error, -2443); -begin - execute immediate 'alter table migtest_e_basic drop constraint ck_migtest_e_basic_status2'; -exception - when expected_error then null; -end; -$$; -alter table migtest_e_basic modify status2 varchar2(127); -alter table migtest_e_basic modify status2 default null; -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; - -delimiter $$ -declare - expected_error exception; - pragma exception_init(expected_error, -2443); -begin - execute immediate 'alter table migtest_e_basic drop constraint uq_migtest_e_basic_indextest2'; -exception - when expected_error then null; -end; -$$; -delimiter $$ -declare - expected_error exception; - pragma exception_init(expected_error, -2443); -begin - execute immediate 'alter table migtest_e_basic drop constraint uq_migtest_e_basic_indextest6'; -exception - when expected_error then null; -end; -$$; --- 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); -delimiter $$ -declare - expected_error exception; - pragma exception_init(expected_error, -2443); -begin - execute immediate 'alter table migtest_e_enum drop constraint ck_migtest_e_enum_test_status'; -exception - when expected_error then null; -end; -$$; -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; + + + +-- 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_ckey_detail add one_key number(10); +alter table migtest_ckey_detail add two_key varchar2(127); +alter table migtest_ckey_parent add assoc_id number(10); +alter table migtest_e_basic modify status default 'A'; +alter table migtest_e_basic modify status not null; +alter table migtest_e_basic modify status2 varchar2(127); +alter table migtest_e_basic modify status2 default null; +alter table migtest_e_basic modify status2 null; +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; +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 new_integer number(10) default 42 not null; +alter table migtest_e_history modify test_string number(19); 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); +alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I','?')); +-- NOT YET IMPLEMENTED: alter table migtest_e_basic add constraint uq_migtest_e_basic_description unique (description); +-- NOTE: table has @History - special migration may be necessary +update migtest_e_basic set new_boolean_field = old_boolean; +alter table migtest_e_basic add constraint ck_migtest_e_basic_progress check ( progress in (0,1,2)); +-- 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); +comment on column migtest_e_history.test_string is 'Column altered to long now'; +comment on table migtest_e_history is 'We have history now'; 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); @@ -157,8 +153,14 @@ alter table migtest_mtm_m_migtest_mtm_c add constraint fk_mgtst_mtm_m_mgtst_mt_g 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); +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); 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_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 add constraint fk_migtest_fk_set_null_one_id foreign key (one_id) references migtest_fk_one (id); +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_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 index 25ba7f1ea..4c0af48aa 100644 --- 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 @@ -1,18 +1,5 @@ -- Migrationscripts for ebean unittest -- apply changes -alter table migtest_e_basic drop column description_file; - -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; delimiter $$ declare expected_error exception; @@ -23,3 +10,10 @@ exception when expected_error then null; end; $$; +alter table migtest_e_basic drop column description_file; +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; 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 index 1e7511caf..ba8dae439 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/oracle11/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/oracle11/1.3.sql @@ -1,20 +1,10 @@ -- 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; - +-- drop dependencies 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; delimiter $$ declare expected_error exception; @@ -25,11 +15,6 @@ exception when expected_error then null; end; $$; -alter table migtest_e_basic modify status default null; -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; delimiter $$ declare expected_error exception; @@ -40,10 +25,6 @@ exception when expected_error then null; end; $$; -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')); delimiter $$ declare expected_error exception; @@ -54,16 +35,7 @@ exception when expected_error then null; 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 modify user_id default 23; -alter table migtest_e_basic modify user_id not null; -alter table migtest_e_basic add description_file blob; -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); - delimiter $$ declare expected_error exception; @@ -104,8 +76,6 @@ exception when expected_error then null; end; $$; --- 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); delimiter $$ declare expected_error exception; @@ -116,26 +86,57 @@ exception when expected_error then null; 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 ''; +drop index ix_migtest_e_basic_indextest3; +drop index ix_migtest_e_basic_indextest6; +-- 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; + + +update migtest_e_basic set status2 = 'N' where status2 is null; + +update migtest_e_basic set user_id = 23 where user_id is 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_basic modify status default null; +alter table migtest_e_basic modify status null; +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 modify user_id default 23; +alter table migtest_e_basic modify user_id not null; +alter table migtest_e_basic add description_file blob; +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_history2 modify test_string default null; 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 default null; 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; +alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I')); +alter table migtest_e_basic add constraint ck_migtest_e_basic_status2 check ( status2 in ('N','A','I')); +-- 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 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 ''; 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; +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_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.4__dropsFor_1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/oracle11/1.4__dropsFor_1.3.sql index 42bff6949..065b946ee 100644 --- 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 @@ -1,34 +1,5 @@ -- 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; delimiter $$ declare expected_error exception; @@ -39,6 +10,21 @@ exception when expected_error then null; end; $$; +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 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/idx_oracle.migrations b/ebean-test/src/test/resources/migrationtest/dbmigration/oracle11/idx_oracle.migrations index 7af94d4e5..ed215cca7 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/oracle11/idx_oracle.migrations +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/oracle11/idx_oracle.migrations @@ -1,8 +1,8 @@ -756544611, 1.0__initial.sql --1128902470, 1.1.sql -1140013965, 1.2__dropsFor_1.1.sql --1534972229, 1.3.sql -1340223598, 1.4__dropsFor_1.3.sql +852231507, 1.1.sql +716378422, 1.2__dropsFor_1.1.sql +1600556691, 1.3.sql +1781097804, 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 9dfbbd842..271380759 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 @@ -99,24 +99,28 @@ create table migtest_e_history2 ( obsolete_string2 varchar(255), constraint pk_migtest_e_history2 primary key (id) ); +alter table migtest_e_history2 add column sys_period tstzrange not null default tstzrange(current_timestamp, null); 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) ); +alter table migtest_e_history3 add column sys_period tstzrange not null default tstzrange(current_timestamp, null); 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) ); +alter table migtest_e_history4 add column sys_period tstzrange not null default tstzrange(current_timestamp, null); 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) ); +alter table migtest_e_history5 add column sys_period tstzrange not null default tstzrange(current_timestamp, null); create table migtest_e_history6 ( id integer generated by default as identity not null, @@ -124,6 +128,7 @@ create table migtest_e_history6 ( test_number2 integer not null, constraint pk_migtest_e_history6 primary key (id) ); +alter table migtest_e_history6 add column sys_period tstzrange not null default tstzrange(current_timestamp, null); create table migtest_e_ref ( id integer generated by default as identity not null, @@ -162,6 +167,21 @@ create table migtest_oto_master ( constraint pk_migtest_oto_master primary key (id) ); +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; + +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; + +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; + +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; + +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 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'; @@ -176,26 +196,6 @@ 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 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; 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 37be77440..dc2eefa72 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 @@ -1,10 +1,21 @@ -- Migrationscripts for ebean unittest -- drop dependencies +alter table if exists migtest_fk_cascade drop constraint if exists fk_migtest_fk_cascade_one_id; +alter table if exists 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 drop constraint if exists ck_migtest_e_basic_status2; +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_enum drop constraint if exists ck_migtest_e_enum_test_status; +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; 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, @@ -28,59 +39,45 @@ create table migtest_mtm_m_phone_numbers ( 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 add column sys_period tstzrange not null default tstzrange(current_timestamp, null); 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_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; + + +-- 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_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_e_basic alter column status set default 'A'; +alter table migtest_e_basic alter column status set not null; +alter table migtest_e_basic alter column status2 drop default; +alter table migtest_e_basic alter column status2 drop not null; +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; +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 column new_integer integer default 42 not 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); @@ -89,30 +86,31 @@ 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; +alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I','?')); +alter table migtest_e_basic add constraint uq_migtest_e_basic_description unique (description); +-- NOTE: table has @History - special migration may be necessary +update migtest_e_basic set new_boolean_field = old_boolean; +alter table migtest_e_basic add constraint ck_migtest_e_basic_progress check ( progress in (0,1,2)); +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); +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; + +comment on column migtest_e_history.test_string is 'Column altered to long now'; +comment on table migtest_e_history is 'We have history now'; 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; @@ -128,15 +126,17 @@ alter table migtest_mtm_m_migtest_mtm_c add constraint fk_migtest_mtm_m_migtest_ 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; +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; 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_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 add constraint fk_migtest_fk_set_null_one_id foreign key (one_id) references migtest_fk_one (id) on delete restrict on update restrict; +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_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; 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 index 35a7e2b4a..57928b00c 100644 --- 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 @@ -1,24 +1,17 @@ -- Migrationscripts for ebean unittest -- drop dependencies drop view if exists migtest_e_history2_with_history; - -- apply changes -alter table migtest_e_basic drop column description_file; - -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; +alter table migtest_e_basic drop column description_file; +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; +alter table migtest_e_history2_history drop column obsolete_string1; +alter table migtest_e_history2_history drop column obsolete_string2; +drop table if exists migtest_e_ref cascade; 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] 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 79cc955b5..274635ed6 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 @@ -1,9 +1,24 @@ -- Migrationscripts for ebean unittest -- drop dependencies +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 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_e_basic drop constraint if exists ck_migtest_e_basic_status; +alter table migtest_e_basic drop constraint if exists ck_migtest_e_basic_status2; +alter table migtest_e_basic drop constraint uq_migtest_e_basic_description; +alter table if exists migtest_e_basic drop constraint if exists fk_migtest_e_basic_user_id; +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_enum drop constraint if exists ck_migtest_e_enum_test_status; +drop index if exists ix_migtest_e_basic_indextest3; +drop index if exists ix_migtest_e_basic_indextest6; 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, @@ -12,68 +27,52 @@ create table migtest_e_ref ( 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_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; + +-- 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_basic alter column status drop default; +alter table migtest_e_basic alter column status drop not null; +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 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 description_file bytea; 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; +alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I')); +alter table migtest_e_basic add constraint ck_migtest_e_basic_status2 check ( status2 in ('N','A','I')); +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 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 ''; 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; +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_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/postgres/1.4__dropsFor_1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/postgres/1.4__dropsFor_1.3.sql index 4524d4a40..304ee5057 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 @@ -4,47 +4,32 @@ drop trigger if exists migtest_e_history_history_upd on migtest_e_history cascad 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 +drop sequence if exists migtest_e_user_seq; 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_history drop column sys_period; 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 test_string2; +alter table migtest_e_history2_history drop column test_string3; 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; 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 36d862b83..d23cdee00 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 @@ --757334590, 1.0__initial.sql -1548995254, 1.1.sql -1360771849, 1.2__dropsFor_1.1.sql -592037553, 1.3.sql --1991941691, 1.4__dropsFor_1.3.sql +-1264346125, 1.0__initial.sql +94461303, 1.1.sql +713998356, 1.2__dropsFor_1.1.sql +1966394343, 1.3.sql +2043551312, 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/postgres9/1.0__initial.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/postgres9/1.0__initial.sql index 259f541c4..720657951 100644 --- 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 @@ -99,24 +99,28 @@ create table migtest_e_history2 ( obsolete_string2 varchar(255), constraint pk_migtest_e_history2 primary key (id) ); +alter table migtest_e_history2 add column sys_period tstzrange not null default tstzrange(current_timestamp, null); create table migtest_e_history3 ( id serial not null, test_string varchar(255), constraint pk_migtest_e_history3 primary key (id) ); +alter table migtest_e_history3 add column sys_period tstzrange not null default tstzrange(current_timestamp, null); create table migtest_e_history4 ( id serial not null, test_number integer, constraint pk_migtest_e_history4 primary key (id) ); +alter table migtest_e_history4 add column sys_period tstzrange not null default tstzrange(current_timestamp, null); create table migtest_e_history5 ( id serial not null, test_number integer, constraint pk_migtest_e_history5 primary key (id) ); +alter table migtest_e_history5 add column sys_period tstzrange not null default tstzrange(current_timestamp, null); create table migtest_e_history6 ( id serial not null, @@ -124,6 +128,7 @@ create table migtest_e_history6 ( test_number2 integer not null, constraint pk_migtest_e_history6 primary key (id) ); +alter table migtest_e_history6 add column sys_period tstzrange not null default tstzrange(current_timestamp, null); create table migtest_e_ref ( id serial not null, @@ -162,6 +167,21 @@ create table migtest_oto_master ( constraint pk_migtest_oto_master primary key (id) ); +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; + +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; + +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; + +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; + +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 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'; @@ -176,26 +196,6 @@ 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 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; 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 index 82fc83f2b..e12c39028 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/postgres9/1.1.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/postgres9/1.1.sql @@ -1,10 +1,21 @@ -- Migrationscripts for ebean unittest -- drop dependencies +alter table if exists migtest_fk_cascade drop constraint if exists fk_migtest_fk_cascade_one_id; +alter table if exists 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 drop constraint if exists ck_migtest_e_basic_status2; +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_enum drop constraint if exists ck_migtest_e_enum_test_status; +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; 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, @@ -28,59 +39,45 @@ create table migtest_mtm_m_phone_numbers ( 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 add column sys_period tstzrange not null default tstzrange(current_timestamp, null); 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_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; + + +-- 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_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_e_basic alter column status set default 'A'; +alter table migtest_e_basic alter column status set not null; +alter table migtest_e_basic alter column status2 drop default; +alter table migtest_e_basic alter column status2 drop not null; +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; +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 column new_integer integer default 42 not 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); @@ -89,30 +86,31 @@ 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; +alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I','?')); +alter table migtest_e_basic add constraint uq_migtest_e_basic_description unique (description); +-- NOTE: table has @History - special migration may be necessary +update migtest_e_basic set new_boolean_field = old_boolean; +alter table migtest_e_basic add constraint ck_migtest_e_basic_progress check ( progress in (0,1,2)); +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); +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; + +comment on column migtest_e_history.test_string is 'Column altered to long now'; +comment on table migtest_e_history is 'We have history now'; 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; @@ -128,15 +126,17 @@ alter table migtest_mtm_m_migtest_mtm_c add constraint fk_migtest_mtm_m_migtest_ 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; +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; 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_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 add constraint fk_migtest_fk_set_null_one_id foreign key (one_id) references migtest_fk_one (id) on delete restrict on update restrict; +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_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; 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 index 35a7e2b4a..57928b00c 100644 --- 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 @@ -1,24 +1,17 @@ -- Migrationscripts for ebean unittest -- drop dependencies drop view if exists migtest_e_history2_with_history; - -- apply changes -alter table migtest_e_basic drop column description_file; - -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; +alter table migtest_e_basic drop column description_file; +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; +alter table migtest_e_history2_history drop column obsolete_string1; +alter table migtest_e_history2_history drop column obsolete_string2; +drop table if exists migtest_e_ref cascade; 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] 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 index 86910344d..d8cb08843 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/postgres9/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/postgres9/1.3.sql @@ -1,9 +1,24 @@ -- Migrationscripts for ebean unittest -- drop dependencies +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 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_e_basic drop constraint if exists ck_migtest_e_basic_status; +alter table migtest_e_basic drop constraint if exists ck_migtest_e_basic_status2; +alter table migtest_e_basic drop constraint uq_migtest_e_basic_description; +alter table if exists migtest_e_basic drop constraint if exists fk_migtest_e_basic_user_id; +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_enum drop constraint if exists ck_migtest_e_enum_test_status; +drop index if exists ix_migtest_e_basic_indextest3; +drop index if exists ix_migtest_e_basic_indextest6; 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, @@ -12,68 +27,52 @@ create table migtest_e_ref ( 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_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; + +-- 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_basic alter column status drop default; +alter table migtest_e_basic alter column status drop not null; +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 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 description_file bytea; 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; +alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I')); +alter table migtest_e_basic add constraint ck_migtest_e_basic_status2 check ( status2 in ('N','A','I')); +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 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 ''; 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; +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_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/postgres9/1.4__dropsFor_1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/postgres9/1.4__dropsFor_1.3.sql index 4524d4a40..304ee5057 100644 --- 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 @@ -4,47 +4,32 @@ drop trigger if exists migtest_e_history_history_upd on migtest_e_history cascad 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 +drop sequence if exists migtest_e_user_seq; 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_history drop column sys_period; 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 test_string2; +alter table migtest_e_history2_history drop column test_string3; 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; 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 index 334503fd9..49835ad11 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/postgres9/idx_postgres.migrations +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/postgres9/idx_postgres.migrations @@ -1,8 +1,8 @@ -36350976, 1.0__initial.sql -1253246780, 1.1.sql -1360771849, 1.2__dropsFor_1.1.sql --1114998431, 1.3.sql --1991941691, 1.4__dropsFor_1.3.sql +-568439454, 1.0__initial.sql +184884356, 1.1.sql +713998356, 1.2__dropsFor_1.1.sql +-1677592464, 1.3.sql +2043551312, 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 957136815..04bda2769 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 @@ -1,4 +1,14 @@ -- Migrationscripts for ebean unittest +-- drop dependencies +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; +alter table migtest_e_basic drop constraint if exists ck_migtest_e_basic_status; +alter table migtest_e_basic drop constraint if exists ck_migtest_e_basic_status2; +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_enum drop constraint if exists ck_migtest_e_enum_test_status; +drop index if exists ix_migtest_e_basic_indextest1; +drop index if exists ix_migtest_e_basic_indextest5; -- apply changes create table migtest_e_user ( id integer auto_increment not null, @@ -22,80 +32,66 @@ create table migtest_mtm_m_phone_numbers ( 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 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; + + + +-- 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_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_e_basic alter column status set default 'A'; +alter table migtest_e_basic alter column status set not null; +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 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; +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 column new_integer integer default 42 not null; +alter table migtest_e_history alter column test_string numeric(19); 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); +alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I','?')); +alter table migtest_e_basic add constraint uq_migtest_e_basic_description unique (description); +-- NOTE: table has @History - special migration may be necessary +update migtest_e_basic set new_boolean_field = old_boolean; +alter table migtest_e_basic add constraint ck_migtest_e_basic_progress check ( progress in (0,1,2)); +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); +comment on column migtest_e_history.test_string is 'Column altered to long now'; +comment on table migtest_e_history is 'We have history now'; 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; @@ -111,8 +107,14 @@ alter table migtest_mtm_m_migtest_mtm_c add constraint fk_migtest_mtm_m_migtest_ 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; +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; 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_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 add constraint fk_migtest_fk_set_null_one_id foreign key (one_id) references migtest_fk_one (id) on delete restrict on update restrict; +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_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 index bf1e082c9..219f0c1c5 100644 --- 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 @@ -1,15 +1,8 @@ -- Migrationscripts for ebean unittest --- apply changes alter table migtest_e_basic drop column description_file; - 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 index b8349412b..17430501b 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlanywhere/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlanywhere/1.3.sql @@ -1,4 +1,21 @@ -- Migrationscripts for ebean unittest +-- drop dependencies +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 drop constraint if exists ck_migtest_e_basic_status2; +alter table migtest_e_basic drop constraint uq_migtest_e_basic_description; +alter table migtest_e_basic drop constraint if exists fk_migtest_e_basic_user_id; +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_enum drop constraint if exists ck_migtest_e_enum_test_status; +drop index if exists ix_migtest_e_basic_indextest3; +drop index if exists ix_migtest_e_basic_indextest6; -- apply changes create table migtest_e_ref ( id integer auto_increment not null, @@ -7,62 +24,46 @@ create table migtest_e_ref ( 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; + +update migtest_e_basic set user_id = 23 where user_id is 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_basic alter column status drop default; +alter table migtest_e_basic alter column status set null; 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 description_file binary(4500); 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; +alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I')); +alter table migtest_e_basic add constraint ck_migtest_e_basic_status2 check ( status2 in ('N','A','I')); +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 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 ''; 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; +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_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.4__dropsFor_1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlanywhere/1.4__dropsFor_1.3.sql index f45a36211..033f0a5a2 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 @@ -1,33 +1,18 @@ -- 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 index 8ad7c45a6..ba9a1030d 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 @@ -1152950940, 1.0__initial.sql -776493598, 1.1.sql -628353409, 1.2__dropsFor_1.1.sql -436164575, 1.3.sql --1045594368, 1.4__dropsFor_1.3.sql +-1382848803, 1.1.sql +-155876508, 1.2__dropsFor_1.1.sql +-1041003459, 1.3.sql +767202122, 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 3709f7512..2b07b3ed5 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 @@ -1,4 +1,14 @@ -- Migrationscripts for ebean unittest +-- drop dependencies +-- not supported: alter table migtest_fk_cascade drop constraint if exists fk_migtest_fk_cascade_one_id; +-- not supported: alter table migtest_fk_set_null drop constraint if exists fk_migtest_fk_set_null_one_id; +-- not supported: alter table migtest_e_basic drop constraint if exists ck_migtest_e_basic_status; +-- not supported: alter table migtest_e_basic drop constraint if exists ck_migtest_e_basic_status2; +-- not supported: alter table migtest_e_basic drop constraint uq_migtest_e_basic_indextest2; +-- not supported: alter table migtest_e_basic drop constraint uq_migtest_e_basic_indextest6; +-- not supported: alter table migtest_e_enum drop constraint if exists ck_migtest_e_enum_test_status; +drop index if exists ix_migtest_e_basic_indextest1; +drop index if exists ix_migtest_e_basic_indextest5; -- apply changes create table migtest_e_user ( id integer not null, @@ -27,80 +37,72 @@ create table migtest_mtm_m_phone_numbers ( 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); --- not supported: 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; --- not supported: alter table migtest_fk_cascade drop constraint if exists fk_migtest_fk_cascade_one_id; --- not supported: 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; --- not supported: 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; --- not supported: 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; --- not supported: alter table migtest_fk_set_null drop constraint if exists fk_migtest_fk_set_null_one_id; --- not supported: 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; --- not supported: alter table migtest_e_basic drop constraint if exists ck_migtest_e_basic_status; --- not supported: alter table migtest_e_basic alter column status set default 'A'; --- not supported: alter table migtest_e_basic alter column status set not null; --- not supported: alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I','?')); --- not supported: alter table migtest_e_basic drop constraint if exists ck_migtest_e_basic_status2; --- not supported: alter table migtest_e_basic alter column status2 varchar(127); --- not supported: alter table migtest_e_basic alter column status2 drop default; --- not supported: alter table migtest_e_basic alter column status2 set null; -- rename all collisions; --- not supported: 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; --- not supported: 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; --- not supported: 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; --- not supported: 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; - --- not supported: alter table migtest_e_basic drop constraint uq_migtest_e_basic_indextest2; --- not supported: alter table migtest_e_basic drop constraint uq_migtest_e_basic_indextest6; --- not supported: alter table migtest_e_basic add constraint uq_migtest_e_basic_status_indextest1 unique (status,indextest1); --- not supported: alter table migtest_e_basic add constraint uq_migtest_e_basic_name unique (name); --- not supported: alter table migtest_e_basic add constraint uq_migtest_e_basic_indextest4 unique (indextest4); --- not supported: alter table migtest_e_basic add constraint uq_migtest_e_basic_indextest5 unique (indextest5); --- not supported: alter table migtest_e_enum drop constraint if exists ck_migtest_e_enum_test_status; --- not supported: 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; + + + +-- 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_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; +-- not supported: alter table migtest_e_basic alter column status set default 'A'; +-- not supported: alter table migtest_e_basic alter column status set not null; +-- not supported: alter table migtest_e_basic alter column status2 varchar(127); +-- not supported: alter table migtest_e_basic alter column status2 drop default; +-- not supported: alter table migtest_e_basic alter column status2 set null; +-- not supported: 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; +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 column new_integer integer default 42 not null; +-- not supported: alter table migtest_e_history alter column test_string integer; -- not supported: alter table migtest_e_history2 alter column test_string set default 'unknown'; -- not supported: 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); - -- not supported: 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; -- not supported: alter table migtest_e_history6 alter column test_number1 set default 42; -- not supported: alter table migtest_e_history6 alter column test_number1 set not null; -- not supported: 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; +-- not supported: alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I','?')); +-- not supported: alter table migtest_e_basic add constraint uq_migtest_e_basic_description unique (description); +-- NOTE: table has @History - special migration may be necessary +update migtest_e_basic set new_boolean_field = old_boolean; +-- not supported: alter table migtest_e_basic add constraint ck_migtest_e_basic_progress check ( progress in (0,1,2)); +-- not supported: alter table migtest_e_basic add constraint uq_migtest_e_basic_status_indextest1 unique (status,indextest1); +-- not supported: alter table migtest_e_basic add constraint uq_migtest_e_basic_name unique (name); +-- not supported: alter table migtest_e_basic add constraint uq_migtest_e_basic_indextest4 unique (indextest4); +-- not supported: alter table migtest_e_basic add constraint uq_migtest_e_basic_indextest5 unique (indextest5); 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; +-- not supported: 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; create index ix_migtest_ckey_parent_assoc_id on migtest_ckey_parent (assoc_id); -- not supported: 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; +-- not supported: 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; +-- not supported: 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; +-- not supported: 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; +-- not supported: 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; +-- not supported: 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; -- not supported: 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/sqlite/1.2__dropsFor_1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlite/1.2__dropsFor_1.1.sql index bf1e082c9..219f0c1c5 100644 --- 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 @@ -1,15 +1,8 @@ -- Migrationscripts for ebean unittest --- apply changes alter table migtest_e_basic drop column description_file; - 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 index 6bcf4d262..480cde461 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlite/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlite/1.3.sql @@ -1,4 +1,21 @@ -- Migrationscripts for ebean unittest +-- drop dependencies +-- not supported: alter table migtest_ckey_detail drop constraint if exists fk_migtest_ckey_detail_parent; +-- not supported: alter table migtest_fk_cascade drop constraint if exists fk_migtest_fk_cascade_one_id; +-- not supported: alter table migtest_fk_none drop constraint if exists fk_migtest_fk_none_one_id; +-- not supported: alter table migtest_fk_none_via_join drop constraint if exists fk_migtest_fk_none_via_join_one_id; +-- not supported: alter table migtest_fk_set_null drop constraint if exists fk_migtest_fk_set_null_one_id; +-- not supported: alter table migtest_e_basic drop constraint if exists ck_migtest_e_basic_status; +-- not supported: alter table migtest_e_basic drop constraint if exists ck_migtest_e_basic_status2; +-- not supported: alter table migtest_e_basic drop constraint uq_migtest_e_basic_description; +-- not supported: alter table migtest_e_basic drop constraint if exists fk_migtest_e_basic_user_id; +-- not supported: alter table migtest_e_basic drop constraint uq_migtest_e_basic_status_indextest1; +-- not supported: alter table migtest_e_basic drop constraint uq_migtest_e_basic_name; +-- not supported: alter table migtest_e_basic drop constraint uq_migtest_e_basic_indextest4; +-- not supported: alter table migtest_e_basic drop constraint uq_migtest_e_basic_indextest5; +-- not supported: alter table migtest_e_enum drop constraint if exists ck_migtest_e_enum_test_status; +drop index if exists ix_migtest_e_basic_indextest3; +drop index if exists ix_migtest_e_basic_indextest6; -- apply changes create table migtest_e_ref ( id integer not null, @@ -7,60 +24,44 @@ create table migtest_e_ref ( constraint pk_migtest_e_ref primary key (id) ); --- not supported: alter table migtest_ckey_detail drop constraint if exists fk_migtest_ckey_detail_parent; --- not supported: alter table migtest_fk_cascade drop constraint if exists fk_migtest_fk_cascade_one_id; --- not supported: 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; --- not supported: alter table migtest_fk_none drop constraint if exists fk_migtest_fk_none_one_id; --- not supported: alter table migtest_fk_none_via_join drop constraint if exists fk_migtest_fk_none_via_join_one_id; --- not supported: alter table migtest_fk_set_null drop constraint if exists fk_migtest_fk_set_null_one_id; --- not supported: 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; --- not supported: alter table migtest_e_basic drop constraint if exists ck_migtest_e_basic_status; --- not supported: alter table migtest_e_basic alter column status drop default; --- not supported: alter table migtest_e_basic alter column status set null; --- not supported: 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; --- not supported: alter table migtest_e_basic drop constraint if exists ck_migtest_e_basic_status2; + +update migtest_e_basic set user_id = 23 where user_id is null; + + + +-- NOTE: table has @History - special migration may be necessary +update migtest_e_history6 set test_number2 = 7 where test_number2 is null; +-- not supported: alter table migtest_e_basic alter column status drop default; +-- not supported: alter table migtest_e_basic alter column status set null; -- not supported: alter table migtest_e_basic alter column status2 varchar(1); -- not supported: alter table migtest_e_basic alter column status2 set default 'N'; -- not supported: alter table migtest_e_basic alter column status2 set not null; --- not supported: alter table migtest_e_basic add constraint ck_migtest_e_basic_status2 check ( status2 in ('N','A','I')); --- not supported: 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; --- not supported: alter table migtest_e_basic drop constraint if exists fk_migtest_e_basic_user_id; -- not supported: alter table migtest_e_basic alter column user_id set default 23; -- not supported: alter table migtest_e_basic alter column user_id set not null; alter table migtest_e_basic add column description_file blob; 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; - --- not supported: alter table migtest_e_basic drop constraint uq_migtest_e_basic_status_indextest1; --- not supported: alter table migtest_e_basic drop constraint uq_migtest_e_basic_name; --- not supported: alter table migtest_e_basic drop constraint uq_migtest_e_basic_indextest4; --- not supported: alter table migtest_e_basic drop constraint uq_migtest_e_basic_indextest5; --- not supported: alter table migtest_e_basic add constraint uq_migtest_e_basic_indextest2 unique (indextest2); --- not supported: alter table migtest_e_basic add constraint uq_migtest_e_basic_indextest6 unique (indextest6); --- not supported: alter table migtest_e_enum drop constraint if exists ck_migtest_e_enum_test_status; --- not supported: alter table migtest_e_enum add constraint ck_migtest_e_enum_test_status check ( test_status in ('N','A','I')); -- not supported: alter table migtest_e_history2 alter column test_string drop default; -- not supported: 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); - -- not supported: alter table migtest_e_history4 alter column test_number integer; -- not supported: alter table migtest_e_history6 alter column test_number1 drop default; -- not supported: 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; -- not supported: alter table migtest_e_history6 alter column test_number2 set default 7; -- not supported: alter table migtest_e_history6 alter column test_number2 set not null; +-- not supported: alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I')); +-- not supported: alter table migtest_e_basic add constraint ck_migtest_e_basic_status2 check ( status2 in ('N','A','I')); +-- not supported: alter table migtest_e_basic add constraint uq_migtest_e_basic_indextest2 unique (indextest2); +-- not supported: alter table migtest_e_basic add constraint uq_migtest_e_basic_indextest6 unique (indextest6); +-- not supported: alter table migtest_e_enum add constraint ck_migtest_e_enum_test_status check ( test_status in ('N','A','I')); 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; +-- not supported: 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; +-- not supported: 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); -- not supported: 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/sqlite/1.4__dropsFor_1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlite/1.4__dropsFor_1.3.sql index f45a36211..033f0a5a2 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 @@ -1,33 +1,18 @@ -- 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/idx_sqlite.migrations b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlite/idx_sqlite.migrations index a2235c8ce..b1a4aa620 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 @@ 181087169, 1.0__initial.sql -136619950, 1.1.sql -628353409, 1.2__dropsFor_1.1.sql -1056032295, 1.3.sql --1045594368, 1.4__dropsFor_1.3.sql +1010963818, 1.1.sql +-155876508, 1.2__dropsFor_1.1.sql +-162538697, 1.3.sql +767202122, 1.4__dropsFor_1.3.sql 2034589659, R__order_views_sqlite.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 index 2058f54b6..bfd1c5ad7 100644 --- 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 @@ -76,8 +76,6 @@ create table migtest_e_basic ( 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, @@ -130,7 +128,6 @@ create table migtest_e_ref ( 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, @@ -162,6 +159,9 @@ create table migtest_oto_master ( constraint pk_migtest_oto_master 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; +alter table migtest_e_ref add constraint uq_migtest_e_ref_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_migtest_fk_cascade_one_id on migtest_fk_cascade (one_id); 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 index bd340a266..225a2041c 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/1.1.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/1.1.sql @@ -1,4 +1,16 @@ -- Migrationscripts for ebean unittest +-- drop dependencies +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; +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; +IF OBJECT_ID('ck_migtest_e_basic_status', 'C') IS NOT NULL alter table migtest_e_basic drop constraint ck_migtest_e_basic_status; +IF OBJECT_ID('ck_migtest_e_basic_status2', 'C') IS NOT NULL alter table migtest_e_basic drop constraint ck_migtest_e_basic_status2; +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; +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; +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; -- apply changes create table migtest_e_user ( id integer identity(1,1) not null, @@ -22,53 +34,21 @@ create table migtest_mtm_m_phone_numbers ( 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; EXEC usp_ebean_drop_default_constraint migtest_e_basic, status; alter table migtest_e_basic alter column status varchar(1) not null; alter table migtest_e_basic add default 'A' for status; -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 @@ -76,12 +56,8 @@ update migtest_e_history2 set test_string = 'unknown' where test_string is null; EXEC usp_ebean_drop_default_constraint migtest_e_history2, test_string; alter table migtest_e_history2 alter column test_string varchar(255) not null; alter table migtest_e_history2 add default 'unknown' for test_string; -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 @@ -90,14 +66,34 @@ EXEC usp_ebean_drop_default_constraint migtest_e_history6, test_number1; alter table migtest_e_history6 alter column test_number1 integer not null; alter table migtest_e_history6 add default 42 for test_number1; alter table migtest_e_history6 alter column test_number2 integer; + + +alter table migtest_ckey_detail add one_key integer; +alter table migtest_ckey_detail add two_key varchar(127); +alter table migtest_ckey_parent add assoc_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; +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 new_integer integer default 42 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_history5 add test_boolean bit default 0 not null; alter table migtest_e_softdelete add deleted bit default 0 not null; - alter table migtest_oto_child add master_id numeric(19); +alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I','?')); +create unique nonclustered index uq_migtest_e_basic_description on migtest_e_basic(description) where description is not null; +-- NOTE: table has @History - special migration may be necessary +update migtest_e_basic set new_boolean_field = old_boolean; +alter table migtest_e_basic add constraint ck_migtest_e_basic_progress check ( progress in (0,1,2)); +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; 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); @@ -113,9 +109,15 @@ alter table migtest_mtm_m_migtest_mtm_c add constraint fk_migtest_mtm_m_migtest_ 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); +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); 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_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 add constraint fk_migtest_fk_set_null_one_id foreign key (one_id) references migtest_fk_one (id); +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_oto_child add constraint fk_migtest_oto_child_master_id foreign key (master_id) references migtest_oto_master (id); alter table migtest_e_history diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/1.2__dropsFor_1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/1.2__dropsFor_1.1.sql index a49969d1e..29cff2d18 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/1.2__dropsFor_1.1.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/1.2__dropsFor_1.1.sql @@ -12,5 +12,5 @@ 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; +IF OBJECT_ID('migtest_e_ref', 'U') IS NOT NULL drop table migtest_e_ref; 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 index 7915d515c..3f7229989 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/1.3.sql @@ -1,43 +1,15 @@ -- 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); - +-- drop dependencies 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; -EXEC usp_ebean_drop_default_constraint migtest_e_basic, status2; -alter table migtest_e_basic alter column status2 varchar(1) not null; -alter table migtest_e_basic add default 'N' for status2; -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; -EXEC usp_ebean_drop_default_constraint migtest_e_basic, user_id; -alter table migtest_e_basic alter column user_id integer not null; -alter table migtest_e_basic add default 23 for user_id; -alter table migtest_e_basic add description_file image; -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; @@ -46,14 +18,31 @@ IF EXISTS (SELECT name FROM sys.indexes WHERE object_id = OBJECT_ID('migtest_e_b 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')); +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; +-- 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) +); + +EXEC usp_ebean_drop_default_constraint migtest_e_basic, status; +alter table migtest_e_basic alter column status varchar(1); + +update migtest_e_basic set status2 = 'N' where status2 is null; +EXEC usp_ebean_drop_default_constraint migtest_e_basic, status2; +alter table migtest_e_basic alter column status2 varchar(1) not null; +alter table migtest_e_basic add default 'N' for status2; + +update migtest_e_basic set user_id = 23 where user_id is null; +EXEC usp_ebean_drop_default_constraint migtest_e_basic, user_id; +alter table migtest_e_basic alter column user_id integer not null; +alter table migtest_e_basic add default 23 for user_id; + 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; @@ -64,10 +53,22 @@ update migtest_e_history6 set test_number2 = 7 where test_number2 is null; EXEC usp_ebean_drop_default_constraint migtest_e_history6, test_number2; alter table migtest_e_history6 alter column test_number2 integer not null; alter table migtest_e_history6 add default 7 for test_number2; +alter table migtest_e_basic add description_file image; +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; +alter table migtest_e_history2 add obsolete_string1 varchar(255); +alter table migtest_e_history2 add obsolete_string2 varchar(255); +alter table migtest_e_ref add constraint uq_migtest_e_ref_name unique (name); +alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I')); +alter table migtest_e_basic add constraint ck_migtest_e_basic_status2 check ( status2 in ('N','A','I')); +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; +alter table migtest_e_enum add constraint ck_migtest_e_enum_test_status check ( test_status in ('N','A','I')); 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; +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_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/sqlserver16/1.4__dropsFor_1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/1.4__dropsFor_1.3.sql index 3f465ec78..43159ecc0 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/1.4__dropsFor_1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/1.4__dropsFor_1.3.sql @@ -28,8 +28,8 @@ 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_e_user', 'U') IS NOT NULL drop table migtest_e_user; 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; 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 index 619e350d6..b3410a59f 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/idx_sqlserver.migrations +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/idx_sqlserver.migrations @@ -1,8 +1,8 @@ -2122378240, I__create_procs.sql -1983037247, 1.0__initial.sql -1735900055, 1.1.sql -1019731053, 1.2__dropsFor_1.1.sql -239521374, 1.3.sql --1335541264, 1.4__dropsFor_1.3.sql +-1715735485, 1.0__initial.sql +657469133, 1.1.sql +1140908215, 1.2__dropsFor_1.1.sql +-1997744448, 1.3.sql +1468404025, 1.4__dropsFor_1.3.sql 1607822082, R__order_views_mssql.sql diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/1.0__initial.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/1.0__initial.sql index 2fa18fa18..c638aac4c 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/1.0__initial.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/1.0__initial.sql @@ -84,8 +84,6 @@ create table migtest_e_basic ( 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 ( @@ -146,7 +144,6 @@ create table migtest_e_ref ( 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 ( @@ -184,6 +181,9 @@ create table migtest_oto_master ( ); create sequence migtest_oto_master_seq as bigint start with 1; +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; +alter table migtest_e_ref add constraint uq_migtest_e_ref_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_migtest_fk_cascade_one_id on migtest_fk_cascade (one_id); diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/1.1.sql index 4b142aa09..f891b635b 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/1.1.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/1.1.sql @@ -1,4 +1,16 @@ -- Migrationscripts for ebean unittest +-- drop dependencies +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; +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; +IF OBJECT_ID('ck_migtest_e_basic_status', 'C') IS NOT NULL alter table migtest_e_basic drop constraint ck_migtest_e_basic_status; +IF OBJECT_ID('ck_migtest_e_basic_status2', 'C') IS NOT NULL alter table migtest_e_basic drop constraint ck_migtest_e_basic_status2; +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; +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; +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; -- apply changes create table migtest_e_user ( id integer not null, @@ -23,53 +35,21 @@ create table migtest_mtm_m_phone_numbers ( value nvarchar(255) not null ); -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; EXEC usp_ebean_drop_default_constraint migtest_e_basic, status; alter table migtest_e_basic alter column status nvarchar(1) not null; alter table migtest_e_basic add default 'A' for status; -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 @@ -77,12 +57,8 @@ update migtest_e_history2 set test_string = 'unknown' where test_string is null; EXEC usp_ebean_drop_default_constraint migtest_e_history2, test_string; alter table migtest_e_history2 alter column test_string nvarchar(255) not null; alter table migtest_e_history2 add default 'unknown' for test_string; -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 @@ -91,14 +67,34 @@ EXEC usp_ebean_drop_default_constraint migtest_e_history6, test_number1; alter table migtest_e_history6 alter column test_number1 integer not null; alter table migtest_e_history6 add default 42 for test_number1; alter table migtest_e_history6 alter column test_number2 integer; + + +alter table migtest_ckey_detail add one_key integer; +alter table migtest_ckey_detail add two_key nvarchar(127); +alter table migtest_ckey_parent add assoc_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; +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 new_integer integer default 42 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_history5 add test_boolean bit default 0 not null; alter table migtest_e_softdelete add deleted bit default 0 not null; - alter table migtest_oto_child add master_id numeric(19); +alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I','?')); +create unique nonclustered index uq_migtest_e_basic_description on migtest_e_basic(description) where description is not null; +-- NOTE: table has @History - special migration may be necessary +update migtest_e_basic set new_boolean_field = old_boolean; +alter table migtest_e_basic add constraint ck_migtest_e_basic_progress check ( progress in (0,1,2)); +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; 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); @@ -114,9 +110,15 @@ alter table migtest_mtm_m_migtest_mtm_c add constraint fk_migtest_mtm_m_migtest_ 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); +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); 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_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 add constraint fk_migtest_fk_set_null_one_id foreign key (one_id) references migtest_fk_one (id); +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_oto_child add constraint fk_migtest_oto_child_master_id foreign key (master_id) references migtest_oto_master (id); alter table migtest_e_history 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 index a49969d1e..29cff2d18 100644 --- 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 @@ -12,5 +12,5 @@ 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; +IF OBJECT_ID('migtest_e_ref', 'U') IS NOT NULL drop table migtest_e_ref; diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/1.3.sql index 23dacc249..89ecc0a62 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/1.3.sql @@ -1,44 +1,15 @@ -- 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; - +-- drop dependencies 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; -EXEC usp_ebean_drop_default_constraint migtest_e_basic, status2; -alter table migtest_e_basic alter column status2 nvarchar(1) not null; -alter table migtest_e_basic add default 'N' for status2; -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; -EXEC usp_ebean_drop_default_constraint migtest_e_basic, user_id; -alter table migtest_e_basic alter column user_id integer not null; -alter table migtest_e_basic add default 23 for user_id; -alter table migtest_e_basic add description_file image; -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; @@ -47,14 +18,32 @@ IF EXISTS (SELECT name FROM sys.indexes WHERE object_id = OBJECT_ID('migtest_e_b 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')); +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; +-- apply changes +create table migtest_e_ref ( + id integer not null, + name nvarchar(127) not null, + constraint pk_migtest_e_ref primary key (id) +); +create sequence migtest_e_ref_seq as bigint start with 1; + +EXEC usp_ebean_drop_default_constraint migtest_e_basic, status; +alter table migtest_e_basic alter column status nvarchar(1); + +update migtest_e_basic set status2 = 'N' where status2 is null; +EXEC usp_ebean_drop_default_constraint migtest_e_basic, status2; +alter table migtest_e_basic alter column status2 nvarchar(1) not null; +alter table migtest_e_basic add default 'N' for status2; + +update migtest_e_basic set user_id = 23 where user_id is null; +EXEC usp_ebean_drop_default_constraint migtest_e_basic, user_id; +alter table migtest_e_basic alter column user_id integer not null; +alter table migtest_e_basic add default 23 for user_id; + 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; @@ -65,10 +54,22 @@ update migtest_e_history6 set test_number2 = 7 where test_number2 is null; EXEC usp_ebean_drop_default_constraint migtest_e_history6, test_number2; alter table migtest_e_history6 alter column test_number2 integer not null; alter table migtest_e_history6 add default 7 for test_number2; +alter table migtest_e_basic add description_file image; +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; +alter table migtest_e_history2 add obsolete_string1 nvarchar(255); +alter table migtest_e_history2 add obsolete_string2 nvarchar(255); +alter table migtest_e_ref add constraint uq_migtest_e_ref_name unique (name); +alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I')); +alter table migtest_e_basic add constraint ck_migtest_e_basic_status2 check ( status2 in ('N','A','I')); +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; +alter table migtest_e_enum add constraint ck_migtest_e_enum_test_status check ( test_status in ('N','A','I')); 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; +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_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/sqlserver17/1.4__dropsFor_1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/1.4__dropsFor_1.3.sql index 3f465ec78..43159ecc0 100644 --- 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 @@ -28,8 +28,8 @@ 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_e_user', 'U') IS NOT NULL drop table migtest_e_user; 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; diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/idx_sqlserver.migrations b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/idx_sqlserver.migrations index 69734f2f2..1c9c36667 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/idx_sqlserver.migrations +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/idx_sqlserver.migrations @@ -1,8 +1,8 @@ -2122378240, I__create_procs.sql --813787447, 1.0__initial.sql --925841767, 1.1.sql -1019731053, 1.2__dropsFor_1.1.sql --1858208, 1.3.sql --1335541264, 1.4__dropsFor_1.3.sql +2038422044, 1.0__initial.sql +137958256, 1.1.sql +1140908215, 1.2__dropsFor_1.1.sql +1570214773, 1.3.sql +1468404025, 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 index 88e5ba9cf..9799b4e3f 100644 --- 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 @@ -99,24 +99,28 @@ create table migtest_e_history2 ( obsolete_string2 varchar(255), constraint pk_migtest_e_history2 primary key (id) ); +alter table migtest_e_history2 add column sys_period tstzrange not null default tstzrange(current_timestamp, null); 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) ); +alter table migtest_e_history3 add column sys_period tstzrange not null default tstzrange(current_timestamp, null); 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) ); +alter table migtest_e_history4 add column sys_period tstzrange not null default tstzrange(current_timestamp, null); 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) ); +alter table migtest_e_history5 add column sys_period tstzrange not null default tstzrange(current_timestamp, null); create table migtest_e_history6 ( id integer generated by default as identity not null, @@ -124,6 +128,7 @@ create table migtest_e_history6 ( test_number2 integer not null, constraint pk_migtest_e_history6 primary key (id) ); +alter table migtest_e_history6 add column sys_period tstzrange not null default tstzrange(current_timestamp, null); create table migtest_e_ref ( id integer generated by default as identity not null, @@ -162,6 +167,44 @@ create table migtest_oto_master ( constraint pk_migtest_oto_master primary key (id) ); +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; + +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; + +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; + +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; + +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 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); @@ -173,49 +216,6 @@ 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 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; 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 7a911b54c..32f7d2535 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 @@ -1,10 +1,18 @@ -- Migrationscripts for ebean unittest -- drop dependencies +alter table if exists migtest_fk_cascade drop constraint if exists fk_migtest_fk_cascade_one_id; +alter table if exists 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 drop constraint if exists ck_migtest_e_basic_status2; +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_enum drop constraint if exists ck_migtest_e_enum_test_status; +drop index if exists ix_migtest_e_basic_indextest1; +drop index if exists ix_migtest_e_basic_indextest5; 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, @@ -28,57 +36,43 @@ create table migtest_mtm_m_phone_numbers ( 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; -comment on column migtest_e_history.test_string is 'Column altered to long now'; +alter table migtest_e_history add column sys_period tstzrange not null default tstzrange(current_timestamp, null); 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_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; + + +-- 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_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_e_basic alter column status set default 'A'; +alter table migtest_e_basic alter column status set not null; +alter table migtest_e_basic alter column status2 drop default; +alter table migtest_e_basic alter column status2 drop not null; +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; +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 column new_integer integer default 42 not 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); @@ -87,26 +81,34 @@ 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; +alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I','?')); +alter table migtest_e_basic add constraint uq_migtest_e_basic_description unique (description); +-- NOTE: table has @History - special migration may be necessary +update migtest_e_basic set new_boolean_field = old_boolean; +alter table migtest_e_basic add constraint ck_migtest_e_basic_progress check ( progress in (0,1,2)); +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); +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; + +comment on column migtest_e_history.test_string is 'Column altered to long now'; +comment on table migtest_e_history is 'We have history now'; 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; @@ -122,19 +124,17 @@ alter table migtest_mtm_m_migtest_mtm_c add constraint fk_migtest_mtm_m_migtest_ 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; +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; 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_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 add constraint fk_migtest_fk_set_null_one_id foreign key (one_id) references migtest_fk_one (id) on delete restrict on update restrict; +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_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; 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 index 35a7e2b4a..57928b00c 100644 --- 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 @@ -1,24 +1,17 @@ -- Migrationscripts for ebean unittest -- drop dependencies drop view if exists migtest_e_history2_with_history; - -- apply changes -alter table migtest_e_basic drop column description_file; - -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; +alter table migtest_e_basic drop column description_file; +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; +alter table migtest_e_history2_history drop column obsolete_string1; +alter table migtest_e_history2_history drop column obsolete_string2; +drop table if exists migtest_e_ref cascade; 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] 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 index 5a5ef8226..fd9fbec2f 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/yugabyte/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/yugabyte/1.3.sql @@ -1,9 +1,24 @@ -- Migrationscripts for ebean unittest -- drop dependencies +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 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_e_basic drop constraint if exists ck_migtest_e_basic_status; +alter table migtest_e_basic drop constraint if exists ck_migtest_e_basic_status2; +alter table migtest_e_basic drop constraint uq_migtest_e_basic_description; +alter table if exists migtest_e_basic drop constraint if exists fk_migtest_e_basic_user_id; +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_enum drop constraint if exists ck_migtest_e_enum_test_status; +drop index if exists ix_migtest_e_basic_indextest3; +drop index if exists ix_migtest_e_basic_indextest6; 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, @@ -12,65 +27,49 @@ create table migtest_e_ref ( 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_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; + +-- 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_basic alter column status drop default; +alter table migtest_e_basic alter column status drop not null; +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 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 description_file bytea; 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; +alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I')); +alter table migtest_e_basic add constraint ck_migtest_e_basic_status2 check ( status2 in ('N','A','I')); +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 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 ''; 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; +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_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/yugabyte/1.4__dropsFor_1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/yugabyte/1.4__dropsFor_1.3.sql index 4524d4a40..304ee5057 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 @@ -4,47 +4,32 @@ drop trigger if exists migtest_e_history_history_upd on migtest_e_history cascad 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 +drop sequence if exists migtest_e_user_seq; 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_history drop column sys_period; 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 test_string2; +alter table migtest_e_history2_history drop column test_string3; 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; 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 0d28a6487..50390783f 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 @@ -78788203, 1.0__initial.sql -1985413053, 1.1.sql -1360771849, 1.2__dropsFor_1.1.sql --1862150074, 1.3.sql --1991941691, 1.4__dropsFor_1.3.sql +-1438254935, 1.0__initial.sql +-47140703, 1.1.sql +713998356, 1.2__dropsFor_1.1.sql +593308024, 1.3.sql +2043551312, 1.4__dropsFor_1.3.sql 561281075, R__order_views.sql From 790147e42d46e5fa8eb90246439af8ac6349f2fc Mon Sep 17 00:00:00 2001 From: Roland Praml Date: Tue, 8 Mar 2022 17:28:39 +0100 Subject: [PATCH 066/114] Reviewed DDL changes - all changes are plausible --- .../migrationtest/dbmigration/hana/1.1.sql | 226 +++++++++--------- .../dbmigration/hana/1.2__dropsFor_1.1.sql | 16 +- .../migrationtest/dbmigration/hana/1.3.sql | 121 +++++----- .../dbmigration/hana/1.4__dropsFor_1.3.sql | 37 +-- .../dbmigration/hana/idx_hana.migrations | 8 +- 5 files changed, 192 insertions(+), 216 deletions(-) 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 0379b11ee..6e55680e3 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 @@ -1,4 +1,56 @@ -- Migrationscripts for ebean unittest +-- drop dependencies +alter table migtest_fk_cascade drop constraint fk_migtest_fk_cascade_one_id; +alter table migtest_fk_set_null drop constraint fk_migtest_fk_set_null_one_id; +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; +$$; +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; +$$; +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; +$$; +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; +$$; +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; +$$; -- apply changes create column table migtest_e_user ( id integer generated by default as identity not null, @@ -22,139 +74,79 @@ create column table migtest_mtm_m_phone_numbers ( value nvarchar(255) not null ); -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); + +alter table migtest_e_history2 drop system versioning; + +-- 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_history3 drop system versioning; +alter table migtest_e_history4 drop system versioning; +alter table migtest_e_history5 drop system versioning; + +alter table migtest_e_history6 drop system versioning; + +-- 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_ckey_detail add (one_key integer, + two_key nvarchar(127)); +alter table migtest_ckey_parent add (assoc_id integer); +alter table migtest_e_basic alter (status nvarchar(1) default 'A' not null, + status2 nvarchar(127) default null, + user_id integer); +alter table migtest_e_basic add (new_string_field nvarchar(255) default 'foo''bar' not null, + new_boolean_field boolean default true not null, + new_boolean_field2 boolean default true not null, + progress integer default 0 not null, + new_integer integer default 42 not null); +alter table migtest_e_history alter (test_string bigint); +alter table migtest_e_history2 alter (test_string nvarchar(255) default 'unknown' not null); +alter table migtest_e_history2 add (test_string2 nvarchar(255), + test_string3 nvarchar(255) default 'unknown' not null, + new_column nvarchar(20)); +alter table migtest_e_history2_history alter (test_string nvarchar(255) default 'unknown' not null); +alter table migtest_e_history2_history add (test_string2 nvarchar(255), + test_string3 nvarchar(255) default 'unknown', + new_column nvarchar(20)); +alter table migtest_e_history4 alter (test_number bigint); +alter table migtest_e_history4_history alter (test_number bigint); +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_history6 alter (test_number1 integer default 42 not null, + test_number2 integer); +alter table migtest_e_history6_history alter (test_number1 integer default 42 not null, + test_number2 integer); +alter table migtest_e_softdelete add (deleted boolean default false not null); +alter table migtest_oto_child add (master_id bigint); +alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I','?')); +-- cannot create unique index "uq_migtest_e_basic_description" on table "migtest_e_basic" with nullable columns; +-- NOTE: table has @History - special migration may be necessary 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); - +alter table migtest_e_history2 add system versioning history table migtest_e_history2_history not validated; +alter table migtest_e_history3 add system versioning history table migtest_e_history3_history not validated; +alter table migtest_e_history4 add system versioning history table migtest_e_history4_history not validated; +alter table migtest_e_history5 add system versioning history table migtest_e_history5_history not validated; +alter table migtest_e_history6 add system versioning history table migtest_e_history6_history not validated; -- 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; @@ -170,9 +162,15 @@ alter table migtest_mtm_m_migtest_mtm_c add constraint fk_migtest_mtm_m_migtest_ -- 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; +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; -- 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_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 add constraint fk_migtest_fk_set_null_one_id foreign key (one_id) references migtest_fk_one (id) on delete restrict on update restrict; +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_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 ( 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 index c50f9687c..01f71574e 100644 --- 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 @@ -1,21 +1,15 @@ -- Migrationscripts for ebean unittest -- apply changes +alter table migtest_e_history2 drop system versioning; + + CALL usp_ebean_drop_column('migtest_e_basic', 'description_file'); - 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_string1'); 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 */; +alter table migtest_e_history2 add system versioning history table migtest_e_history2_history not validated; 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 index c5ec29186..cf5fcfee7 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/hana/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/hana/1.3.sql @@ -1,19 +1,10 @@ -- 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) -); - +-- drop dependencies 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 @@ -21,10 +12,6 @@ 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 @@ -32,9 +19,6 @@ 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 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 @@ -42,15 +26,7 @@ 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 ( description_file blob); -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 @@ -79,8 +55,6 @@ 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 @@ -88,41 +62,6 @@ 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 @@ -137,6 +76,64 @@ declare exit handler for sql_error_code 261 begin end; exec 'drop index ix_migtest_e_basic_indextest6'; end; $$; +-- 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) +); + + +update migtest_e_basic set status2 = 'N' where status2 is null; + +update migtest_e_basic set user_id = 23 where user_id is null; + +alter table migtest_e_history2 drop system versioning; + +alter table migtest_e_history3 drop system versioning; +alter table migtest_e_history4 drop system versioning; +alter table migtest_e_history6 drop system versioning; + +-- 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_basic alter (status nvarchar(1) default null, + status2 nclob not null); +alter table migtest_e_basic alter (status2 nvarchar(1) default 'N' not null, + user_id integer default 23 not null); +alter table migtest_e_basic add (description_file blob, + old_boolean boolean default false not null, + old_boolean2 boolean, + eref_id integer); +alter table migtest_e_history2 alter (test_string nvarchar(255) default null); +alter table migtest_e_history2 add (obsolete_string1 nvarchar(255), + obsolete_string2 nvarchar(255)); +alter table migtest_e_history2_history alter (test_string nvarchar(255) default null); +alter table migtest_e_history2_history add (obsolete_string1 nvarchar(255), + obsolete_string2 nvarchar(255)); +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_history6 alter (test_number1 integer default null, + test_number2 integer default 7 not null); +alter table migtest_e_history6_history alter (test_number1 integer default null, + test_number2 integer default 7 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 add constraint ck_migtest_e_basic_status2 check ( status2 in ('N','A','I')); +-- 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; +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 add system versioning history table migtest_e_history2_history not validated; +alter table migtest_e_history3 add system versioning history table migtest_e_history3_history not validated; +alter table migtest_e_history4 add system versioning history table migtest_e_history4_history not validated; +alter table migtest_e_history6 add system versioning history table migtest_e_history6_history not validated; +-- 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; +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_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; 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 526dc7287..16c329132 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 @@ -4,48 +4,35 @@ 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 +alter table migtest_e_history2 drop system versioning; + + + +alter table migtest_e_history5 drop system versioning; + + + 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', 'test_string2'); +CALL usp_ebean_drop_column('migtest_e_history2_history', 'test_string3'); 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'); - +alter table migtest_e_history2 add system versioning history table migtest_e_history2_history not validated; +alter table migtest_e_history5 add system versioning history table migtest_e_history5_history not validated; 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/idx_hana.migrations b/ebean-test/src/test/resources/migrationtest/dbmigration/hana/idx_hana.migrations index 8f4cc673e..bf6b1e14d 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,8 +1,8 @@ -745347271, I__create_procs.sql 513351138, 1.0__initial.sql --1152055114, 1.1.sql -1830946249, 1.2__dropsFor_1.1.sql -744723875, 1.3.sql -201970227, 1.4__dropsFor_1.3.sql +402034887, 1.1.sql +-40882406, 1.2__dropsFor_1.1.sql +1285995142, 1.3.sql +-212925879, 1.4__dropsFor_1.3.sql 1906063401, R__order_views_hana.sql From 5fd7aca3d95e4d90440b32f4d4e615a4dc39a72f Mon Sep 17 00:00:00 2001 From: Roland Praml Date: Wed, 9 Mar 2022 16:17:04 +0100 Subject: [PATCH 067/114] Fixed test cases --- .../ddlgeneration/BaseDdlHandlerTest.java | 82 ++++++++++--------- .../platform/BaseTableDdlTest.java | 19 ++--- .../ddlgeneration/platform/HanaDdlTest.java | 5 +- .../platform/PlatformDdl_AlterColumnTest.java | 68 ++++++++------- .../assert/BaseDdlHandlerTest/baseApply.sql | 5 +- .../assert/BaseDdlHandlerTest/baseDropAll.sql | 1 + ...table.txt => drop-create-column-table.txt} | 4 + ...create-table.txt => drop-create-table.txt} | 4 + .../dbmigration/1.0__initial.sql | 2 +- .../dbmigration/1.2__dropsFor_1.1.sql | 6 +- 10 files changed, 107 insertions(+), 89 deletions(-) rename ebean-ddl-generator/src/test/resources/assert/{create-column-table.txt => drop-create-column-table.txt} (84%) rename ebean-ddl-generator/src/test/resources/assert/{create-table.txt => drop-create-table.txt} (83%) diff --git a/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/BaseDdlHandlerTest.java b/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/BaseDdlHandlerTest.java index ef1bd4081..b81b8d5d1 100644 --- a/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/BaseDdlHandlerTest.java +++ b/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/BaseDdlHandlerTest.java @@ -19,7 +19,7 @@ import static org.assertj.core.api.Assertions.assertThat; public class BaseDdlHandlerTest extends BaseTestCase { private static boolean useV1Syntax = Boolean.getBoolean("ebean.h2.useV1Syntax"); - + private final DatabaseConfig serverConfig = new DatabaseConfig(); private DdlHandler handler(DatabasePlatform platform) { @@ -47,15 +47,15 @@ public class BaseDdlHandlerTest extends BaseTestCase { DdlWrite writer = new DdlWrite(); h2Handler().generate(writer, Helper.getAddColumn()); - assertThat(writer.apply().getBuffer()).isEqualTo("alter table foo add column added_to_foo varchar(20);\n\n"); + assertThat(writer.toString()).isEqualTo("alter table foo add column added_to_foo varchar(20);\n"); writer = new DdlWrite(); sqlserverHandler().generate(writer, Helper.getAddColumn()); - assertThat(writer.apply().getBuffer()).isEqualTo("alter table foo add added_to_foo nvarchar(20);\n\n"); + assertThat(writer.toString()).isEqualTo("alter table foo add added_to_foo nvarchar(20);\n"); writer = new DdlWrite(); hanaHandler().generate(writer, Helper.getAddColumn()); - assertThat(writer.apply().getBuffer()).isEqualTo("alter table foo add ( added_to_foo nvarchar(20));\n\n"); + assertThat(writer.toString()).isEqualTo("alter table foo add (added_to_foo nvarchar(20));\n"); } @Test @@ -63,18 +63,17 @@ public class BaseDdlHandlerTest extends BaseTestCase { DdlWrite writer = new DdlWrite(); h2Handler().generate(writer, Helper.getAlterTableAddColumnWithCheckConstraint()); - assertThat(writer.apply().getBuffer()).isEqualTo("alter table foo add column status integer;\n" - + "alter table foo add constraint ck_ordering_status check ( status in (0,1));\n\n"); + assertThat(writer.toString()).isEqualTo("alter table foo add column status integer;\n" + + "alter table foo add constraint ck_ordering_status check ( status in (0,1));\n"); writer = new DdlWrite(); hanaHandler().generate(writer, Helper.getAlterTableAddColumnWithCheckConstraint()); - assertThat(writer.apply().getBuffer()).isEqualTo("alter table foo add ( status integer);\n" - + "alter table foo add constraint ck_ordering_status check ( status in (0,1));\n\n"); + assertThat(writer.toString()).isEqualTo("alter table foo add (status integer);\n" + + "alter table foo add constraint ck_ordering_status check ( status in (0,1));\n"); } /** - * Test the functionality of the Ebean {@literal @}DbArray extension during DDL - * generation. + * Test the functionality of the Ebean {@literal @}DbArray extension during DDL generation. */ @Test public void addColumn_dbarray() throws Exception { @@ -84,20 +83,20 @@ public class BaseDdlHandlerTest extends BaseTestCase { DdlHandler postgresHandler = postgresHandler(); postgresHandler.generate(writer, Helper.getAlterTableAddDbArrayColumn()); - assertThat(writer.apply().getBuffer()).isEqualTo("alter table foo add column dbarray_added_to_foo varchar[];\n\n"); + assertThat(writer.toString()).isEqualTo("alter table foo add column dbarray_added_to_foo varchar[];\n"); writer = new DdlWrite(); DdlHandler sqlserverHandler = sqlserverHandler(); sqlserverHandler.generate(writer, Helper.getAlterTableAddDbArrayColumn()); - assertThat(writer.apply().getBuffer()).isEqualTo("alter table foo add dbarray_added_to_foo varchar(1000);\n\n"); + assertThat(writer.toString()).isEqualTo("alter table foo add dbarray_added_to_foo varchar(1000);\n"); writer = new DdlWrite(); DdlHandler hanaHandler = hanaHandler(); hanaHandler.generate(writer, Helper.getAlterTableAddDbArrayColumn()); - assertThat(writer.apply().getBuffer()) - .isEqualTo("alter table foo add ( dbarray_added_to_foo nvarchar(255) array);\n\n"); + assertThat(writer.toString()) + .isEqualTo("alter table foo add (dbarray_added_to_foo nvarchar(255) array);\n"); } @Test @@ -106,24 +105,24 @@ public class BaseDdlHandlerTest extends BaseTestCase { DdlWrite writer = new DdlWrite(); postgresHandler().generate(writer, Helper.getAlterTableAddDbArrayColumnWithLength()); - assertThat(writer.apply().getBuffer()).isEqualTo("alter table foo add column dbarray_ninety varchar[];\n\n"); + assertThat(writer.toString()).isEqualTo("alter table foo add column dbarray_ninety varchar[];\n"); writer = new DdlWrite(); h2Handler().generate(writer, Helper.getAlterTableAddDbArrayColumnWithLength()); if (useV1Syntax) { - assertThat(writer.apply().getBuffer()).isEqualTo("alter table foo add column dbarray_ninety array;\n\n"); + assertThat(writer.toString()).isEqualTo("alter table foo add column dbarray_ninety array;\n"); } else { - assertThat(writer.apply().getBuffer()).isEqualTo("alter table foo add column dbarray_ninety varchar array;\n\n"); + assertThat(writer.toString()).isEqualTo("alter table foo add column dbarray_ninety varchar array;\n"); } writer = new DdlWrite(); sqlserverHandler().generate(writer, Helper.getAlterTableAddDbArrayColumnWithLength()); - assertThat(writer.apply().getBuffer()).isEqualTo("alter table foo add dbarray_ninety varchar(90);\n\n"); + assertThat(writer.toString()).isEqualTo("alter table foo add dbarray_ninety varchar(90);\n"); writer = new DdlWrite(); hanaHandler().generate(writer, Helper.getAlterTableAddDbArrayColumnWithLength()); - assertThat(writer.apply().getBuffer()) - .isEqualTo("alter table foo add ( dbarray_ninety nvarchar(255) array(90));\n\n"); + assertThat(writer.toString()) + .isEqualTo("alter table foo add (dbarray_ninety nvarchar(255) array(90));\n"); } @Test @@ -131,31 +130,31 @@ public class BaseDdlHandlerTest extends BaseTestCase { DdlWrite writer = new DdlWrite(); postgresHandler().generate(writer, Helper.getAlterTableAddDbArrayColumnIntegerWithLength()); - assertThat(writer.apply().getBuffer()).isEqualTo("alter table foo add column dbarray_integer integer[];\n\n"); + assertThat(writer.toString()).isEqualTo("alter table foo add column dbarray_integer integer[];\n"); writer = new DdlWrite(); h2Handler().generate(writer, Helper.getAlterTableAddDbArrayColumnIntegerWithLength()); if (useV1Syntax) { - assertThat(writer.apply().getBuffer()).isEqualTo("alter table foo add column dbarray_integer array;\n\n"); + assertThat(writer.toString()).isEqualTo("alter table foo add column dbarray_integer array;\n"); } else { - assertThat(writer.apply().getBuffer()).isEqualTo("alter table foo add column dbarray_integer integer array;\n\n"); + assertThat(writer.toString()).isEqualTo("alter table foo add column dbarray_integer integer array;\n"); } writer = new DdlWrite(); sqlserverHandler().generate(writer, Helper.getAlterTableAddDbArrayColumnIntegerWithLength()); - assertThat(writer.apply().getBuffer()).isEqualTo("alter table foo add dbarray_integer varchar(90);\n\n"); + assertThat(writer.toString()).isEqualTo("alter table foo add dbarray_integer varchar(90);\n"); writer = new DdlWrite(); sqlserverHandler().generate(writer, Helper.getAlterTableAddDbArrayColumnInteger()); - assertThat(writer.apply().getBuffer()).isEqualTo("alter table foo add dbarray_integer varchar(1000);\n\n"); + assertThat(writer.toString()).isEqualTo("alter table foo add dbarray_integer varchar(1000);\n"); writer = new DdlWrite(); hanaHandler().generate(writer, Helper.getAlterTableAddDbArrayColumnIntegerWithLength()); - assertThat(writer.apply().getBuffer()).isEqualTo("alter table foo add ( dbarray_integer integer array(90));\n\n"); + assertThat(writer.toString()).isEqualTo("alter table foo add (dbarray_integer integer array(90));\n"); writer = new DdlWrite(); hanaHandler().generate(writer, Helper.getAlterTableAddDbArrayColumnInteger()); - assertThat(writer.apply().getBuffer()).isEqualTo("alter table foo add ( dbarray_integer integer array);\n\n"); + assertThat(writer.toString()).isEqualTo("alter table foo add (dbarray_integer integer array);\n"); } @Test @@ -166,12 +165,12 @@ public class BaseDdlHandlerTest extends BaseTestCase { DdlHandler handler = h2Handler(); handler.generate(writer, Helper.getAlterTableAddColumn()); - String buffer = writer.apply().getBuffer(); + String buffer = writer.toString(); assertThat(buffer).contains("alter table foo add column some_id integer;"); String fkBuffer = writer.applyForeignKeys().getBuffer(); assertThat(fkBuffer).contains( - "alter table foo add constraint fk_foo_some_id foreign key (some_id) references bar (id) on delete restrict on update restrict;"); + "alter table foo add constraint fk_foo_some_id foreign key (some_id) references bar (id) on delete restrict on update restrict;"); assertThat(fkBuffer).contains("create index idx_foo_some_id on foo (some_id);"); assertThat(writer.dropAll().getBuffer()).isEqualTo(""); } @@ -184,7 +183,7 @@ public class BaseDdlHandlerTest extends BaseTestCase { handler.generate(writer, Helper.getDropColumn()); - assertThat(writer.apply().getBuffer()).isEqualTo("alter table foo drop column col2;\n\n"); + assertThat(writer.toString()).isEqualTo("alter table foo drop column col2;\n"); assertThat(writer.dropAll().getBuffer()).isEqualTo(""); writer = new DdlWrite(); @@ -192,7 +191,7 @@ public class BaseDdlHandlerTest extends BaseTestCase { hanaHandler.generate(writer, Helper.getDropColumn()); - assertThat(writer.apply().getBuffer()).isEqualTo("CALL usp_ebean_drop_column('foo', 'col2');\n\n"); + assertThat(writer.toString()).isEqualTo("CALL usp_ebean_drop_column('foo', 'col2');\n"); assertThat(writer.dropAll().getBuffer()).isEqualTo(""); } @@ -204,9 +203,9 @@ public class BaseDdlHandlerTest extends BaseTestCase { handler.generate(writer, Helper.getCreateTable()); - String createTableDDL = Helper.asText(this, "/assert/create-table.txt"); + String createTableDDL = Helper.asText(this, "/assert/drop-create-table.txt"); - assertThat(writer.apply().getBuffer()).isEqualTo(createTableDDL); + assertThat(writer.toString()).isEqualTo(createTableDDL); assertThat(writer.dropAll().getBuffer().trim()).isEqualTo("drop table if exists foo;"); writer = new DdlWrite(); @@ -214,9 +213,9 @@ public class BaseDdlHandlerTest extends BaseTestCase { hanaHandler.generate(writer, Helper.getCreateTable()); - String createColumnTableDDL = Helper.asText(this, "/assert/create-column-table.txt"); + String createColumnTableDDL = Helper.asText(this, "/assert/drop-create-column-table.txt"); - assertThat(writer.apply().getBuffer()).isEqualTo(createColumnTableDDL); + assertThat(writer.toString()).isEqualTo(createColumnTableDDL); assertThat(writer.dropAll().getBuffer().trim()).isEqualTo("drop table foo cascade;"); } @@ -230,9 +229,12 @@ public class BaseDdlHandlerTest extends BaseTestCase { String apply = Helper.asText(this, "/assert/BaseDdlHandlerTest/baseApply.sql"); String rollbackLast = Helper.asText(this, "/assert/BaseDdlHandlerTest/baseDropAll.sql"); - - assertThat(writer.apply().getBuffer()).isEqualTo(apply); - assertThat(writer.dropAll().getBuffer()).isEqualTo(rollbackLast); + StringBuilder sb = new StringBuilder(); + writer.writeApply(sb); + assertThat(sb.toString()).isEqualTo(apply); + sb = new StringBuilder(); + writer.writeDropAll(sb); + assertThat(sb.toString()).isEqualTo(rollbackLast); } @Disabled @@ -251,7 +253,7 @@ public class BaseDdlHandlerTest extends BaseTestCase { String apply = Helper.asText(this, "/assert/changeset-apply.txt"); String rollbackLast = Helper.asText(this, "/assert/changeset-dropAll.txt"); - assertThat(writer.apply().getBuffer()).isEqualTo(apply); + assertThat(writer.toString()).isEqualTo(apply); assertThat(writer.dropAll().getBuffer()).isEqualTo(rollbackLast); } @@ -272,7 +274,7 @@ public class BaseDdlHandlerTest extends BaseTestCase { String rollbackFirst = Helper.asText(this, "/assert/changeset-pg-rollbackFirst.sql"); String rollbackLast = Helper.asText(this, "/assert/changeset-pg-rollbackLast.sql"); - assertThat(writer.apply().getBuffer()).isEqualTo(apply); + assertThat(writer.toString()).isEqualTo(apply); assertThat(writer.applyForeignKeys().getBuffer()).isEqualTo(applyLast); assertThat(writer.dropAllForeignKeys().getBuffer()).isEqualTo(rollbackFirst); assertThat(writer.dropAll().getBuffer()).isEqualTo(rollbackLast); diff --git a/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/BaseTableDdlTest.java b/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/BaseTableDdlTest.java index 58e328a64..0c8f794b0 100644 --- a/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/BaseTableDdlTest.java +++ b/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/BaseTableDdlTest.java @@ -39,7 +39,7 @@ public class BaseTableDdlTest { ddlGen.generate(writer, alterColumn); - String ddl = writer.apply().getBuffer(); + String ddl = writer.toString(); assertThat(ddl).contains("alter table mytab drop constraint if exists ck_mytab_acol"); assertThat(ddl).contains("alter table mytab add constraint ck_mytab_acol check (acol in ('A','B'))"); } @@ -57,7 +57,7 @@ public class BaseTableDdlTest { ddlGen.alterTableAddColumn(writer, "mytable", column, false, false); - String ddl = writer.apply().getBuffer(); + String ddl = writer.toString(); assertThat(ddl).contains("alter table mytable add col_name varchar2(20)"); } @@ -74,7 +74,7 @@ public class BaseTableDdlTest { ddlGen.alterTableAddColumn(writer, "mytable", column, false, false); - String ddl = writer.apply().getBuffer(); + String ddl = writer.toString(); assertThat(ddl).contains("alter table mytable add column col_name String"); } @@ -92,7 +92,7 @@ public class BaseTableDdlTest { ddlGen.generate(writer, alterColumn); - String ddl = writer.apply().getBuffer(); + String ddl = writer.applyPostAlter().getBuffer(); assertThat(ddl).contains("comment on column mytab.acol is 'my comment'"); } @@ -106,10 +106,9 @@ public class BaseTableDdlTest { column.setType("int"); ddl.alterTableAddColumn(writer, "my_table", column, false, false); - assertEquals( - "alter table my_table add column my_column int;\n" + - "comment on column my_table.my_column is 'some comment';\n", - writer.apply().getBuffer()); + assertEquals("alter table my_table add column my_column int;\n" + + "comment on column my_table.my_column is 'some comment';\n", + writer.toString()); } @Test @@ -125,7 +124,7 @@ public class BaseTableDdlTest { ddlGen.generate(writer, addTableComment); - String ddl = writer.apply().getBuffer(); + String ddl = writer.applyPostAlter().getBuffer(); assertThat(ddl).contains("comment on table mytab is 'my comment'"); } @@ -142,7 +141,7 @@ public class BaseTableDdlTest { ddlGen.generate(writer, addTableComment); - String ddl = writer.apply().getBuffer(); + String ddl = writer.applyPostAlter().getBuffer(); assertThat(ddl).contains("alter table mytab comment = 'my comment'"); } diff --git a/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/HanaDdlTest.java b/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/HanaDdlTest.java index 4eb4e91f9..272428d28 100644 --- a/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/HanaDdlTest.java +++ b/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/HanaDdlTest.java @@ -14,7 +14,7 @@ public class HanaDdlTest { HanaColumnStoreDdl ddl = new HanaColumnStoreDdl(new HanaPlatform()); DdlWrite writer = new DdlWrite(); ddl.alterTableDropColumn(writer, "my_table", "my_column"); - assertEquals("CALL usp_ebean_drop_column('my_table', 'my_column');\n", writer.apply().getBuffer()); + assertEquals("CALL usp_ebean_drop_column('my_table', 'my_column');\n", writer.toString()); } @Test @@ -34,6 +34,7 @@ public class HanaDdlTest { column.setHistoryExclude(Boolean.TRUE); column.setIdentity(Boolean.TRUE); ddl.alterTableAddColumn(writer, "my_table", column, false, "1"); - assertEquals("alter table my_table add ( my_column int default 1 not null);\nalter table my_table add constraint check_constraint CHECK(my_column > 0);\n", writer.apply().getBuffer()); + assertEquals("alter table my_table add (my_column int default 1 not null);\nalter table my_table add constraint check_constraint CHECK(my_column > 0);\n", + writer.toString()); } } diff --git a/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformDdl_AlterColumnTest.java b/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformDdl_AlterColumnTest.java index 67a39f011..28109f0eb 100644 --- a/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformDdl_AlterColumnTest.java +++ b/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformDdl_AlterColumnTest.java @@ -106,7 +106,8 @@ public class PlatformDdl_AlterColumnTest { + "alter table mytab alter column acol set not null;\n"); sql = alterColumn(pgDdl, alter); - softly.assertThat(sql).isEqualTo("alter table mytab alter column acol type varchar(50) using acol::varchar(50);\n" + softly.assertThat(sql).isEqualTo("-- apply changes\n" + + "alter table mytab alter column acol type varchar(50) using acol::varchar(50);\n" + "alter table mytab alter column acol set default 'hi';\n" + "alter table mytab alter column acol set not null;\n"); @@ -116,15 +117,17 @@ public class PlatformDdl_AlterColumnTest { + "alter table mytab modify acol not null;\n"); sql = alterColumn(mysqlDdl, alter); - softly.assertThat(sql).isEqualTo("alter table mytab modify acol varchar(50) not null default 'hi';\n"); + softly.assertThat(sql).isEqualTo("-- apply changes\n" + + "alter table mytab modify acol varchar(50) not null default 'hi';\n"); sql = alterColumn(sqlServerDdl, alter); - softly.assertThat(sql).isEqualTo("EXEC usp_ebean_drop_default_constraint mytab, acol;\n" + softly.assertThat(sql).isEqualTo("-- apply changes\n" + + "EXEC usp_ebean_drop_default_constraint mytab, acol;\n" + "alter table mytab alter column acol nvarchar(50) not null;\n" + "alter table mytab add default 'hi' for acol;\n"); sql = alterColumn(hanaDdl, alter); - softly.assertThat(sql).isEqualTo("alter table mytab alter ( acol nvarchar(50) default 'hi' not null);\n"); + softly.assertThat(sql).isEqualTo("alter table mytab alter (acol nvarchar(50) default 'hi' not null);\n"); sql = alterColumn(db2Ddl, alter); softly.assertThat(sql).isEqualTo("alter table mytab alter column acol set data type varchar(50);\n" @@ -150,14 +153,16 @@ public class PlatformDdl_AlterColumnTest { + "alter table mytab modify acol null;\n"); sql = alterColumn(mysqlDdl, alter); - softly.assertThat(sql).isEqualTo("alter table mytab modify acol varchar(5);\n"); + softly.assertThat(sql).isEqualTo("-- apply changes\n" + + "alter table mytab modify acol varchar(5);\n"); sql = alterColumn(sqlServerDdl, alter); - softly.assertThat(sql).isEqualTo("EXEC usp_ebean_drop_default_constraint mytab, acol;\n" + softly.assertThat(sql).isEqualTo("-- apply changes\n" + + "EXEC usp_ebean_drop_default_constraint mytab, acol;\n" + "alter table mytab alter column acol nvarchar(5);\n"); sql = alterColumn(hanaDdl, alter); - softly.assertThat(sql).isEqualTo("alter table mytab alter ( acol nvarchar(5) default null);\n"); + softly.assertThat(sql).isEqualTo("alter table mytab alter (acol nvarchar(5) default null);\n"); sql = alterColumn(db2Ddl, alter); softly.assertThat(sql).isEqualTo("alter table mytab alter column acol drop default;\n" @@ -178,38 +183,38 @@ public class PlatformDdl_AlterColumnTest { softly.assertThat(sql).isEqualTo("alter table mytab alter column acol varchar(20);\n"); sql = alterColumn(pgDdl, alter); - softly.assertThat(sql).isEqualTo("alter table mytab alter column acol type varchar(20) using acol::varchar(20);\n"); + softly.assertThat(sql).isEqualTo("-- apply changes\nalter table mytab alter column acol type varchar(20) using acol::varchar(20);\n"); sql = alterColumn(oraDdl, alter); softly.assertThat(sql).isEqualTo("alter table mytab modify acol varchar2(20);\n"); sql = alterColumn(mysqlDdl, alter); - softly.assertThat(sql).isEqualTo("alter table mytab modify acol varchar(20);\n"); + softly.assertThat(sql).isEqualTo("-- apply changes\nalter table mytab modify acol varchar(20);\n"); sql = alterColumn(sqlServerDdl, alter); - softly.assertThat(sql).isEqualTo("alter table mytab alter column acol nvarchar(20);\n"); + softly.assertThat(sql).isEqualTo("-- apply changes\nalter table mytab alter column acol nvarchar(20);\n"); sql = alterColumn(hanaDdl, alter); - softly.assertThat(sql).isEqualTo("alter table mytab alter ( acol nvarchar(20));\n"); + softly.assertThat(sql).isEqualTo("alter table mytab alter (acol nvarchar(20));\n"); sql = alterColumn(db2Ddl, alter); softly.assertThat(sql).isEqualTo("alter table mytab alter column acol set data type varchar(20);\n"); alter.setType("bigint"); sql = alterColumn(pgDdl, alter); - softly.assertThat(sql).isEqualTo("alter table mytab alter column acol type bigint using acol::bigint;\n"); + softly.assertThat(sql).isEqualTo("-- apply changes\nalter table mytab alter column acol type bigint using acol::bigint;\n"); alter.setCurrentType("bigint"); alter.setType("integer"); sql = alterColumn(hanaDdl, alter); - softly.assertThat(sql).isEqualTo("alter table mytab alter ( acol decimal );\n" - + "alter table mytab alter ( acol integer);\n"); + softly.assertThat(sql).isEqualTo("alter table mytab alter (acol decimal);\n" + + "alter table mytab alter (acol integer);\n"); alter.setCurrentType("varchar(20)"); alter.setType("varchar(10)"); sql = alterColumn(hanaDdl, alter); - softly.assertThat(sql).isEqualTo("alter table mytab alter ( acol nclob);\n" - + "alter table mytab alter ( acol nvarchar(10));\n"); + softly.assertThat(sql).isEqualTo("alter table mytab alter (acol nclob);\n" + + "alter table mytab alter (acol nvarchar(10));\n"); } @@ -232,13 +237,15 @@ public class PlatformDdl_AlterColumnTest { softly.assertThat(sql).isEqualTo("alter table mytab modify acol not null;\n"); sql = alterColumn(mysqlDdl, alter); - softly.assertThat(sql).isEqualTo("alter table mytab modify acol varchar(20) not null;\n"); + softly.assertThat(sql).isEqualTo("-- apply changes\n" + + "alter table mytab modify acol varchar(20) not null;\n"); sql = alterColumn(sqlServerDdl, alter); - softly.assertThat(sql).isEqualTo("alter table mytab alter column acol nvarchar(20) not null;\n"); + softly.assertThat(sql).isEqualTo("-- apply changes\n" + + "alter table mytab alter column acol nvarchar(20) not null;\n"); sql = alterColumn(hanaDdl, alter); - softly.assertThat(sql).isEqualTo("alter table mytab alter ( acol nvarchar(20) not null);\n"); + softly.assertThat(sql).isEqualTo("alter table mytab alter (acol nvarchar(20) not null);\n"); sql = alterColumn(db2Ddl, alter); softly.assertThat(sql).isEqualTo("alter table mytab alter column acol set not null;\n"); @@ -266,15 +273,15 @@ public class PlatformDdl_AlterColumnTest { softly.assertThat(sql).isEqualTo("alter table mytab modify acol null;\n"); sql = alterColumn(mysqlDdl, alter); - softly.assertThat(sql).isEqualTo("alter table mytab modify acol varchar(20) default 'hi';\n"); + softly.assertThat(sql).isEqualTo("-- apply changes\nalter table mytab modify acol varchar(20) default 'hi';\n"); sql = alterColumn(sqlServerDdl, alter); - softly.assertThat(sql).isEqualTo("EXEC usp_ebean_drop_default_constraint mytab, acol;\n" + softly.assertThat(sql).isEqualTo("-- apply changes\nEXEC usp_ebean_drop_default_constraint mytab, acol;\n" + "alter table mytab alter column acol nvarchar(20);\n" + "alter table mytab add default 'hi' for acol;\n"); sql = alterColumn(hanaDdl, alter); - softly.assertThat(sql).isEqualTo("alter table mytab alter ( acol nvarchar(20) default 'hi');\n"); + softly.assertThat(sql).isEqualTo("alter table mytab alter (acol nvarchar(20) default 'hi');\n"); sql = alterColumn(db2Ddl, alter); softly.assertThat(sql).isEqualTo("alter table mytab alter column acol drop not null;\n"); @@ -302,11 +309,12 @@ public class PlatformDdl_AlterColumnTest { softly.assertThat(sql).isEqualTo("alter table mytab alter acol set default 'hi';\n"); sql = alterColumn(sqlServerDdl, alter); - softly.assertThat(sql).isEqualTo("EXEC usp_ebean_drop_default_constraint mytab, acol;\n" + softly.assertThat(sql).isEqualTo("-- apply changes\n" + + "EXEC usp_ebean_drop_default_constraint mytab, acol;\n" + "alter table mytab add default 'hi' for acol;\n"); sql = alterColumn(hanaDdl, alter); - softly.assertThat(sql).isEqualTo("alter table mytab alter ( acol nvarchar(20) default 'hi' not null);\n"); + softly.assertThat(sql).isEqualTo("alter table mytab alter (acol nvarchar(20) default 'hi' not null);\n"); sql = alterColumn(db2Ddl, alter); softly.assertThat(sql).isEqualTo("alter table mytab alter column acol set default 'hi';\n"); @@ -335,11 +343,11 @@ public class PlatformDdl_AlterColumnTest { softly.assertThat(sql).isEqualTo("alter table mytab alter acol set default 'hi';\n"); sql = alterColumn(sqlServerDdl, alter); - softly.assertThat(sql).isEqualTo("EXEC usp_ebean_drop_default_constraint mytab, acol;\n" + softly.assertThat(sql).isEqualTo("-- apply changes\nEXEC usp_ebean_drop_default_constraint mytab, acol;\n" + "alter table mytab add default 'hi' for acol;\n"); sql = alterColumn(hanaDdl, alter); - softly.assertThat(sql).isEqualTo("alter table mytab alter ( acol nvarchar(20) default 'hi' not null);\n"); + softly.assertThat(sql).isEqualTo("alter table mytab alter (acol nvarchar(20) default 'hi' not null);\n"); sql = alterColumn(db2Ddl, alter); softly.assertThat(sql).isEqualTo("alter table mytab alter column acol set default 'hi';\n"); @@ -369,10 +377,10 @@ public class PlatformDdl_AlterColumnTest { softly.assertThat(sql).isEqualTo("alter table mytab alter acol drop default;\n"); sql = alterColumn(sqlServerDdl, alter); - softly.assertThat(sql).isEqualTo("EXEC usp_ebean_drop_default_constraint mytab, acol;\n"); + softly.assertThat(sql).isEqualTo("-- apply changes\nEXEC usp_ebean_drop_default_constraint mytab, acol;\n"); sql = alterColumn(hanaDdl, alter); - softly.assertThat(sql).isEqualTo("alter table mytab alter ( acol nvarchar(20) default null not null);\n"); + softly.assertThat(sql).isEqualTo("alter table mytab alter (acol nvarchar(20) default null not null);\n"); sql = alterColumn(db2Ddl, alter); softly.assertThat(sql).isEqualTo("alter table mytab alter column acol drop default;\n"); @@ -383,7 +391,7 @@ public class PlatformDdl_AlterColumnTest { public void oracle_alterTableAddColumn() { DdlWrite writer = new DdlWrite(); oraDdl.alterTableAddColumn(writer, "my_table", simpleColumn(), false, "1"); - softly.assertThat(writer.apply().getBuffer()) + softly.assertThat(writer.toString()) .isEqualTo("alter table my_table add my_column int default 1 not null;\n"); } @@ -531,7 +539,7 @@ public class PlatformDdl_AlterColumnTest { private String alterColumn(PlatformDdl ddl, AlterColumn alterColumn) { DdlWrite write = new DdlWrite(); ddl.alterColumn(write, alterColumn); - return write.apply().getBuffer(); + return write.toString(); } private String alterFkey(PlatformDdl ddl, String onDelete, String onUpdate) { diff --git a/ebean-ddl-generator/src/test/resources/assert/BaseDdlHandlerTest/baseApply.sql b/ebean-ddl-generator/src/test/resources/assert/BaseDdlHandlerTest/baseApply.sql index 74f140511..1805e6683 100644 --- a/ebean-ddl-generator/src/test/resources/assert/BaseDdlHandlerTest/baseApply.sql +++ b/ebean-ddl-generator/src/test/resources/assert/BaseDdlHandlerTest/baseApply.sql @@ -1,3 +1,4 @@ +-- apply changes create table foo ( col1 varchar(4) generated by default as identity not null, col2 varchar(30) not null, @@ -6,7 +7,7 @@ create table foo ( ); comment on table foo is 'comment'; + + alter table foo add column added_to_foo varchar(20); - alter table foo drop column col2; - diff --git a/ebean-ddl-generator/src/test/resources/assert/BaseDdlHandlerTest/baseDropAll.sql b/ebean-ddl-generator/src/test/resources/assert/BaseDdlHandlerTest/baseDropAll.sql index cf3ebf022..170706608 100644 --- a/ebean-ddl-generator/src/test/resources/assert/BaseDdlHandlerTest/baseDropAll.sql +++ b/ebean-ddl-generator/src/test/resources/assert/BaseDdlHandlerTest/baseDropAll.sql @@ -1,2 +1,3 @@ +-- drop all drop table if exists foo; diff --git a/ebean-ddl-generator/src/test/resources/assert/create-column-table.txt b/ebean-ddl-generator/src/test/resources/assert/drop-create-column-table.txt similarity index 84% rename from ebean-ddl-generator/src/test/resources/assert/create-column-table.txt rename to ebean-ddl-generator/src/test/resources/assert/drop-create-column-table.txt index 879972680..b5b138663 100644 --- a/ebean-ddl-generator/src/test/resources/assert/create-column-table.txt +++ b/ebean-ddl-generator/src/test/resources/assert/drop-create-column-table.txt @@ -1,3 +1,7 @@ +-- drop all +drop table foo cascade; + +-- apply changes create column table foo ( col1 nvarchar(4) generated by default as identity not null, col2 nvarchar(30) not null, diff --git a/ebean-ddl-generator/src/test/resources/assert/create-table.txt b/ebean-ddl-generator/src/test/resources/assert/drop-create-table.txt similarity index 83% rename from ebean-ddl-generator/src/test/resources/assert/create-table.txt rename to ebean-ddl-generator/src/test/resources/assert/drop-create-table.txt index 3330f90e5..1b9b2ab87 100644 --- a/ebean-ddl-generator/src/test/resources/assert/create-table.txt +++ b/ebean-ddl-generator/src/test/resources/assert/drop-create-table.txt @@ -1,3 +1,7 @@ +-- drop all +drop table if exists foo; + +-- apply changes create table foo ( col1 varchar(4) generated by default as identity not null, col2 varchar(30) not null, diff --git a/ebean-test/src/test/resources/migrationtest-history/dbmigration/1.0__initial.sql b/ebean-test/src/test/resources/migrationtest-history/dbmigration/1.0__initial.sql index c2e2019a7..38ea03bb3 100644 --- a/ebean-test/src/test/resources/migrationtest-history/dbmigration/1.0__initial.sql +++ b/ebean-test/src/test/resources/migrationtest-history/dbmigration/1.0__initial.sql @@ -4,9 +4,9 @@ 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, diff --git a/ebean-test/src/test/resources/migrationtest-history/dbmigration/1.2__dropsFor_1.1.sql b/ebean-test/src/test/resources/migrationtest-history/dbmigration/1.2__dropsFor_1.1.sql index 692d93f76..b52760023 100644 --- a/ebean-test/src/test/resources/migrationtest-history/dbmigration/1.2__dropsFor_1.1.sql +++ b/ebean-test/src/test/resources/migrationtest-history/dbmigration/1.2__dropsFor_1.1.sql @@ -2,9 +2,7 @@ -- 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 +alter table migtest_e_history7 drop column sys_period_start; +alter table migtest_e_history7 drop column sys_period_end; From beed67567a55bfcf3dee7fa707df9fbed8e60b50 Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Thu, 10 Mar 2022 15:33:00 +1300 Subject: [PATCH 068/114] #2588 - [postgis-jdbc] Bump postgis-jdbc dependency from 2.2.1 to 2.5.1 --- ebean-postgis/pom.xml | 11 ++--------- .../java/io/ebean/postgis/ScalarTypePgisBase.java | 4 +++- 2 files changed, 5 insertions(+), 10 deletions(-) diff --git a/ebean-postgis/pom.xml b/ebean-postgis/pom.xml index 26ac20f9d..fa732d60e 100644 --- a/ebean-postgis/pom.xml +++ b/ebean-postgis/pom.xml @@ -14,7 +14,7 @@ ebean-postgis - 2.2.1 + 2.5.1 @@ -37,7 +37,7 @@ net.postgis postgis-jdbc - [${postgis.jdbc.version}] + ${postgis.jdbc.version} @@ -64,13 +64,6 @@ provided - - io.ebean - ebean-datasource - ${ebean-datasource.version} - test - - io.ebean ebean-test diff --git a/ebean-postgis/src/main/java/io/ebean/postgis/ScalarTypePgisBase.java b/ebean-postgis/src/main/java/io/ebean/postgis/ScalarTypePgisBase.java index 2b8463d0b..27bf5200b 100644 --- a/ebean-postgis/src/main/java/io/ebean/postgis/ScalarTypePgisBase.java +++ b/ebean-postgis/src/main/java/io/ebean/postgis/ScalarTypePgisBase.java @@ -7,8 +7,10 @@ import io.ebean.core.type.DataReader; import io.ebean.core.type.DocPropertyType; import io.ebean.core.type.ScalarType; import org.postgis.Geometry; +import org.postgis.GeometryBuilder; import org.postgis.PGgeometry; import org.postgis.PGgeometryLW; +import org.postgis.binary.BinaryParser; import org.postgresql.util.PGobject; import java.io.DataInput; @@ -51,7 +53,7 @@ abstract class ScalarTypePgisBase implements ScalarType { return (T) ((PGgeometry) object).getGeometry(); } else if (object instanceof PGobject) { - return (T) PGgeometry.geomFromString(((PGobject) object).getValue()); + return (T) GeometryBuilder.geomFromString(((PGobject) object).getValue(), new BinaryParser(), false); } else { throw new IllegalStateException("Could not convert from " + object.getClass() + " to " + cls); From 0d3649853a34acb8526b9ce778f2bd09efefdbdd Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Thu, 10 Mar 2022 15:33:33 +1300 Subject: [PATCH 069/114] Bump provided optional Jackson dependency to 2.13.2 --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 4ecd1aac1..0c3a1a707 100644 --- a/pom.xml +++ b/pom.xml @@ -39,7 +39,7 @@ false - 2.12.1 + 2.13.2 2.1.210 1.3 1.2 From febd56c9c0cd7850f72745431c6642c97e0b9144 Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Thu, 10 Mar 2022 16:19:11 +1300 Subject: [PATCH 070/114] #2581 - SoftDelete on @OneToMany is ignored after refresh() (since 12.11.5) --- .../server/core/DefaultBeanLoader.java | 2 +- .../tests/basic/lob/TestBasicClobNoVer.java | 22 ++++++++- .../tests/model/basic/EBasicClobNoVer.java | 15 ++++++ .../model/basic/EBasicClobNoVerChild.java | 49 +++++++++++++++++++ 4 files changed, 85 insertions(+), 3 deletions(-) create mode 100644 ebean-test/src/test/java/org/tests/model/basic/EBasicClobNoVerChild.java diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/core/DefaultBeanLoader.java b/ebean-core/src/main/java/io/ebeaninternal/server/core/DefaultBeanLoader.java index 9648c7037..bc03d253c 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/core/DefaultBeanLoader.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/core/DefaultBeanLoader.java @@ -199,7 +199,7 @@ final class DefaultBeanLoader { query.setLazyLoadProperty(ebi.getLazyLoadProperty()); if (draft) { query.asDraft(); - } else { + } else if (mode == SpiQuery.Mode.LAZYLOAD_BEAN) { query.setIncludeSoftDeletes(); } if (embeddedOwnerIndex > -1) { diff --git a/ebean-test/src/test/java/org/tests/basic/lob/TestBasicClobNoVer.java b/ebean-test/src/test/java/org/tests/basic/lob/TestBasicClobNoVer.java index 7289a7ac2..3123afc57 100644 --- a/ebean-test/src/test/java/org/tests/basic/lob/TestBasicClobNoVer.java +++ b/ebean-test/src/test/java/org/tests/basic/lob/TestBasicClobNoVer.java @@ -7,14 +7,15 @@ import io.ebean.test.LoggedSql; import org.junit.jupiter.api.Test; import org.tests.model.basic.EBasicClobNoVer; +import javax.xml.transform.sax.SAXSource; import java.util.List; import static org.assertj.core.api.Assertions.assertThat; -public class TestBasicClobNoVer extends BaseTestCase { +class TestBasicClobNoVer extends BaseTestCase { @Test - public void test() { + void test() { EBasicClobNoVer entity = new EBasicClobNoVer(); entity.setName("test"); @@ -65,4 +66,21 @@ public class TestBasicClobNoVer extends BaseTestCase { assertThat(entity.getDescription()).isEqualTo("modified"); } + @Test + void refresh_withSoftDelete() { + + EBasicClobNoVer bean = new EBasicClobNoVer(); + bean.setDescription("hello"); + DB.save(bean); + + DB.refresh(bean); + + LoggedSql.start(); + bean.children().forEach(System.out::println); + List sql = LoggedSql.stop(); + + assertThat(sql).hasSize(1); + assertThat(sql.get(0)).contains(" and t0.deleted ="); + } + } diff --git a/ebean-test/src/test/java/org/tests/model/basic/EBasicClobNoVer.java b/ebean-test/src/test/java/org/tests/model/basic/EBasicClobNoVer.java index 735ad796e..f946eb82b 100644 --- a/ebean-test/src/test/java/org/tests/model/basic/EBasicClobNoVer.java +++ b/ebean-test/src/test/java/org/tests/model/basic/EBasicClobNoVer.java @@ -3,6 +3,9 @@ package org.tests.model.basic; import javax.persistence.Entity; import javax.persistence.Id; import javax.persistence.Lob; +import javax.persistence.OneToMany; +import java.util.ArrayList; +import java.util.List; @Entity public class EBasicClobNoVer { @@ -18,6 +21,9 @@ public class EBasicClobNoVer { @Lob private String description; + @OneToMany + private List children = new ArrayList<>(); + public void setId(Long id) { this.id = id; } @@ -41,4 +47,13 @@ public class EBasicClobNoVer { public String getDescription() { return description; } + + public List children() { + return children; + } + + public EBasicClobNoVer children(List children) { + this.children = children; + return this; + } } diff --git a/ebean-test/src/test/java/org/tests/model/basic/EBasicClobNoVerChild.java b/ebean-test/src/test/java/org/tests/model/basic/EBasicClobNoVerChild.java new file mode 100644 index 000000000..8af997f69 --- /dev/null +++ b/ebean-test/src/test/java/org/tests/model/basic/EBasicClobNoVerChild.java @@ -0,0 +1,49 @@ +package org.tests.model.basic; + +import io.ebean.annotation.SoftDelete; + +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.ManyToOne; + +@Entity +public class EBasicClobNoVerChild { + + @Id + private Long id; + + @ManyToOne + private final EBasicClobNoVer parent; + + private final String child; + + @SoftDelete + private boolean deleted; + + public EBasicClobNoVerChild(EBasicClobNoVer parent, String child) { + this.parent = parent; + this.child = child; + } + + public Long id() { + return id; + } + + public EBasicClobNoVerChild id(Long id) { + this.id = id; + return this; + } + + public String child() { + return child; + } + + public boolean deleted() { + return deleted; + } + + public EBasicClobNoVerChild deleted(boolean deleted) { + this.deleted = deleted; + return this; + } +} From 04675ea76ba883b3c398a0066bb23f6ed8cfc2f3 Mon Sep 17 00:00:00 2001 From: Roland Praml Date: Thu, 10 Mar 2022 13:24:01 +0100 Subject: [PATCH 071/114] No effective DDL change, just added buffer comments in DDL --- .../ebeaninternal/dbmigration/ddlgeneration/DdlWrite.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/DdlWrite.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/DdlWrite.java index a0abf8350..463c05b48 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/DdlWrite.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/DdlWrite.java @@ -169,25 +169,27 @@ public class DdlWrite { target.append(apply.getBuffer()); } if (!applyAlterTables.isEmpty()) { - // target.append("-- apply alter tables\n"); maybe added later. Makes diff easier + target.append("-- apply alter tables\n"); for (DdlAlterTable alterTable : applyAlterTables.values()) { alterTable.write(target); } } if (!applyPostAlter.isEmpty()) { - // target.append("-- apply post alter\n"); maybe added later. + target.append("-- apply post alter\n"); target.append(applyPostAlter.getBuffer()); } if (!applyForeignKeys.isEmpty()) { - // target.append("-- foreign keys and indices\n"); maybe added later. + target.append("-- foreign keys and indices\n"); target.append(applyForeignKeys.getBuffer()); } if (!applyHistoryView.isEmpty()) { + target.append("-- apply history view\n"); target.append(applyHistoryView.getBuffer()); } if (!applyHistoryTrigger.isEmpty()) { + target.append("-- apply history trigger\n"); target.append(applyHistoryTrigger.getBuffer()); } } From f1b196cf2e02e049eeb7b05a570f16a4c88a48c9 Mon Sep 17 00:00:00 2001 From: Roland Praml Date: Thu, 10 Mar 2022 13:24:39 +0100 Subject: [PATCH 072/114] FIX: tests and pushed reference ddl scripts --- .../ddlgeneration/BaseDdlHandlerTest.java | 50 +++++------ .../platform/BaseTableDdlTest.java | 4 +- .../ddlgeneration/platform/HanaDdlTest.java | 5 +- .../platform/PlatformDdl_AlterColumnTest.java | 90 +++++++++---------- .../assert/BaseDdlHandlerTest/baseApply.sql | 1 + .../ModelBuild_compoundKeyTest/apply.sql | 1 + .../apply.sql | 1 + .../pg-apply.sql | 1 + .../dbmigration/1.0__initial.sql | 2 + .../dbmigration/1.2__dropsFor_1.1.sql | 1 + .../dbmigration/clickhouse/1.1.sql | 2 + .../clickhouse/1.2__dropsFor_1.1.sql | 2 + .../dbmigration/clickhouse/1.3.sql | 2 + .../clickhouse/1.4__dropsFor_1.3.sql | 2 + .../clickhouse/idx_clickhouse.migrations | 8 +- .../dbmigration/cockroach/1.0__initial.sql | 2 + .../dbmigration/cockroach/1.1.sql | 3 + .../cockroach/1.2__dropsFor_1.1.sql | 2 + .../dbmigration/cockroach/1.3.sql | 3 + .../cockroach/1.4__dropsFor_1.3.sql | 2 + .../cockroach/idx_cockroach.migrations | 10 +-- .../dbmigration/db2fori/1.0__initial.sql | 2 + .../migrationtest/dbmigration/db2fori/1.1.sql | 3 + .../dbmigration/db2fori/1.2__dropsFor_1.1.sql | 2 + .../migrationtest/dbmigration/db2fori/1.3.sql | 3 + .../dbmigration/db2fori/1.4__dropsFor_1.3.sql | 2 + .../dbmigration/db2fori/idx_db2.migrations | 10 +-- .../dbmigration/db2legacy/1.0__initial.sql | 2 + .../dbmigration/db2legacy/1.1.sql | 3 + .../db2legacy/1.2__dropsFor_1.1.sql | 2 + .../dbmigration/db2legacy/1.3.sql | 3 + .../db2legacy/1.4__dropsFor_1.3.sql | 2 + .../dbmigration/db2legacy/idx_db2.migrations | 10 +-- .../dbmigration/db2luw/1.0__initial.sql | 2 + .../migrationtest/dbmigration/db2luw/1.1.sql | 3 + .../dbmigration/db2luw/1.2__dropsFor_1.1.sql | 2 + .../migrationtest/dbmigration/db2luw/1.3.sql | 3 + .../dbmigration/db2luw/1.4__dropsFor_1.3.sql | 2 + .../dbmigration/db2luw/idx_db2.migrations | 10 +-- .../dbmigration/db2zos/1.0__initial.sql | 2 + .../migrationtest/dbmigration/db2zos/1.1.sql | 3 + .../dbmigration/db2zos/1.2__dropsFor_1.1.sql | 2 + .../migrationtest/dbmigration/db2zos/1.3.sql | 3 + .../dbmigration/db2zos/1.4__dropsFor_1.3.sql | 2 + .../dbmigration/db2zos/idx_db2.migrations | 10 +-- .../dbmigration/generic/1.0__initial.sql | 2 + .../migrationtest/dbmigration/generic/1.1.sql | 3 + .../dbmigration/generic/1.2__dropsFor_1.1.sql | 2 + .../migrationtest/dbmigration/generic/1.3.sql | 3 + .../dbmigration/generic/1.4__dropsFor_1.3.sql | 2 + .../generic/idx_generic.migrations | 10 +-- .../dbmigration/h2/1.0__initial.sql | 3 + .../migrationtest/dbmigration/h2/1.1.sql | 5 ++ .../dbmigration/h2/1.2__dropsFor_1.1.sql | 4 + .../migrationtest/dbmigration/h2/1.3.sql | 5 ++ .../dbmigration/h2/1.4__dropsFor_1.3.sql | 4 + .../dbmigration/h2/idx_h2.migrations | 10 +-- .../dbmigration/hana/1.0__initial.sql | 4 + .../migrationtest/dbmigration/hana/1.1.sql | 4 + .../dbmigration/hana/1.2__dropsFor_1.1.sql | 2 + .../migrationtest/dbmigration/hana/1.3.sql | 3 + .../dbmigration/hana/1.4__dropsFor_1.3.sql | 2 + .../dbmigration/hana/idx_hana.migrations | 10 +-- .../dbmigration/hsqldb/1.0__initial.sql | 2 + .../migrationtest/dbmigration/hsqldb/1.1.sql | 3 + .../dbmigration/hsqldb/1.2__dropsFor_1.1.sql | 2 + .../migrationtest/dbmigration/hsqldb/1.3.sql | 3 + .../dbmigration/hsqldb/1.4__dropsFor_1.3.sql | 2 + .../dbmigration/hsqldb/idx_hsqldb.migrations | 10 +-- .../mariadb-noprocs/1.0__initial.sql | 3 + .../dbmigration/mariadb-noprocs/1.1.sql | 5 ++ .../mariadb-noprocs/1.2__dropsFor_1.1.sql | 2 + .../dbmigration/mariadb-noprocs/1.3.sql | 4 + .../mariadb-noprocs/1.4__dropsFor_1.3.sql | 3 + .../mariadb-noprocs/idx_mariadb.migrations | 10 +-- .../dbmigration/mariadb/1.0__initial.sql | 3 + .../migrationtest/dbmigration/mariadb/1.1.sql | 5 ++ .../dbmigration/mariadb/1.2__dropsFor_1.1.sql | 1 + .../migrationtest/dbmigration/mariadb/1.3.sql | 4 + .../dbmigration/mariadb/1.4__dropsFor_1.3.sql | 2 + .../mariadb/idx_mariadb.migrations | 10 +-- .../dbmigration/mysql/1.0__initial.sql | 3 + .../migrationtest/dbmigration/mysql/1.1.sql | 5 ++ .../dbmigration/mysql/1.2__dropsFor_1.1.sql | 3 + .../migrationtest/dbmigration/mysql/1.3.sql | 5 ++ .../dbmigration/mysql/1.4__dropsFor_1.3.sql | 3 + .../dbmigration/mysql/idx_mysql.migrations | 10 +-- .../dbmigration/mysql55/1.0__initial.sql | 3 + .../migrationtest/dbmigration/mysql55/1.1.sql | 5 ++ .../dbmigration/mysql55/1.2__dropsFor_1.1.sql | 3 + .../migrationtest/dbmigration/mysql55/1.3.sql | 5 ++ .../dbmigration/mysql55/1.4__dropsFor_1.3.sql | 3 + .../dbmigration/mysql55/idx_mysql.migrations | 10 +-- .../dbmigration/nuodb/1.0__initial.sql | 3 + .../migrationtest/dbmigration/nuodb/1.1.sql | 5 ++ .../dbmigration/nuodb/1.2__dropsFor_1.1.sql | 4 + .../migrationtest/dbmigration/nuodb/1.3.sql | 5 ++ .../dbmigration/nuodb/1.4__dropsFor_1.3.sql | 4 + .../dbmigration/nuodb/idx_nuodb.migrations | 10 +-- .../dbmigration/oracle/1.0__initial.sql | 2 + .../migrationtest/dbmigration/oracle/1.1.sql | 3 + .../dbmigration/oracle/1.2__dropsFor_1.1.sql | 2 + .../migrationtest/dbmigration/oracle/1.3.sql | 3 + .../dbmigration/oracle/1.4__dropsFor_1.3.sql | 2 + .../dbmigration/oracle/idx_oracle.migrations | 10 +-- .../dbmigration/oracle11/1.0__initial.sql | 2 + .../dbmigration/oracle11/1.1.sql | 3 + .../oracle11/1.2__dropsFor_1.1.sql | 2 + .../dbmigration/oracle11/1.3.sql | 3 + .../oracle11/1.4__dropsFor_1.3.sql | 2 + .../oracle11/idx_oracle.migrations | 10 +-- .../dbmigration/postgres/1.0__initial.sql | 3 + .../dbmigration/postgres/1.1.sql | 5 ++ .../postgres/1.2__dropsFor_1.1.sql | 4 + .../dbmigration/postgres/1.3.sql | 5 ++ .../postgres/1.4__dropsFor_1.3.sql | 4 + .../postgres/idx_postgres.migrations | 10 +-- .../dbmigration/postgres9/1.0__initial.sql | 3 + .../dbmigration/postgres9/1.1.sql | 5 ++ .../postgres9/1.2__dropsFor_1.1.sql | 4 + .../dbmigration/postgres9/1.3.sql | 5 ++ .../postgres9/1.4__dropsFor_1.3.sql | 4 + .../postgres9/idx_postgres.migrations | 10 +-- .../dbmigration/sqlanywhere/1.0__initial.sql | 2 + .../dbmigration/sqlanywhere/1.1.sql | 3 + .../sqlanywhere/1.2__dropsFor_1.1.sql | 2 + .../dbmigration/sqlanywhere/1.3.sql | 3 + .../sqlanywhere/1.4__dropsFor_1.3.sql | 2 + .../sqlanywhere/idx_sqlanywhere.migrations | 10 +-- .../dbmigration/sqlite/1.0__initial.sql | 1 + .../migrationtest/dbmigration/sqlite/1.1.sql | 3 + .../dbmigration/sqlite/1.2__dropsFor_1.1.sql | 2 + .../migrationtest/dbmigration/sqlite/1.3.sql | 3 + .../dbmigration/sqlite/1.4__dropsFor_1.3.sql | 2 + .../dbmigration/sqlite/idx_sqlite.migrations | 10 +-- .../dbmigration/sqlserver16/1.0__initial.sql | 3 + .../dbmigration/sqlserver16/1.1.sql | 4 + .../sqlserver16/1.2__dropsFor_1.1.sql | 1 + .../dbmigration/sqlserver16/1.3.sql | 4 + .../sqlserver16/1.4__dropsFor_1.3.sql | 2 + .../sqlserver16/idx_sqlserver.migrations | 10 +-- .../dbmigration/sqlserver17/1.0__initial.sql | 3 + .../dbmigration/sqlserver17/1.1.sql | 4 + .../sqlserver17/1.2__dropsFor_1.1.sql | 1 + .../dbmigration/sqlserver17/1.3.sql | 4 + .../sqlserver17/1.4__dropsFor_1.3.sql | 2 + .../sqlserver17/idx_sqlserver.migrations | 10 +-- .../dbmigration/yugabyte/1.0__initial.sql | 3 + .../dbmigration/yugabyte/1.1.sql | 5 ++ .../yugabyte/1.2__dropsFor_1.1.sql | 4 + .../dbmigration/yugabyte/1.3.sql | 5 ++ .../yugabyte/1.4__dropsFor_1.3.sql | 4 + .../yugabyte/idx_yugabyte.migrations | 10 +-- 153 files changed, 558 insertions(+), 193 deletions(-) diff --git a/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/BaseDdlHandlerTest.java b/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/BaseDdlHandlerTest.java index b81b8d5d1..092bc75fa 100644 --- a/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/BaseDdlHandlerTest.java +++ b/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/BaseDdlHandlerTest.java @@ -47,15 +47,15 @@ public class BaseDdlHandlerTest extends BaseTestCase { DdlWrite writer = new DdlWrite(); h2Handler().generate(writer, Helper.getAddColumn()); - assertThat(writer.toString()).isEqualTo("alter table foo add column added_to_foo varchar(20);\n"); + assertThat(writer.toString()).isEqualTo("-- apply alter tables\nalter table foo add column added_to_foo varchar(20);\n"); writer = new DdlWrite(); sqlserverHandler().generate(writer, Helper.getAddColumn()); - assertThat(writer.toString()).isEqualTo("alter table foo add added_to_foo nvarchar(20);\n"); + assertThat(writer.toString()).isEqualTo("-- apply alter tables\nalter table foo add added_to_foo nvarchar(20);\n"); writer = new DdlWrite(); hanaHandler().generate(writer, Helper.getAddColumn()); - assertThat(writer.toString()).isEqualTo("alter table foo add (added_to_foo nvarchar(20));\n"); + assertThat(writer.toString()).isEqualTo("-- apply alter tables\nalter table foo add (added_to_foo nvarchar(20));\n"); } @Test @@ -63,13 +63,13 @@ public class BaseDdlHandlerTest extends BaseTestCase { DdlWrite writer = new DdlWrite(); h2Handler().generate(writer, Helper.getAlterTableAddColumnWithCheckConstraint()); - assertThat(writer.toString()).isEqualTo("alter table foo add column status integer;\n" - + "alter table foo add constraint ck_ordering_status check ( status in (0,1));\n"); + assertThat(writer.toString()).isEqualTo("-- apply alter tables\nalter table foo add column status integer;\n" + + "-- apply post alter\nalter table foo add constraint ck_ordering_status check ( status in (0,1));\n"); writer = new DdlWrite(); hanaHandler().generate(writer, Helper.getAlterTableAddColumnWithCheckConstraint()); - assertThat(writer.toString()).isEqualTo("alter table foo add (status integer);\n" - + "alter table foo add constraint ck_ordering_status check ( status in (0,1));\n"); + assertThat(writer.toString()).isEqualTo("-- apply alter tables\nalter table foo add (status integer);\n" + + "-- apply post alter\nalter table foo add constraint ck_ordering_status check ( status in (0,1));\n"); } /** @@ -83,20 +83,20 @@ public class BaseDdlHandlerTest extends BaseTestCase { DdlHandler postgresHandler = postgresHandler(); postgresHandler.generate(writer, Helper.getAlterTableAddDbArrayColumn()); - assertThat(writer.toString()).isEqualTo("alter table foo add column dbarray_added_to_foo varchar[];\n"); + assertThat(writer.toString()).isEqualTo("-- apply alter tables\nalter table foo add column dbarray_added_to_foo varchar[];\n"); writer = new DdlWrite(); DdlHandler sqlserverHandler = sqlserverHandler(); sqlserverHandler.generate(writer, Helper.getAlterTableAddDbArrayColumn()); - assertThat(writer.toString()).isEqualTo("alter table foo add dbarray_added_to_foo varchar(1000);\n"); + assertThat(writer.toString()).isEqualTo("-- apply alter tables\nalter table foo add dbarray_added_to_foo varchar(1000);\n"); writer = new DdlWrite(); DdlHandler hanaHandler = hanaHandler(); hanaHandler.generate(writer, Helper.getAlterTableAddDbArrayColumn()); assertThat(writer.toString()) - .isEqualTo("alter table foo add (dbarray_added_to_foo nvarchar(255) array);\n"); + .isEqualTo("-- apply alter tables\nalter table foo add (dbarray_added_to_foo nvarchar(255) array);\n"); } @Test @@ -105,24 +105,24 @@ public class BaseDdlHandlerTest extends BaseTestCase { DdlWrite writer = new DdlWrite(); postgresHandler().generate(writer, Helper.getAlterTableAddDbArrayColumnWithLength()); - assertThat(writer.toString()).isEqualTo("alter table foo add column dbarray_ninety varchar[];\n"); + assertThat(writer.toString()).isEqualTo("-- apply alter tables\nalter table foo add column dbarray_ninety varchar[];\n"); writer = new DdlWrite(); h2Handler().generate(writer, Helper.getAlterTableAddDbArrayColumnWithLength()); if (useV1Syntax) { - assertThat(writer.toString()).isEqualTo("alter table foo add column dbarray_ninety array;\n"); + assertThat(writer.toString()).isEqualTo("-- apply alter tables\nalter table foo add column dbarray_ninety array;\n"); } else { - assertThat(writer.toString()).isEqualTo("alter table foo add column dbarray_ninety varchar array;\n"); + assertThat(writer.toString()).isEqualTo("-- apply alter tables\nalter table foo add column dbarray_ninety varchar array;\n"); } writer = new DdlWrite(); sqlserverHandler().generate(writer, Helper.getAlterTableAddDbArrayColumnWithLength()); - assertThat(writer.toString()).isEqualTo("alter table foo add dbarray_ninety varchar(90);\n"); + assertThat(writer.toString()).isEqualTo("-- apply alter tables\nalter table foo add dbarray_ninety varchar(90);\n"); writer = new DdlWrite(); hanaHandler().generate(writer, Helper.getAlterTableAddDbArrayColumnWithLength()); assertThat(writer.toString()) - .isEqualTo("alter table foo add (dbarray_ninety nvarchar(255) array(90));\n"); + .isEqualTo("-- apply alter tables\nalter table foo add (dbarray_ninety nvarchar(255) array(90));\n"); } @Test @@ -130,31 +130,31 @@ public class BaseDdlHandlerTest extends BaseTestCase { DdlWrite writer = new DdlWrite(); postgresHandler().generate(writer, Helper.getAlterTableAddDbArrayColumnIntegerWithLength()); - assertThat(writer.toString()).isEqualTo("alter table foo add column dbarray_integer integer[];\n"); + assertThat(writer.toString()).isEqualTo("-- apply alter tables\nalter table foo add column dbarray_integer integer[];\n"); writer = new DdlWrite(); h2Handler().generate(writer, Helper.getAlterTableAddDbArrayColumnIntegerWithLength()); if (useV1Syntax) { - assertThat(writer.toString()).isEqualTo("alter table foo add column dbarray_integer array;\n"); + assertThat(writer.toString()).isEqualTo("-- apply alter tables\nalter table foo add column dbarray_integer array;\n"); } else { - assertThat(writer.toString()).isEqualTo("alter table foo add column dbarray_integer integer array;\n"); + assertThat(writer.toString()).isEqualTo("-- apply alter tables\nalter table foo add column dbarray_integer integer array;\n"); } writer = new DdlWrite(); sqlserverHandler().generate(writer, Helper.getAlterTableAddDbArrayColumnIntegerWithLength()); - assertThat(writer.toString()).isEqualTo("alter table foo add dbarray_integer varchar(90);\n"); + assertThat(writer.toString()).isEqualTo("-- apply alter tables\nalter table foo add dbarray_integer varchar(90);\n"); writer = new DdlWrite(); sqlserverHandler().generate(writer, Helper.getAlterTableAddDbArrayColumnInteger()); - assertThat(writer.toString()).isEqualTo("alter table foo add dbarray_integer varchar(1000);\n"); + assertThat(writer.toString()).isEqualTo("-- apply alter tables\nalter table foo add dbarray_integer varchar(1000);\n"); writer = new DdlWrite(); hanaHandler().generate(writer, Helper.getAlterTableAddDbArrayColumnIntegerWithLength()); - assertThat(writer.toString()).isEqualTo("alter table foo add (dbarray_integer integer array(90));\n"); + assertThat(writer.toString()).isEqualTo("-- apply alter tables\nalter table foo add (dbarray_integer integer array(90));\n"); writer = new DdlWrite(); hanaHandler().generate(writer, Helper.getAlterTableAddDbArrayColumnInteger()); - assertThat(writer.toString()).isEqualTo("alter table foo add (dbarray_integer integer array);\n"); + assertThat(writer.toString()).isEqualTo("-- apply alter tables\nalter table foo add (dbarray_integer integer array);\n"); } @Test @@ -166,7 +166,7 @@ public class BaseDdlHandlerTest extends BaseTestCase { handler.generate(writer, Helper.getAlterTableAddColumn()); String buffer = writer.toString(); - assertThat(buffer).contains("alter table foo add column some_id integer;"); + assertThat(buffer).contains("-- apply alter tables\nalter table foo add column some_id integer;"); String fkBuffer = writer.applyForeignKeys().getBuffer(); assertThat(fkBuffer).contains( @@ -183,7 +183,7 @@ public class BaseDdlHandlerTest extends BaseTestCase { handler.generate(writer, Helper.getDropColumn()); - assertThat(writer.toString()).isEqualTo("alter table foo drop column col2;\n"); + assertThat(writer.toString()).isEqualTo("-- apply alter tables\nalter table foo drop column col2;\n"); assertThat(writer.dropAll().getBuffer()).isEqualTo(""); writer = new DdlWrite(); @@ -191,7 +191,7 @@ public class BaseDdlHandlerTest extends BaseTestCase { hanaHandler.generate(writer, Helper.getDropColumn()); - assertThat(writer.toString()).isEqualTo("CALL usp_ebean_drop_column('foo', 'col2');\n"); + assertThat(writer.toString()).isEqualTo("-- apply alter tables\nCALL usp_ebean_drop_column('foo', 'col2');\n"); assertThat(writer.dropAll().getBuffer()).isEqualTo(""); } diff --git a/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/BaseTableDdlTest.java b/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/BaseTableDdlTest.java index 0c8f794b0..3f09718f6 100644 --- a/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/BaseTableDdlTest.java +++ b/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/BaseTableDdlTest.java @@ -106,8 +106,8 @@ public class BaseTableDdlTest { column.setType("int"); ddl.alterTableAddColumn(writer, "my_table", column, false, false); - assertEquals("alter table my_table add column my_column int;\n" - + "comment on column my_table.my_column is 'some comment';\n", + assertEquals("-- apply alter tables\nalter table my_table add column my_column int;\n" + + "-- apply post alter\ncomment on column my_table.my_column is 'some comment';\n", writer.toString()); } diff --git a/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/HanaDdlTest.java b/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/HanaDdlTest.java index 272428d28..17a904aca 100644 --- a/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/HanaDdlTest.java +++ b/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/HanaDdlTest.java @@ -14,7 +14,7 @@ public class HanaDdlTest { HanaColumnStoreDdl ddl = new HanaColumnStoreDdl(new HanaPlatform()); DdlWrite writer = new DdlWrite(); ddl.alterTableDropColumn(writer, "my_table", "my_column"); - assertEquals("CALL usp_ebean_drop_column('my_table', 'my_column');\n", writer.toString()); + assertEquals("-- apply alter tables\nCALL usp_ebean_drop_column('my_table', 'my_column');\n", writer.toString()); } @Test @@ -34,7 +34,8 @@ public class HanaDdlTest { column.setHistoryExclude(Boolean.TRUE); column.setIdentity(Boolean.TRUE); ddl.alterTableAddColumn(writer, "my_table", column, false, "1"); - assertEquals("alter table my_table add (my_column int default 1 not null);\nalter table my_table add constraint check_constraint CHECK(my_column > 0);\n", + assertEquals( + "-- apply alter tables\nalter table my_table add (my_column int default 1 not null);\n-- apply post alter\nalter table my_table add constraint check_constraint CHECK(my_column > 0);\n", writer.toString()); } } diff --git a/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformDdl_AlterColumnTest.java b/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformDdl_AlterColumnTest.java index 28109f0eb..93042bce0 100644 --- a/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformDdl_AlterColumnTest.java +++ b/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformDdl_AlterColumnTest.java @@ -101,18 +101,18 @@ public class PlatformDdl_AlterColumnTest { alter.setType("varchar(50)"); // and alter type String sql = alterColumn(h2Ddl, alter); - softly.assertThat(sql).isEqualTo("alter table mytab alter column acol varchar(50);\n" + softly.assertThat(sql).isEqualTo("-- apply alter tables\nalter table mytab alter column acol varchar(50);\n" + "alter table mytab alter column acol set default 'hi';\n" + "alter table mytab alter column acol set not null;\n"); sql = alterColumn(pgDdl, alter); softly.assertThat(sql).isEqualTo("-- apply changes\n" + "alter table mytab alter column acol type varchar(50) using acol::varchar(50);\n" - + "alter table mytab alter column acol set default 'hi';\n" + + "-- apply alter tables\nalter table mytab alter column acol set default 'hi';\n" + "alter table mytab alter column acol set not null;\n"); sql = alterColumn(oraDdl, alter); - softly.assertThat(sql).isEqualTo("alter table mytab modify acol varchar2(50);\n" + softly.assertThat(sql).isEqualTo("-- apply alter tables\nalter table mytab modify acol varchar2(50);\n" + "alter table mytab modify acol default 'hi';\n" + "alter table mytab modify acol not null;\n"); @@ -127,10 +127,10 @@ public class PlatformDdl_AlterColumnTest { + "alter table mytab add default 'hi' for acol;\n"); sql = alterColumn(hanaDdl, alter); - softly.assertThat(sql).isEqualTo("alter table mytab alter (acol nvarchar(50) default 'hi' not null);\n"); + softly.assertThat(sql).isEqualTo("-- apply alter tables\nalter table mytab alter (acol nvarchar(50) default 'hi' not null);\n"); sql = alterColumn(db2Ddl, alter); - softly.assertThat(sql).isEqualTo("alter table mytab alter column acol set data type varchar(50);\n" + softly.assertThat(sql).isEqualTo("-- apply alter tables\nalter table mytab alter column acol set data type varchar(50);\n" + "alter table mytab alter column acol set default 'hi';\n" + "alter table mytab alter column acol set not null;\n"); @@ -141,15 +141,15 @@ public class PlatformDdl_AlterColumnTest { alter.setType(null); // do not alter type sql = alterColumn(h2Ddl, alter); - softly.assertThat(sql).isEqualTo("alter table mytab alter column acol drop default;\n" + softly.assertThat(sql).isEqualTo("-- apply alter tables\nalter table mytab alter column acol drop default;\n" + "alter table mytab alter column acol set null;\n"); sql = alterColumn(pgDdl, alter); - softly.assertThat(sql).isEqualTo("alter table mytab alter column acol drop default;\n" + softly.assertThat(sql).isEqualTo("-- apply alter tables\nalter table mytab alter column acol drop default;\n" + "alter table mytab alter column acol drop not null;\n"); sql = alterColumn(oraDdl, alter); - softly.assertThat(sql).isEqualTo("alter table mytab modify acol default null;\n" + softly.assertThat(sql).isEqualTo("-- apply alter tables\nalter table mytab modify acol default null;\n" + "alter table mytab modify acol null;\n"); sql = alterColumn(mysqlDdl, alter); @@ -162,10 +162,10 @@ public class PlatformDdl_AlterColumnTest { + "alter table mytab alter column acol nvarchar(5);\n"); sql = alterColumn(hanaDdl, alter); - softly.assertThat(sql).isEqualTo("alter table mytab alter (acol nvarchar(5) default null);\n"); + softly.assertThat(sql).isEqualTo("-- apply alter tables\nalter table mytab alter (acol nvarchar(5) default null);\n"); sql = alterColumn(db2Ddl, alter); - softly.assertThat(sql).isEqualTo("alter table mytab alter column acol drop default;\n" + softly.assertThat(sql).isEqualTo("-- apply alter tables\nalter table mytab alter column acol drop default;\n" + "alter table mytab alter column acol drop not null;\n"); } @@ -180,13 +180,13 @@ public class PlatformDdl_AlterColumnTest { alter.setType("varchar(20)"); String sql = alterColumn(h2Ddl, alter); - softly.assertThat(sql).isEqualTo("alter table mytab alter column acol varchar(20);\n"); + softly.assertThat(sql).isEqualTo("-- apply alter tables\nalter table mytab alter column acol varchar(20);\n"); sql = alterColumn(pgDdl, alter); softly.assertThat(sql).isEqualTo("-- apply changes\nalter table mytab alter column acol type varchar(20) using acol::varchar(20);\n"); sql = alterColumn(oraDdl, alter); - softly.assertThat(sql).isEqualTo("alter table mytab modify acol varchar2(20);\n"); + softly.assertThat(sql).isEqualTo("-- apply alter tables\nalter table mytab modify acol varchar2(20);\n"); sql = alterColumn(mysqlDdl, alter); softly.assertThat(sql).isEqualTo("-- apply changes\nalter table mytab modify acol varchar(20);\n"); @@ -195,10 +195,10 @@ public class PlatformDdl_AlterColumnTest { softly.assertThat(sql).isEqualTo("-- apply changes\nalter table mytab alter column acol nvarchar(20);\n"); sql = alterColumn(hanaDdl, alter); - softly.assertThat(sql).isEqualTo("alter table mytab alter (acol nvarchar(20));\n"); + softly.assertThat(sql).isEqualTo("-- apply alter tables\nalter table mytab alter (acol nvarchar(20));\n"); sql = alterColumn(db2Ddl, alter); - softly.assertThat(sql).isEqualTo("alter table mytab alter column acol set data type varchar(20);\n"); + softly.assertThat(sql).isEqualTo("-- apply alter tables\nalter table mytab alter column acol set data type varchar(20);\n"); alter.setType("bigint"); sql = alterColumn(pgDdl, alter); @@ -207,13 +207,13 @@ public class PlatformDdl_AlterColumnTest { alter.setCurrentType("bigint"); alter.setType("integer"); sql = alterColumn(hanaDdl, alter); - softly.assertThat(sql).isEqualTo("alter table mytab alter (acol decimal);\n" + softly.assertThat(sql).isEqualTo("-- apply alter tables\nalter table mytab alter (acol decimal);\n" + "alter table mytab alter (acol integer);\n"); alter.setCurrentType("varchar(20)"); alter.setType("varchar(10)"); sql = alterColumn(hanaDdl, alter); - softly.assertThat(sql).isEqualTo("alter table mytab alter (acol nclob);\n" + softly.assertThat(sql).isEqualTo("-- apply alter tables\nalter table mytab alter (acol nclob);\n" + "alter table mytab alter (acol nvarchar(10));\n"); } @@ -228,13 +228,13 @@ public class PlatformDdl_AlterColumnTest { alter.setNotnull(Boolean.TRUE); String sql = alterColumn(h2Ddl, alter); - softly.assertThat(sql).isEqualTo("alter table mytab alter column acol set not null;\n"); + softly.assertThat(sql).isEqualTo("-- apply alter tables\nalter table mytab alter column acol set not null;\n"); sql = alterColumn(pgDdl, alter); - softly.assertThat(sql).isEqualTo("alter table mytab alter column acol set not null;\n"); + softly.assertThat(sql).isEqualTo("-- apply alter tables\nalter table mytab alter column acol set not null;\n"); sql = alterColumn(oraDdl, alter); - softly.assertThat(sql).isEqualTo("alter table mytab modify acol not null;\n"); + softly.assertThat(sql).isEqualTo("-- apply alter tables\nalter table mytab modify acol not null;\n"); sql = alterColumn(mysqlDdl, alter); softly.assertThat(sql).isEqualTo("-- apply changes\n" @@ -245,10 +245,10 @@ public class PlatformDdl_AlterColumnTest { + "alter table mytab alter column acol nvarchar(20) not null;\n"); sql = alterColumn(hanaDdl, alter); - softly.assertThat(sql).isEqualTo("alter table mytab alter (acol nvarchar(20) not null);\n"); + softly.assertThat(sql).isEqualTo("-- apply alter tables\nalter table mytab alter (acol nvarchar(20) not null);\n"); sql = alterColumn(db2Ddl, alter); - softly.assertThat(sql).isEqualTo("alter table mytab alter column acol set not null;\n"); + softly.assertThat(sql).isEqualTo("-- apply alter tables\nalter table mytab alter column acol set not null;\n"); } @@ -264,13 +264,13 @@ public class PlatformDdl_AlterColumnTest { alter.setNotnull(Boolean.FALSE); String sql = alterColumn(h2Ddl, alter); - softly.assertThat(sql).isEqualTo("alter table mytab alter column acol set null;\n"); + softly.assertThat(sql).isEqualTo("-- apply alter tables\nalter table mytab alter column acol set null;\n"); sql = alterColumn(pgDdl, alter); - softly.assertThat(sql).isEqualTo("alter table mytab alter column acol drop not null;\n"); + softly.assertThat(sql).isEqualTo("-- apply alter tables\nalter table mytab alter column acol drop not null;\n"); sql = alterColumn(oraDdl, alter); - softly.assertThat(sql).isEqualTo("alter table mytab modify acol null;\n"); + softly.assertThat(sql).isEqualTo("-- apply alter tables\nalter table mytab modify acol null;\n"); sql = alterColumn(mysqlDdl, alter); softly.assertThat(sql).isEqualTo("-- apply changes\nalter table mytab modify acol varchar(20) default 'hi';\n"); @@ -281,10 +281,10 @@ public class PlatformDdl_AlterColumnTest { + "alter table mytab add default 'hi' for acol;\n"); sql = alterColumn(hanaDdl, alter); - softly.assertThat(sql).isEqualTo("alter table mytab alter (acol nvarchar(20) default 'hi');\n"); + softly.assertThat(sql).isEqualTo("-- apply alter tables\nalter table mytab alter (acol nvarchar(20) default 'hi');\n"); sql = alterColumn(db2Ddl, alter); - softly.assertThat(sql).isEqualTo("alter table mytab alter column acol drop not null;\n"); + softly.assertThat(sql).isEqualTo("-- apply alter tables\nalter table mytab alter column acol drop not null;\n"); } @Test @@ -297,16 +297,16 @@ public class PlatformDdl_AlterColumnTest { alter.setDefaultValue("'hi'"); String sql = alterColumn(h2Ddl, alter); - softly.assertThat(sql).isEqualTo("alter table mytab alter column acol set default 'hi';\n"); + softly.assertThat(sql).isEqualTo("-- apply alter tables\nalter table mytab alter column acol set default 'hi';\n"); sql = alterColumn(pgDdl, alter); - softly.assertThat(sql).isEqualTo("alter table mytab alter column acol set default 'hi';\n"); + softly.assertThat(sql).isEqualTo("-- apply alter tables\nalter table mytab alter column acol set default 'hi';\n"); sql = alterColumn(oraDdl, alter); - softly.assertThat(sql).isEqualTo("alter table mytab modify acol default 'hi';\n"); + softly.assertThat(sql).isEqualTo("-- apply alter tables\nalter table mytab modify acol default 'hi';\n"); sql = alterColumn(mysqlDdl, alter); - softly.assertThat(sql).isEqualTo("alter table mytab alter acol set default 'hi';\n"); + softly.assertThat(sql).isEqualTo("-- apply alter tables\nalter table mytab alter acol set default 'hi';\n"); sql = alterColumn(sqlServerDdl, alter); softly.assertThat(sql).isEqualTo("-- apply changes\n" @@ -314,10 +314,10 @@ public class PlatformDdl_AlterColumnTest { + "alter table mytab add default 'hi' for acol;\n"); sql = alterColumn(hanaDdl, alter); - softly.assertThat(sql).isEqualTo("alter table mytab alter (acol nvarchar(20) default 'hi' not null);\n"); + softly.assertThat(sql).isEqualTo("-- apply alter tables\nalter table mytab alter (acol nvarchar(20) default 'hi' not null);\n"); sql = alterColumn(db2Ddl, alter); - softly.assertThat(sql).isEqualTo("alter table mytab alter column acol set default 'hi';\n"); + softly.assertThat(sql).isEqualTo("-- apply alter tables\nalter table mytab alter column acol set default 'hi';\n"); } @Test @@ -331,26 +331,26 @@ public class PlatformDdl_AlterColumnTest { alter.setDefaultValue("'hi'"); String sql = alterColumn(h2Ddl, alter); - softly.assertThat(sql).isEqualTo("alter table mytab alter column acol set default 'hi';\n"); + softly.assertThat(sql).isEqualTo("-- apply alter tables\nalter table mytab alter column acol set default 'hi';\n"); sql = alterColumn(pgDdl, alter); - softly.assertThat(sql).isEqualTo("alter table mytab alter column acol set default 'hi';\n"); + softly.assertThat(sql).isEqualTo("-- apply alter tables\nalter table mytab alter column acol set default 'hi';\n"); sql = alterColumn(oraDdl, alter); - softly.assertThat(sql).isEqualTo("alter table mytab modify acol default 'hi';\n"); + softly.assertThat(sql).isEqualTo("-- apply alter tables\nalter table mytab modify acol default 'hi';\n"); sql = alterColumn(mysqlDdl, alter); - softly.assertThat(sql).isEqualTo("alter table mytab alter acol set default 'hi';\n"); + softly.assertThat(sql).isEqualTo("-- apply alter tables\nalter table mytab alter acol set default 'hi';\n"); sql = alterColumn(sqlServerDdl, alter); softly.assertThat(sql).isEqualTo("-- apply changes\nEXEC usp_ebean_drop_default_constraint mytab, acol;\n" + "alter table mytab add default 'hi' for acol;\n"); sql = alterColumn(hanaDdl, alter); - softly.assertThat(sql).isEqualTo("alter table mytab alter (acol nvarchar(20) default 'hi' not null);\n"); + softly.assertThat(sql).isEqualTo("-- apply alter tables\nalter table mytab alter (acol nvarchar(20) default 'hi' not null);\n"); sql = alterColumn(db2Ddl, alter); - softly.assertThat(sql).isEqualTo("alter table mytab alter column acol set default 'hi';\n"); + softly.assertThat(sql).isEqualTo("-- apply alter tables\nalter table mytab alter column acol set default 'hi';\n"); } @Test @@ -365,25 +365,25 @@ public class PlatformDdl_AlterColumnTest { alter.setDefaultValue("DROP DEFAULT"); String sql = alterColumn(h2Ddl, alter); - softly.assertThat(sql).isEqualTo("alter table mytab alter column acol drop default;\n"); + softly.assertThat(sql).isEqualTo("-- apply alter tables\nalter table mytab alter column acol drop default;\n"); sql = alterColumn(pgDdl, alter); - softly.assertThat(sql).isEqualTo("alter table mytab alter column acol drop default;\n"); + softly.assertThat(sql).isEqualTo("-- apply alter tables\nalter table mytab alter column acol drop default;\n"); sql = alterColumn(oraDdl, alter); - softly.assertThat(sql).isEqualTo("alter table mytab modify acol default null;\n"); + softly.assertThat(sql).isEqualTo("-- apply alter tables\nalter table mytab modify acol default null;\n"); sql = alterColumn(mysqlDdl, alter); - softly.assertThat(sql).isEqualTo("alter table mytab alter acol drop default;\n"); + softly.assertThat(sql).isEqualTo("-- apply alter tables\nalter table mytab alter acol drop default;\n"); sql = alterColumn(sqlServerDdl, alter); softly.assertThat(sql).isEqualTo("-- apply changes\nEXEC usp_ebean_drop_default_constraint mytab, acol;\n"); sql = alterColumn(hanaDdl, alter); - softly.assertThat(sql).isEqualTo("alter table mytab alter (acol nvarchar(20) default null not null);\n"); + softly.assertThat(sql).isEqualTo("-- apply alter tables\nalter table mytab alter (acol nvarchar(20) default null not null);\n"); sql = alterColumn(db2Ddl, alter); - softly.assertThat(sql).isEqualTo("alter table mytab alter column acol drop default;\n"); + softly.assertThat(sql).isEqualTo("-- apply alter tables\nalter table mytab alter column acol drop default;\n"); } @@ -392,7 +392,7 @@ public class PlatformDdl_AlterColumnTest { DdlWrite writer = new DdlWrite(); oraDdl.alterTableAddColumn(writer, "my_table", simpleColumn(), false, "1"); softly.assertThat(writer.toString()) - .isEqualTo("alter table my_table add my_column int default 1 not null;\n"); + .isEqualTo("-- apply alter tables\nalter table my_table add my_column int default 1 not null;\n"); } private Column simpleColumn() { diff --git a/ebean-ddl-generator/src/test/resources/assert/BaseDdlHandlerTest/baseApply.sql b/ebean-ddl-generator/src/test/resources/assert/BaseDdlHandlerTest/baseApply.sql index 1805e6683..1513ea2b6 100644 --- a/ebean-ddl-generator/src/test/resources/assert/BaseDdlHandlerTest/baseApply.sql +++ b/ebean-ddl-generator/src/test/resources/assert/BaseDdlHandlerTest/baseApply.sql @@ -9,5 +9,6 @@ comment on table foo is 'comment'; +-- apply alter tables alter table foo add column added_to_foo varchar(20); alter table foo drop column col2; diff --git a/ebean-ddl-generator/src/test/resources/assert/ModelBuild_compoundKeyTest/apply.sql b/ebean-ddl-generator/src/test/resources/assert/ModelBuild_compoundKeyTest/apply.sql index 44283c3bf..96ded6d9b 100644 --- a/ebean-ddl-generator/src/test/resources/assert/ModelBuild_compoundKeyTest/apply.sql +++ b/ebean-ddl-generator/src/test/resources/assert/ModelBuild_compoundKeyTest/apply.sql @@ -21,6 +21,7 @@ create table ckey_parent ( constraint pk_ckey_parent primary key (one_key,two_key) ); +-- foreign keys and indices create index ix_ckey_detail_parent on ckey_detail (one_key,two_key); alter table ckey_detail add constraint fk_ckey_detail_parent foreign key (one_key,two_key) references ckey_parent (one_key,two_key) on delete restrict on update restrict; diff --git a/ebean-ddl-generator/src/test/resources/assert/ModelBuild_explicitSequencesTest/apply.sql b/ebean-ddl-generator/src/test/resources/assert/ModelBuild_explicitSequencesTest/apply.sql index c84e3c252..bc0f0635f 100644 --- a/ebean-ddl-generator/src/test/resources/assert/ModelBuild_explicitSequencesTest/apply.sql +++ b/ebean-ddl-generator/src/test/resources/assert/ModelBuild_explicitSequencesTest/apply.sql @@ -13,6 +13,7 @@ create table phones ( constraint pk_phones primary key (id) ); +-- foreign keys and indices create index ix_phones_person_id on phones (person_id); alter table phones add constraint fk_phones_person_id foreign key (person_id) references persons (id) on delete restrict on update restrict; diff --git a/ebean-ddl-generator/src/test/resources/assert/ModelBuild_explicitSequencesTest/pg-apply.sql b/ebean-ddl-generator/src/test/resources/assert/ModelBuild_explicitSequencesTest/pg-apply.sql index e866a1f4b..e0063a84e 100644 --- a/ebean-ddl-generator/src/test/resources/assert/ModelBuild_explicitSequencesTest/pg-apply.sql +++ b/ebean-ddl-generator/src/test/resources/assert/ModelBuild_explicitSequencesTest/pg-apply.sql @@ -13,6 +13,7 @@ create table phones ( constraint pk_phones primary key (id) ); +-- foreign keys and indices create index ix_phones_person_id on phones (person_id); alter table phones add constraint fk_phones_person_id foreign key (person_id) references persons (id) on delete restrict on update restrict not valid; diff --git a/ebean-test/src/test/resources/migrationtest-history/dbmigration/1.0__initial.sql b/ebean-test/src/test/resources/migrationtest-history/dbmigration/1.0__initial.sql index 38ea03bb3..0d622f63b 100644 --- a/ebean-test/src/test/resources/migrationtest-history/dbmigration/1.0__initial.sql +++ b/ebean-test/src/test/resources/migrationtest-history/dbmigration/1.0__initial.sql @@ -7,6 +7,7 @@ create table migtest_e_history7 ( alter table migtest_e_history7 add column sys_period_start timestamp default now(); alter table migtest_e_history7 add column sys_period_end timestamp; +-- apply post alter create table migtest_e_history7_history( id integer, sys_period_start timestamp, @@ -14,4 +15,5 @@ create table migtest_e_history7_history( ); create view migtest_e_history7_with_history as select * from migtest_e_history7 union all select * from migtest_e_history7_history; +-- apply history trigger 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/migrationtest-history/dbmigration/1.2__dropsFor_1.1.sql b/ebean-test/src/test/resources/migrationtest-history/dbmigration/1.2__dropsFor_1.1.sql index b52760023..e335d7576 100644 --- a/ebean-test/src/test/resources/migrationtest-history/dbmigration/1.2__dropsFor_1.1.sql +++ b/ebean-test/src/test/resources/migrationtest-history/dbmigration/1.2__dropsFor_1.1.sql @@ -4,5 +4,6 @@ drop trigger migtest_e_history7_history_upd; drop view migtest_e_history7_with_history; drop table migtest_e_history7_history; +-- apply alter tables alter table migtest_e_history7 drop column sys_period_start; alter table migtest_e_history7 drop column sys_period_end; 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 032c92d9f..b64384f89 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 @@ -44,6 +44,7 @@ update migtest_e_history2 set test_string = 'unknown' where test_string is null; update migtest_e_history6 set test_number1 = 42 where test_number1 is null; +-- apply alter tables 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; @@ -71,6 +72,7 @@ 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; +-- apply post alter alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I','?')); alter table migtest_e_basic add constraint uq_migtest_e_basic_description unique (description); -- NOTE: table has @History - special migration may be necessary 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 index 219f0c1c5..4ec79a34c 100644 --- 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 @@ -1,8 +1,10 @@ -- Migrationscripts for ebean unittest +-- apply alter tables alter table migtest_e_basic drop column description_file; 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; +-- apply post alter 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 index 79da8548d..98277088c 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/clickhouse/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/clickhouse/1.3.sql @@ -23,6 +23,7 @@ update migtest_e_basic set user_id = 23 where user_id is null; -- NOTE: table has @History - special migration may be necessary update migtest_e_history6 set test_number2 = 7 where test_number2 is null; +-- apply alter tables 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 alter column status2 String; @@ -43,6 +44,7 @@ alter table migtest_e_history6 alter column test_number1 drop default; alter table migtest_e_history6 alter column test_number1 set 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; +-- apply post alter alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I')); alter table migtest_e_basic add constraint ck_migtest_e_basic_status2 check ( status2 in ('N','A','I')); alter table migtest_e_basic add constraint uq_migtest_e_basic_indextest2 unique (indextest2); 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 033f0a5a2..b4087d6d6 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 @@ -1,4 +1,5 @@ -- Migrationscripts for ebean unittest +-- apply alter tables 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; @@ -13,6 +14,7 @@ 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; +-- apply post alter 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 index d3b643f3d..86feb1c0a 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 @@ -697238714, 1.0__initial.sql --1730180752, 1.1.sql --155876508, 1.2__dropsFor_1.1.sql -1059765262, 1.3.sql -767202122, 1.4__dropsFor_1.3.sql +-1523257380, 1.1.sql +1279151426, 1.2__dropsFor_1.1.sql +14388492, 1.3.sql +80209848, 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 index c4788bf9a..d114fcfb6 100644 --- 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 @@ -162,8 +162,10 @@ create table migtest_oto_master ( constraint pk_migtest_oto_master primary key (id) ); +-- apply post alter create index ix_migtest_e_basic_indextest1 on migtest_e_basic (indextest1); create index ix_migtest_e_basic_indextest5 on migtest_e_basic (indextest5); +-- foreign keys and indices 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; 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 91f885e05..ece294d59 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 @@ -51,6 +51,7 @@ update migtest_e_history2 set test_string = 'unknown' where test_string is null; update migtest_e_history6 set test_number1 = 42 where test_number1 is null; +-- apply alter tables 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; @@ -78,6 +79,7 @@ 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; +-- apply post alter alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I','?')); alter table migtest_e_basic add constraint uq_migtest_e_basic_description unique (description); -- NOTE: table has @History - special migration may be necessary @@ -90,6 +92,7 @@ alter table migtest_e_basic add constraint uq_migtest_e_basic_indextest4 unique alter table migtest_e_basic add constraint uq_migtest_e_basic_indextest5 unique (indextest5); create index ix_migtest_e_basic_indextest3 on migtest_e_basic (indextest3); create index ix_migtest_e_basic_indextest6 on migtest_e_basic (indextest6); +-- foreign keys and indices 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; 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 index 10f33e294..1014909e1 100644 --- 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 @@ -1,10 +1,12 @@ -- Migrationscripts for ebean unittest -- apply changes drop sequence if exists migtest_e_ref_seq; +-- apply alter tables alter table migtest_e_basic drop column description_file; 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; +-- apply post alter drop table if exists migtest_e_ref cascade; 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 index f0f005c1f..7c0c0630c 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/cockroach/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/cockroach/1.3.sql @@ -33,6 +33,7 @@ update migtest_e_basic set user_id = 23 where user_id is null; -- NOTE: table has @History - special migration may be necessary update migtest_e_history6 set test_number2 = 7 where test_number2 is null; +-- apply alter tables 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 alter column status2 type varchar(1); @@ -53,6 +54,7 @@ alter table migtest_e_history6 alter column test_number1 drop default; alter table migtest_e_history6 alter column test_number1 drop not 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; +-- apply post alter alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I')); alter table migtest_e_basic add constraint ck_migtest_e_basic_status2 check ( status2 in ('N','A','I')); alter table migtest_e_basic add constraint uq_migtest_e_basic_indextest2 unique (indextest2); @@ -60,6 +62,7 @@ alter table migtest_e_basic add constraint uq_migtest_e_basic_indextest6 unique alter table migtest_e_enum add constraint ck_migtest_e_enum_test_status check ( test_status in ('N','A','I')); create index ix_migtest_e_basic_indextest1 on migtest_e_basic (indextest1); create index ix_migtest_e_basic_indextest5 on migtest_e_basic (indextest5); +-- foreign keys and indices 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_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); 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 58c3531c6..c84a63353 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 @@ -1,6 +1,7 @@ -- Migrationscripts for ebean unittest -- apply changes drop sequence if exists migtest_e_user_seq; +-- apply alter tables 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; @@ -15,6 +16,7 @@ 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; +-- apply post alter drop table if exists migtest_e_user cascade; 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/idx_cockroach.migrations b/ebean-test/src/test/resources/migrationtest/dbmigration/cockroach/idx_cockroach.migrations index 126d21dc2..c602c4da1 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 @@ --1611775717, 1.0__initial.sql --1338613903, 1.1.sql --1958981572, 1.2__dropsFor_1.1.sql -1074808242, 1.3.sql -546721540, 1.4__dropsFor_1.3.sql +1878005982, 1.0__initial.sql +-1761478813, 1.1.sql +28732175, 1.2__dropsFor_1.1.sql +1618620048, 1.3.sql +1999778259, 1.4__dropsFor_1.3.sql 561281075, R__order_views.sql 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 index bc5ff797e..a7eab8f65 100644 --- 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 @@ -159,11 +159,13 @@ create table migtest_oto_master ( constraint pk_migtest_oto_master primary key (id) ); +-- apply post alter 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_ref add constraint uq_migtest_e_ref_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); +-- foreign keys and indices 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; 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 index dda555e4b..f54e7696c 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/db2fori/1.1.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2fori/1.1.sql @@ -52,6 +52,7 @@ update migtest_e_history2 set test_string = 'unknown' where test_string is null; update migtest_e_history6 set test_number1 = 42 where test_number1 is null; +-- apply alter tables 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; @@ -79,6 +80,7 @@ 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; +-- apply post alter alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I','?')); create unique index uq_migtest_e_basic_description on migtest_e_basic(description) exclude null keys; -- NOTE: table has @History - special migration may be necessary @@ -93,6 +95,7 @@ comment on column migtest_e_history.test_string is 'Column altered to long now'; comment on table migtest_e_history is 'We have history now'; create index ix_migtest_e_basic_indextest3 on migtest_e_basic (indextest3); create index ix_migtest_e_basic_indextest6 on migtest_e_basic (indextest6); +-- foreign keys and indices 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; diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/db2fori/1.2__dropsFor_1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/db2fori/1.2__dropsFor_1.1.sql index 248e4eb1d..8830fb501 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/db2fori/1.2__dropsFor_1.1.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2fori/1.2__dropsFor_1.1.sql @@ -1,10 +1,12 @@ -- Migrationscripts for ebean unittest -- apply changes drop sequence migtest_e_ref_seq; +-- apply alter tables alter table migtest_e_basic drop column description_file; 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; +-- apply post alter drop table migtest_e_ref; 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 index e70e9c4fe..4a6495765 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/db2fori/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2fori/1.3.sql @@ -32,6 +32,7 @@ update migtest_e_basic set user_id = 23 where user_id is null; -- NOTE: table has @History - special migration may be necessary update migtest_e_history6 set test_number2 = 7 where test_number2 is null; +-- apply alter tables 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 alter column status2 set data type varchar(1); @@ -52,6 +53,7 @@ alter table migtest_e_history6 alter column test_number1 drop default; alter table migtest_e_history6 alter column test_number1 drop not 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; +-- apply post alter alter table migtest_e_ref add constraint uq_migtest_e_ref_name unique (name); alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I')); alter table migtest_e_basic add constraint ck_migtest_e_basic_status2 check ( status2 in ('N','A','I')); @@ -62,6 +64,7 @@ comment on column migtest_e_history.test_string is ''; comment on table migtest_e_history is ''; create index ix_migtest_e_basic_indextest1 on migtest_e_basic (indextest1); create index ix_migtest_e_basic_indextest5 on migtest_e_basic (indextest5); +-- foreign keys and indices 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_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); diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/db2fori/1.4__dropsFor_1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/db2fori/1.4__dropsFor_1.3.sql index 9c502bad5..60a4a5766 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/db2fori/1.4__dropsFor_1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2fori/1.4__dropsFor_1.3.sql @@ -1,6 +1,7 @@ -- Migrationscripts for ebean unittest -- apply changes drop sequence migtest_e_user_seq; +-- apply alter tables 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; @@ -15,6 +16,7 @@ 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; +-- apply post alter drop table migtest_e_user; 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/db2fori/idx_db2.migrations b/ebean-test/src/test/resources/migrationtest/dbmigration/db2fori/idx_db2.migrations index 93127463e..c2b1bd03e 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/db2fori/idx_db2.migrations +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2fori/idx_db2.migrations @@ -1,7 +1,7 @@ --2143374692, 1.0__initial.sql -871483623, 1.1.sql --812302674, 1.2__dropsFor_1.1.sql --628362807, 1.3.sql --915919511, 1.4__dropsFor_1.3.sql +579518381, 1.0__initial.sql +6421452, 1.1.sql +1337198247, 1.2__dropsFor_1.1.sql +-1403790229, 1.3.sql +-1778697851, 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 index 9023b5a61..2467d628e 100644 --- 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 @@ -159,11 +159,13 @@ create table migtest_oto_master ( constraint pk_migtest_oto_master primary key (id) ); +-- apply post alter 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_ref add constraint uq_mgtst__rf_nm unique (name); create index ix_mgtst__b_eu8csq on migtest_e_basic (indextest1); create index ix_mgtst__b_eu8csu on migtest_e_basic (indextest5); +-- foreign keys and indices 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; 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 index 0cef0468a..d682d60a1 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/db2legacy/1.1.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2legacy/1.1.sql @@ -52,6 +52,7 @@ update migtest_e_history2 set test_string = 'unknown' where test_string is null; update migtest_e_history6 set test_number1 = 42 where test_number1 is null; +-- apply alter tables 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; @@ -79,6 +80,7 @@ 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; +-- apply post alter alter table migtest_e_basic add constraint ck_mgtst__bsc_stts check ( status in ('N','A','I','?')); create unique index uq_migtest_e_basic_description on migtest_e_basic(description) exclude null keys; -- NOTE: table has @History - special migration may be necessary @@ -93,6 +95,7 @@ comment on column migtest_e_history.test_string is 'Column altered to long now'; comment on table migtest_e_history is 'We have history now'; create index ix_mgtst__b_eu8css on migtest_e_basic (indextest3); create index ix_mgtst__b_eu8csv on migtest_e_basic (indextest6); +-- foreign keys and indices 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; 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 index 248e4eb1d..8830fb501 100644 --- 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 @@ -1,10 +1,12 @@ -- Migrationscripts for ebean unittest -- apply changes drop sequence migtest_e_ref_seq; +-- apply alter tables alter table migtest_e_basic drop column description_file; 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; +-- apply post alter drop table migtest_e_ref; 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 index 95cab2ab2..181e31aab 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/db2legacy/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2legacy/1.3.sql @@ -32,6 +32,7 @@ update migtest_e_basic set user_id = 23 where user_id is null; -- NOTE: table has @History - special migration may be necessary update migtest_e_history6 set test_number2 = 7 where test_number2 is null; +-- apply alter tables 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 alter column status2 set data type varchar(1); @@ -52,6 +53,7 @@ alter table migtest_e_history6 alter column test_number1 drop default; alter table migtest_e_history6 alter column test_number1 drop not 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; +-- apply post alter alter table migtest_e_ref add constraint uq_mgtst__rf_nm unique (name); alter table migtest_e_basic add constraint ck_mgtst__bsc_stts check ( status in ('N','A','I')); alter table migtest_e_basic add constraint ck_mgtst__b_z543fg check ( status2 in ('N','A','I')); @@ -62,6 +64,7 @@ comment on column migtest_e_history.test_string is ''; comment on table migtest_e_history is ''; create index ix_mgtst__b_eu8csq on migtest_e_basic (indextest1); create index ix_mgtst__b_eu8csu on migtest_e_basic (indextest5); +-- foreign keys and indices 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_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); 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 index 9c502bad5..60a4a5766 100644 --- 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 @@ -1,6 +1,7 @@ -- Migrationscripts for ebean unittest -- apply changes drop sequence migtest_e_user_seq; +-- apply alter tables 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; @@ -15,6 +16,7 @@ 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; +-- apply post alter drop table migtest_e_user; 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/db2legacy/idx_db2.migrations b/ebean-test/src/test/resources/migrationtest/dbmigration/db2legacy/idx_db2.migrations index 9c2586f1a..80170d60d 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/db2legacy/idx_db2.migrations +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2legacy/idx_db2.migrations @@ -1,7 +1,7 @@ -1284033584, 1.0__initial.sql -421195742, 1.1.sql --812302674, 1.2__dropsFor_1.1.sql --1132737052, 1.3.sql --915919511, 1.4__dropsFor_1.3.sql +-1323401755, 1.0__initial.sql +-1188471856, 1.1.sql +1337198247, 1.2__dropsFor_1.1.sql +-1336058490, 1.3.sql +-1778697851, 1.4__dropsFor_1.3.sql 561281075, R__order_views.sql diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/db2luw/1.0__initial.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/db2luw/1.0__initial.sql index 09c308846..59f21111c 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/db2luw/1.0__initial.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2luw/1.0__initial.sql @@ -159,11 +159,13 @@ create table migtest_oto_master ( constraint pk_migtest_oto_master primary key (id) ); +-- apply post alter 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_ref add constraint uq_migtest_e_ref_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); +-- foreign keys and indices 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; diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/db2luw/1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/db2luw/1.1.sql index 6fcb022f4..c17747fe9 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/db2luw/1.1.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2luw/1.1.sql @@ -52,6 +52,7 @@ update migtest_e_history2 set test_string = 'unknown' where test_string is null; update migtest_e_history6 set test_number1 = 42 where test_number1 is null; +-- apply alter tables 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; @@ -79,6 +80,7 @@ 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; +-- apply post alter alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I','?')); create unique index uq_migtest_e_basic_description on migtest_e_basic(description) exclude null keys; -- NOTE: table has @History - special migration may be necessary @@ -93,6 +95,7 @@ comment on column migtest_e_history.test_string is 'Column altered to long now'; comment on table migtest_e_history is 'We have history now'; create index ix_migtest_e_basic_indextest3 on migtest_e_basic (indextest3); create index ix_migtest_e_basic_indextest6 on migtest_e_basic (indextest6); +-- foreign keys and indices 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; 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 index 248e4eb1d..8830fb501 100644 --- 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 @@ -1,10 +1,12 @@ -- Migrationscripts for ebean unittest -- apply changes drop sequence migtest_e_ref_seq; +-- apply alter tables alter table migtest_e_basic drop column description_file; 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; +-- apply post alter drop table migtest_e_ref; diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/db2luw/1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/db2luw/1.3.sql index 4895ff052..5f1ca5a3c 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/db2luw/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2luw/1.3.sql @@ -32,6 +32,7 @@ update migtest_e_basic set user_id = 23 where user_id is null; -- NOTE: table has @History - special migration may be necessary update migtest_e_history6 set test_number2 = 7 where test_number2 is null; +-- apply alter tables 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 alter column status2 set data type varchar(1); @@ -52,6 +53,7 @@ alter table migtest_e_history6 alter column test_number1 drop default; alter table migtest_e_history6 alter column test_number1 drop not 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; +-- apply post alter alter table migtest_e_ref add constraint uq_migtest_e_ref_name unique (name); alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I')); alter table migtest_e_basic add constraint ck_migtest_e_basic_status2 check ( status2 in ('N','A','I')); @@ -62,6 +64,7 @@ comment on column migtest_e_history.test_string is ''; comment on table migtest_e_history is ''; create index ix_migtest_e_basic_indextest1 on migtest_e_basic (indextest1); create index ix_migtest_e_basic_indextest5 on migtest_e_basic (indextest5); +-- foreign keys and indices 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_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); 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 index 9c502bad5..60a4a5766 100644 --- 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 @@ -1,6 +1,7 @@ -- Migrationscripts for ebean unittest -- apply changes drop sequence migtest_e_user_seq; +-- apply alter tables 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; @@ -15,6 +16,7 @@ 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; +-- apply post alter drop table migtest_e_user; 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/db2luw/idx_db2.migrations b/ebean-test/src/test/resources/migrationtest/dbmigration/db2luw/idx_db2.migrations index fd0c912fb..2648358d7 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/db2luw/idx_db2.migrations +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2luw/idx_db2.migrations @@ -1,7 +1,7 @@ --900865287, 1.0__initial.sql -2094022383, 1.1.sql --812302674, 1.2__dropsFor_1.1.sql -291385069, 1.3.sql --915919511, 1.4__dropsFor_1.3.sql +377550917, 1.0__initial.sql +-1004566762, 1.1.sql +1337198247, 1.2__dropsFor_1.1.sql +-996351148, 1.3.sql +-1778697851, 1.4__dropsFor_1.3.sql 561281075, R__order_views.sql 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 index 09c308846..59f21111c 100644 --- 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 @@ -159,11 +159,13 @@ create table migtest_oto_master ( constraint pk_migtest_oto_master primary key (id) ); +-- apply post alter 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_ref add constraint uq_migtest_e_ref_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); +-- foreign keys and indices 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; 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 index 6fcb022f4..c17747fe9 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/db2zos/1.1.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2zos/1.1.sql @@ -52,6 +52,7 @@ update migtest_e_history2 set test_string = 'unknown' where test_string is null; update migtest_e_history6 set test_number1 = 42 where test_number1 is null; +-- apply alter tables 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; @@ -79,6 +80,7 @@ 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; +-- apply post alter alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I','?')); create unique index uq_migtest_e_basic_description on migtest_e_basic(description) exclude null keys; -- NOTE: table has @History - special migration may be necessary @@ -93,6 +95,7 @@ comment on column migtest_e_history.test_string is 'Column altered to long now'; comment on table migtest_e_history is 'We have history now'; create index ix_migtest_e_basic_indextest3 on migtest_e_basic (indextest3); create index ix_migtest_e_basic_indextest6 on migtest_e_basic (indextest6); +-- foreign keys and indices 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; 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 index 248e4eb1d..8830fb501 100644 --- 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 @@ -1,10 +1,12 @@ -- Migrationscripts for ebean unittest -- apply changes drop sequence migtest_e_ref_seq; +-- apply alter tables alter table migtest_e_basic drop column description_file; 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; +-- apply post alter drop table migtest_e_ref; 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 index 4895ff052..5f1ca5a3c 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/db2zos/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2zos/1.3.sql @@ -32,6 +32,7 @@ update migtest_e_basic set user_id = 23 where user_id is null; -- NOTE: table has @History - special migration may be necessary update migtest_e_history6 set test_number2 = 7 where test_number2 is null; +-- apply alter tables 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 alter column status2 set data type varchar(1); @@ -52,6 +53,7 @@ alter table migtest_e_history6 alter column test_number1 drop default; alter table migtest_e_history6 alter column test_number1 drop not 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; +-- apply post alter alter table migtest_e_ref add constraint uq_migtest_e_ref_name unique (name); alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I')); alter table migtest_e_basic add constraint ck_migtest_e_basic_status2 check ( status2 in ('N','A','I')); @@ -62,6 +64,7 @@ comment on column migtest_e_history.test_string is ''; comment on table migtest_e_history is ''; create index ix_migtest_e_basic_indextest1 on migtest_e_basic (indextest1); create index ix_migtest_e_basic_indextest5 on migtest_e_basic (indextest5); +-- foreign keys and indices 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_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); 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 index 9c502bad5..60a4a5766 100644 --- 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 @@ -1,6 +1,7 @@ -- Migrationscripts for ebean unittest -- apply changes drop sequence migtest_e_user_seq; +-- apply alter tables 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; @@ -15,6 +16,7 @@ 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; +-- apply post alter drop table migtest_e_user; 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/db2zos/idx_db2.migrations b/ebean-test/src/test/resources/migrationtest/dbmigration/db2zos/idx_db2.migrations index fd0c912fb..2648358d7 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/db2zos/idx_db2.migrations +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2zos/idx_db2.migrations @@ -1,7 +1,7 @@ --900865287, 1.0__initial.sql -2094022383, 1.1.sql --812302674, 1.2__dropsFor_1.1.sql -291385069, 1.3.sql --915919511, 1.4__dropsFor_1.3.sql +377550917, 1.0__initial.sql +-1004566762, 1.1.sql +1337198247, 1.2__dropsFor_1.1.sql +-996351148, 1.3.sql +-1778697851, 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 index 988f55d66..9f6e075c4 100644 --- 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 @@ -162,8 +162,10 @@ create table migtest_oto_master ( constraint pk_migtest_oto_master primary key (id) ); +-- apply post alter create index ix_migtest_e_basic_indextest1 on migtest_e_basic (indextest1); create index ix_migtest_e_basic_indextest5 on migtest_e_basic (indextest5); +-- foreign keys and indices 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; 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 b1b8e3eac..e1d5da6b9 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 @@ -51,6 +51,7 @@ update migtest_e_history2 set test_string = 'unknown' where test_string is null; update migtest_e_history6 set test_number1 = 42 where test_number1 is null; +-- apply alter tables 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; @@ -78,6 +79,7 @@ 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; +-- apply post alter alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I','?')); alter table migtest_e_basic add constraint uq_migtest_e_basic_description unique (description); -- NOTE: table has @History - special migration may be necessary @@ -92,6 +94,7 @@ comment on column migtest_e_history.test_string is 'Column altered to long now'; comment on table migtest_e_history is 'We have history now'; create index ix_migtest_e_basic_indextest3 on migtest_e_basic (indextest3); create index ix_migtest_e_basic_indextest6 on migtest_e_basic (indextest6); +-- foreign keys and indices 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; 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 index 219f0c1c5..4ec79a34c 100644 --- 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 @@ -1,8 +1,10 @@ -- Migrationscripts for ebean unittest +-- apply alter tables alter table migtest_e_basic drop column description_file; 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; +-- apply post alter 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 index a9ee65034..d16cbd509 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/generic/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/generic/1.3.sql @@ -33,6 +33,7 @@ update migtest_e_basic set user_id = 23 where user_id is null; -- NOTE: table has @History - special migration may be necessary update migtest_e_history6 set test_number2 = 7 where test_number2 is null; +-- apply alter tables 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 alter column status2 varchar(1); @@ -53,6 +54,7 @@ alter table migtest_e_history6 alter column test_number1 drop default; alter table migtest_e_history6 alter column test_number1 set 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; +-- apply post alter alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I')); alter table migtest_e_basic add constraint ck_migtest_e_basic_status2 check ( status2 in ('N','A','I')); alter table migtest_e_basic add constraint uq_migtest_e_basic_indextest2 unique (indextest2); @@ -62,6 +64,7 @@ comment on column migtest_e_history.test_string is ''; comment on table migtest_e_history is ''; create index ix_migtest_e_basic_indextest1 on migtest_e_basic (indextest1); create index ix_migtest_e_basic_indextest5 on migtest_e_basic (indextest5); +-- foreign keys and indices 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_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); 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 033f0a5a2..b4087d6d6 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 @@ -1,4 +1,5 @@ -- Migrationscripts for ebean unittest +-- apply alter tables 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; @@ -13,6 +14,7 @@ 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; +-- apply post alter 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 index bef530d63..0508561f5 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 @@ --2041271676, 1.0__initial.sql -1297418193, 1.1.sql --155876508, 1.2__dropsFor_1.1.sql --228806652, 1.3.sql -767202122, 1.4__dropsFor_1.3.sql +-1019203661, 1.0__initial.sql +523189619, 1.1.sql +1279151426, 1.2__dropsFor_1.1.sql +1114563224, 1.3.sql +80209848, 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 index 32827c7f1..620887caf 100644 --- 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 @@ -172,6 +172,7 @@ create table migtest_oto_master ( constraint pk_migtest_oto_master primary key (id) ); +-- apply post alter create table migtest_e_history2_history( id integer, test_string varchar(255), @@ -217,6 +218,7 @@ create view migtest_e_history6_with_history as select * from migtest_e_history6 create index ix_migtest_e_basic_indextest1 on migtest_e_basic (indextest1); create index ix_migtest_e_basic_indextest5 on migtest_e_basic (indextest5); +-- foreign keys and indices 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; @@ -226,6 +228,7 @@ 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; +-- apply history trigger 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"; 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 21a9484b5..3b0696cb5 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 @@ -57,6 +57,7 @@ update migtest_e_history2 set test_string = 'unknown' where test_string is null; update migtest_e_history6 set test_number1 = 42 where test_number1 is null; +-- apply alter tables 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; @@ -89,6 +90,7 @@ 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; +-- apply post alter alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I','?')); alter table migtest_e_basic add constraint uq_migtest_e_basic_description unique (description); -- NOTE: table has @History - special migration may be necessary @@ -111,6 +113,7 @@ comment on column migtest_e_history.test_string is 'Column altered to long now'; comment on table migtest_e_history is 'We have history now'; create index ix_migtest_e_basic_indextest3 on migtest_e_basic (indextest3); create index ix_migtest_e_basic_indextest6 on migtest_e_basic (indextest6); +-- foreign keys and indices 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; @@ -137,6 +140,7 @@ alter table migtest_fk_set_null add constraint fk_migtest_fk_set_null_one_id for 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_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; +-- apply history view 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; @@ -145,6 +149,7 @@ create view migtest_e_history4_with_history as select * from migtest_e_history4 create view migtest_e_history5_with_history as select * from migtest_e_history5 union all select * from migtest_e_history5_history; +-- apply history trigger 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; 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 index 689634515..bd026762c 100644 --- 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 @@ -3,6 +3,7 @@ drop view if exists migtest_e_history2_with_history; -- apply changes drop sequence if exists migtest_e_ref_seq; +-- apply alter tables alter table migtest_e_basic drop column description_file; alter table migtest_e_basic drop column old_boolean; alter table migtest_e_basic drop column old_boolean2; @@ -11,9 +12,12 @@ alter table migtest_e_history2 drop column obsolete_string1; alter table migtest_e_history2 drop column obsolete_string2; alter table migtest_e_history2_history drop column obsolete_string1; alter table migtest_e_history2_history drop column obsolete_string2; +-- apply post alter drop table if exists migtest_e_ref; +-- apply history view create view migtest_e_history2_with_history as select * from migtest_e_history2 union all select * from migtest_e_history2_history; +-- apply history trigger -- 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 index 8a0e8c2b1..246a5ca88 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/h2/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/h2/1.3.sql @@ -36,6 +36,7 @@ update migtest_e_basic set user_id = 23 where user_id is null; -- NOTE: table has @History - special migration may be necessary update migtest_e_history6 set test_number2 = 7 where test_number2 is null; +-- apply alter tables 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 alter column status2 varchar(1); @@ -59,6 +60,7 @@ alter table migtest_e_history6 alter column test_number1 drop default; alter table migtest_e_history6 alter column test_number1 set 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; +-- apply post alter alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I')); alter table migtest_e_basic add constraint ck_migtest_e_basic_status2 check ( status2 in ('N','A','I')); alter table migtest_e_basic add constraint uq_migtest_e_basic_indextest2 unique (indextest2); @@ -68,17 +70,20 @@ comment on column migtest_e_history.test_string is ''; comment on table migtest_e_history is ''; create index ix_migtest_e_basic_indextest1 on migtest_e_basic (indextest1); create index ix_migtest_e_basic_indextest5 on migtest_e_basic (indextest5); +-- foreign keys and indices 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_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; +-- apply history view 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; +-- apply history trigger -- 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"; 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 87113bc71..cab0b04e3 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 @@ -8,6 +8,7 @@ drop view if exists migtest_e_history2_with_history; drop view if exists migtest_e_history5_with_history; -- apply changes drop sequence if exists migtest_e_user_seq; +-- apply alter tables 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; @@ -28,14 +29,17 @@ 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; +-- apply post alter 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; +-- apply history view 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; +-- apply history trigger -- 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"; 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 1470afa26..9e6920241 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 @@ --108042782, 1.0__initial.sql -1618208971, 1.1.sql --159071745, 1.2__dropsFor_1.1.sql -1958704277, 1.3.sql -1195655701, 1.4__dropsFor_1.3.sql +235308122, 1.0__initial.sql +-1285933972, 1.1.sql +-97126202, 1.2__dropsFor_1.1.sql +-1371177335, 1.3.sql +-1491167595, 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 index 38bc72854..94b968702 100644 --- 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 @@ -162,8 +162,11 @@ create column table migtest_oto_master ( constraint pk_migtest_oto_master primary key (id) ); +-- apply alter tables +-- apply post alter -- 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; +-- foreign keys and indices -- 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; @@ -173,6 +176,7 @@ alter table migtest_fk_set_null add constraint fk_migtest_fk_set_null_one_id for -- 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; +-- apply history view create column table migtest_e_history2_history ( id integer, test_string nvarchar(255), 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 6e55680e3..967a98d1b 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 @@ -98,6 +98,7 @@ alter table migtest_e_history6 drop system versioning; update migtest_e_history6 set test_number1 = 42 where test_number1 is null; +-- apply alter tables alter table migtest_ckey_detail add (one_key integer, two_key nvarchar(127)); alter table migtest_ckey_parent add (assoc_id integer); @@ -128,6 +129,7 @@ alter table migtest_e_history6_history alter (test_number1 integer default 42 no test_number2 integer); alter table migtest_e_softdelete add (deleted boolean default false not null); alter table migtest_oto_child add (master_id bigint); +-- apply post alter alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I','?')); -- cannot create unique index "uq_migtest_e_basic_description" on table "migtest_e_basic" with nullable columns; -- NOTE: table has @History - special migration may be necessary @@ -147,6 +149,7 @@ alter table migtest_e_history5 add system versioning history table migtest_e_his alter table migtest_e_history6 add system versioning history table migtest_e_history6_history not validated; -- 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; +-- foreign keys and indices -- 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; @@ -173,6 +176,7 @@ alter table migtest_fk_set_null add constraint fk_migtest_fk_set_null_one_id for 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_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; +-- apply history view create column table migtest_e_history_history ( id integer, test_string bigint, 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 index 01f71574e..3bc9135cd 100644 --- 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 @@ -3,6 +3,7 @@ alter table migtest_e_history2 drop system versioning; +-- apply alter tables CALL usp_ebean_drop_column('migtest_e_basic', 'description_file'); CALL usp_ebean_drop_column('migtest_e_basic', 'old_boolean'); CALL usp_ebean_drop_column('migtest_e_basic', 'old_boolean2'); @@ -11,5 +12,6 @@ CALL usp_ebean_drop_column('migtest_e_history2', 'obsolete_string1'); CALL usp_ebean_drop_column('migtest_e_history2', 'obsolete_string2'); CALL usp_ebean_drop_column('migtest_e_history2_history', 'obsolete_string1'); CALL usp_ebean_drop_column('migtest_e_history2_history', 'obsolete_string2'); +-- apply post alter alter table migtest_e_history2 add system versioning history table migtest_e_history2_history not validated; 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 index cf5fcfee7..c5997a1b8 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/hana/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/hana/1.3.sql @@ -97,6 +97,7 @@ alter table migtest_e_history6 drop system versioning; -- NOTE: table has @History - special migration may be necessary update migtest_e_history6 set test_number2 = 7 where test_number2 is null; +-- apply alter tables alter table migtest_e_basic alter (status nvarchar(1) default null, status2 nclob not null); alter table migtest_e_basic alter (status2 nvarchar(1) default 'N' not null, @@ -119,6 +120,7 @@ alter table migtest_e_history6 alter (test_number1 integer default null, test_number2 integer default 7 not null); alter table migtest_e_history6_history alter (test_number1 integer default null, test_number2 integer default 7 not null); +-- apply post alter alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I')); alter table migtest_e_basic add constraint ck_migtest_e_basic_status2 check ( status2 in ('N','A','I')); -- cannot create unique index "uq_migtest_e_basic_indextest2" on table "migtest_e_basic" with nullable columns; @@ -132,6 +134,7 @@ alter table migtest_e_history4 add system versioning history table migtest_e_his alter table migtest_e_history6 add system versioning history table migtest_e_history6_history not validated; -- 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; +-- foreign keys and indices 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_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; 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 16c329132..d80ecf525 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 @@ -13,6 +13,7 @@ alter table migtest_e_history5 drop system versioning; +-- apply alter tables 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'); @@ -31,6 +32,7 @@ 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'); +-- apply post alter alter table migtest_e_history2 add system versioning history table migtest_e_history2_history not validated; alter table migtest_e_history5 add system versioning history table migtest_e_history5_history not validated; drop table migtest_e_user 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 bf6b1e14d..9a7f8b9e4 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,8 +1,8 @@ -745347271, I__create_procs.sql -513351138, 1.0__initial.sql -402034887, 1.1.sql --40882406, 1.2__dropsFor_1.1.sql -1285995142, 1.3.sql --212925879, 1.4__dropsFor_1.3.sql +1110470847, 1.0__initial.sql +-750750591, 1.1.sql +197547825, 1.2__dropsFor_1.1.sql +1403985020, 1.3.sql +1812245353, 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 index ad740f297..d1984004f 100644 --- 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 @@ -162,8 +162,10 @@ create table migtest_oto_master ( constraint pk_migtest_oto_master primary key (id) ); +-- apply post alter create index ix_migtest_e_basic_indextest1 on migtest_e_basic (indextest1); create index ix_migtest_e_basic_indextest5 on migtest_e_basic (indextest5); +-- foreign keys and indices 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; 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 10809373f..a2b45fdc4 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 @@ -51,6 +51,7 @@ update migtest_e_history2 set test_string = 'unknown' where test_string is null; update migtest_e_history6 set test_number1 = 42 where test_number1 is null; +-- apply alter tables 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; @@ -78,6 +79,7 @@ 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; +-- apply post alter alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I','?')); alter table migtest_e_basic add constraint uq_migtest_e_basic_description unique (description); -- NOTE: table has @History - special migration may be necessary @@ -92,6 +94,7 @@ comment on column migtest_e_history.test_string is 'Column altered to long now'; comment on table migtest_e_history is 'We have history now'; create index ix_migtest_e_basic_indextest3 on migtest_e_basic (indextest3); create index ix_migtest_e_basic_indextest6 on migtest_e_basic (indextest6); +-- foreign keys and indices 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; 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 index a19014aa6..90cf21bdb 100644 --- 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 @@ -1,10 +1,12 @@ -- Migrationscripts for ebean unittest -- apply changes drop sequence if exists migtest_e_ref_seq; +-- apply alter tables alter table migtest_e_basic drop column description_file; 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; +-- apply post alter drop table if exists migtest_e_ref; 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 index 55ced8bde..9f375ed10 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/hsqldb/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/hsqldb/1.3.sql @@ -33,6 +33,7 @@ update migtest_e_basic set user_id = 23 where user_id is null; -- NOTE: table has @History - special migration may be necessary update migtest_e_history6 set test_number2 = 7 where test_number2 is null; +-- apply alter tables 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 alter column status2 varchar(1); @@ -53,6 +54,7 @@ alter table migtest_e_history6 alter column test_number1 drop default; alter table migtest_e_history6 alter column test_number1 set 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; +-- apply post alter alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I')); alter table migtest_e_basic add constraint ck_migtest_e_basic_status2 check ( status2 in ('N','A','I')); alter table migtest_e_basic add constraint uq_migtest_e_basic_indextest2 unique (indextest2); @@ -62,6 +64,7 @@ comment on column migtest_e_history.test_string is ''; comment on table migtest_e_history is ''; create index ix_migtest_e_basic_indextest1 on migtest_e_basic (indextest1); create index ix_migtest_e_basic_indextest5 on migtest_e_basic (indextest5); +-- foreign keys and indices 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_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); 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 51c74520d..6c2ca5765 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 @@ -1,6 +1,7 @@ -- Migrationscripts for ebean unittest -- apply changes drop sequence if exists migtest_e_user_seq; +-- apply alter tables 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; @@ -15,6 +16,7 @@ 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; +-- apply post alter 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/hsqldb/idx_hsqldb.migrations b/ebean-test/src/test/resources/migrationtest/dbmigration/hsqldb/idx_hsqldb.migrations index b13abc604..6eec65376 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 @@ -1469726733, 1.0__initial.sql --525203491, 1.1.sql --281614627, 1.2__dropsFor_1.1.sql --844698846, 1.3.sql -1340995947, 1.4__dropsFor_1.3.sql +-287760616, 1.0__initial.sql +1240370138, 1.1.sql +1300559201, 1.2__dropsFor_1.1.sql +-1618431338, 1.3.sql +-510002583, 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.0__initial.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb-noprocs/1.0__initial.sql index ea67bcb04..75e492b61 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb-noprocs/1.0__initial.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb-noprocs/1.0__initial.sql @@ -159,8 +159,10 @@ create table migtest_oto_master ( constraint pk_migtest_oto_master primary key (id) ); +-- apply post alter create index ix_migtest_e_basic_indextest1 on migtest_e_basic (indextest1); create index ix_migtest_e_basic_indextest5 on migtest_e_basic (indextest5); +-- foreign keys and indices 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; @@ -170,6 +172,7 @@ 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; +-- apply history view alter table migtest_e_history2 add system versioning; alter table migtest_e_history3 add system versioning; alter table migtest_e_history4 add system versioning; 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 4e0c06213..7f604446f 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 @@ -57,6 +57,7 @@ alter table migtest_e_history6 modify test_number1 integer not null default 42; alter table migtest_e_history6 modify test_number2 integer; +-- apply alter tables 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; @@ -71,6 +72,7 @@ alter table migtest_e_history2 add column new_column varchar(20); alter table migtest_e_history5 add column test_boolean tinyint(1) default 0 not null; alter table migtest_e_softdelete add column deleted tinyint(1) default 0 not null; alter table migtest_oto_child add column master_id bigint; +-- apply post alter alter table migtest_e_basic add constraint uq_migtest_e_basic_description unique (description); -- NOTE: table has @History - special migration may be necessary update migtest_e_basic set new_boolean_field = old_boolean; @@ -82,6 +84,7 @@ alter table migtest_e_basic add constraint uq_migtest_e_basic_indextest5 unique alter table migtest_e_history comment = 'We have history now'; create index ix_migtest_e_basic_indextest3 on migtest_e_basic (indextest3); create index ix_migtest_e_basic_indextest6 on migtest_e_basic (indextest6); +-- foreign keys and indices 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,6 +111,8 @@ alter table migtest_fk_set_null add constraint fk_migtest_fk_set_null_one_id for 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_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; +-- apply history view alter table migtest_e_history add system versioning; +-- apply history trigger lock tables migtest_e_history3 write; unlock tables; diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb-noprocs/1.2__dropsFor_1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb-noprocs/1.2__dropsFor_1.1.sql index a19014aa6..90cf21bdb 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb-noprocs/1.2__dropsFor_1.1.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb-noprocs/1.2__dropsFor_1.1.sql @@ -1,10 +1,12 @@ -- Migrationscripts for ebean unittest -- apply changes drop sequence if exists migtest_e_ref_seq; +-- apply alter tables alter table migtest_e_basic drop column description_file; 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; +-- apply post alter drop table if exists migtest_e_ref; diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb-noprocs/1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb-noprocs/1.3.sql index 3f9a60e36..d27de2829 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb-noprocs/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb-noprocs/1.3.sql @@ -37,21 +37,25 @@ 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 modify test_number2 integer not null default 7; +-- apply alter tables alter table migtest_e_basic add column description_file longblob; 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_history2 add column obsolete_string1 varchar(255); alter table migtest_e_history2 add column obsolete_string2 varchar(255); +-- apply post alter 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 = ''; create index ix_migtest_e_basic_indextest1 on migtest_e_basic (indextest1); create index ix_migtest_e_basic_indextest5 on migtest_e_basic (indextest5); +-- foreign keys and indices 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_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; +-- apply history trigger lock tables migtest_e_history3 write; unlock tables; 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 74fd7d558..3cccf3ce1 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 @@ -1,6 +1,7 @@ -- Migrationscripts for ebean unittest -- apply changes drop sequence if exists migtest_e_user_seq; +-- apply alter tables 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; @@ -15,8 +16,10 @@ 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; +-- apply post alter 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; +-- apply history view 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 b79a76906..4374e4e65 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 @@ --616900688, 1.0__initial.sql -719322817, 1.1.sql --281614627, 1.2__dropsFor_1.1.sql --846393359, 1.3.sql -588647554, 1.4__dropsFor_1.3.sql +-236478024, 1.0__initial.sql +1650543949, 1.1.sql +1300559201, 1.2__dropsFor_1.1.sql +-1408500849, 1.3.sql +-1110228228, 1.4__dropsFor_1.3.sql 561281075, R__order_views.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 index ea67bcb04..75e492b61 100644 --- 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 @@ -159,8 +159,10 @@ create table migtest_oto_master ( constraint pk_migtest_oto_master primary key (id) ); +-- apply post alter create index ix_migtest_e_basic_indextest1 on migtest_e_basic (indextest1); create index ix_migtest_e_basic_indextest5 on migtest_e_basic (indextest5); +-- foreign keys and indices 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; @@ -170,6 +172,7 @@ 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; +-- apply history view alter table migtest_e_history2 add system versioning; alter table migtest_e_history3 add system versioning; alter table migtest_e_history4 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 index 4e0c06213..7f604446f 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 @@ -57,6 +57,7 @@ alter table migtest_e_history6 modify test_number1 integer not null default 42; alter table migtest_e_history6 modify test_number2 integer; +-- apply alter tables 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; @@ -71,6 +72,7 @@ alter table migtest_e_history2 add column new_column varchar(20); alter table migtest_e_history5 add column test_boolean tinyint(1) default 0 not null; alter table migtest_e_softdelete add column deleted tinyint(1) default 0 not null; alter table migtest_oto_child add column master_id bigint; +-- apply post alter alter table migtest_e_basic add constraint uq_migtest_e_basic_description unique (description); -- NOTE: table has @History - special migration may be necessary update migtest_e_basic set new_boolean_field = old_boolean; @@ -82,6 +84,7 @@ alter table migtest_e_basic add constraint uq_migtest_e_basic_indextest5 unique alter table migtest_e_history comment = 'We have history now'; create index ix_migtest_e_basic_indextest3 on migtest_e_basic (indextest3); create index ix_migtest_e_basic_indextest6 on migtest_e_basic (indextest6); +-- foreign keys and indices 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,6 +111,8 @@ alter table migtest_fk_set_null add constraint fk_migtest_fk_set_null_one_id for 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_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; +-- apply history view alter table migtest_e_history add system versioning; +-- apply history trigger 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 index d60ca81e6..2a8c1ece1 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 @@ -13,4 +13,5 @@ CALL usp_ebean_drop_column('migtest_e_history2', 'obsolete_string1'); CALL usp_ebean_drop_column('migtest_e_history2', 'obsolete_string2'); drop sequence if exists migtest_e_ref_seq; +-- apply post alter drop table if exists migtest_e_ref; 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 index 3f9a60e36..d27de2829 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb/1.3.sql @@ -37,21 +37,25 @@ 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 modify test_number2 integer not null default 7; +-- apply alter tables alter table migtest_e_basic add column description_file longblob; 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_history2 add column obsolete_string1 varchar(255); alter table migtest_e_history2 add column obsolete_string2 varchar(255); +-- apply post alter 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 = ''; create index ix_migtest_e_basic_indextest1 on migtest_e_basic (indextest1); create index ix_migtest_e_basic_indextest5 on migtest_e_basic (indextest5); +-- foreign keys and indices 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_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; +-- apply history trigger 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 index 897bb242c..950cde542 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 @@ -29,8 +29,10 @@ CALL usp_ebean_drop_column('migtest_e_softdelete', 'deleted'); CALL usp_ebean_drop_column('migtest_oto_child', 'master_id'); drop sequence if exists migtest_e_user_seq; +-- apply post alter 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; +-- apply history view 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 fa767ed30..bf4a5b49b 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 --616900688, 1.0__initial.sql -719322817, 1.1.sql -1660090057, 1.2__dropsFor_1.1.sql --846393359, 1.3.sql -2011305151, 1.4__dropsFor_1.3.sql +-236478024, 1.0__initial.sql +1650543949, 1.1.sql +-394047497, 1.2__dropsFor_1.1.sql +-1408500849, 1.3.sql +1479728551, 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 fc5f6562a..6e8742c51 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 @@ -169,6 +169,7 @@ create table migtest_oto_master ( constraint pk_migtest_oto_master primary key (id) ); +-- apply post alter create table migtest_e_history2_history( id integer, test_string varchar(255), @@ -214,6 +215,7 @@ create view migtest_e_history6_with_history as select * from migtest_e_history6 create index ix_migtest_e_basic_indextest1 on migtest_e_basic (indextest1); create index ix_migtest_e_basic_indextest5 on migtest_e_basic (indextest5); +-- foreign keys and indices 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; @@ -223,6 +225,7 @@ 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; +-- apply history trigger 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); 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 bde19e551..44fefb2e3 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 @@ -63,6 +63,7 @@ alter table migtest_e_history6 modify test_number1 integer not null default 42; alter table migtest_e_history6 modify test_number2 integer; +-- apply alter tables 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; @@ -81,6 +82,7 @@ alter table migtest_e_history5 add column test_boolean tinyint(1) default 0 not alter table migtest_e_history5_history add column test_boolean tinyint(1) default 0; alter table migtest_e_softdelete add column deleted tinyint(1) default 0 not null; alter table migtest_oto_child add column master_id bigint; +-- apply post alter alter table migtest_e_basic add constraint uq_migtest_e_basic_description unique (description); -- NOTE: table has @History - special migration may be necessary update migtest_e_basic set new_boolean_field = old_boolean; @@ -100,6 +102,7 @@ create view migtest_e_history_with_history as select * from migtest_e_history un alter table migtest_e_history comment = 'We have history now'; create index ix_migtest_e_basic_indextest3 on migtest_e_basic (indextest3); create index ix_migtest_e_basic_indextest6 on migtest_e_basic (indextest6); +-- foreign keys and indices 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; @@ -126,6 +129,7 @@ alter table migtest_fk_set_null add constraint fk_migtest_fk_set_null_one_id for 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_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; +-- apply history view 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; @@ -134,6 +138,7 @@ create view migtest_e_history4_with_history as select * from migtest_e_history4 create view migtest_e_history5_with_history as select * from migtest_e_history5 union all select * from migtest_e_history5_history; +-- apply history trigger 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); 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 35e6c12a9..acaf96272 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 @@ -16,9 +16,12 @@ 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'); +-- apply post alter drop table if exists migtest_e_ref; +-- apply history view create view migtest_e_history2_with_history as select * from migtest_e_history2 union all select * from migtest_e_history2_history; +-- apply history trigger lock tables migtest_e_history2 write; -- changes: [drop obsolete_string1, drop obsolete_string2] drop trigger migtest_e_history2_history_upd; 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 index 1a396ceea..21e91ff96 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/mysql/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/mysql/1.3.sql @@ -41,6 +41,7 @@ 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 modify test_number2 integer not null default 7; +-- apply alter tables alter table migtest_e_basic add column description_file longblob; 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); @@ -49,6 +50,7 @@ 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); +-- apply post alter 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 = ''; @@ -58,17 +60,20 @@ 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); +-- foreign keys and indices 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_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; +-- apply history view 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; +-- apply history trigger 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; 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 35308200b..f257f1ebb 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 @@ -42,14 +42,17 @@ CALL usp_ebean_drop_column('migtest_e_softdelete', 'deleted'); CALL usp_ebean_drop_column('migtest_oto_child', 'master_id'); +-- apply post alter 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; +-- apply history view 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; +-- apply history trigger 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; 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 c80baaa9e..d27defc4b 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 --677139473, 1.0__initial.sql --980860692, 1.1.sql -1986189381, 1.2__dropsFor_1.1.sql --297983164, 1.3.sql -950278009, 1.4__dropsFor_1.3.sql +1536043334, 1.0__initial.sql +-67000941, 1.1.sql +-849327648, 1.2__dropsFor_1.1.sql +1023253480, 1.3.sql +1322560169, 1.4__dropsFor_1.3.sql 561281075, R__order_views.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 index 573bd7f17..71e49383c 100644 --- 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 @@ -169,6 +169,7 @@ create table migtest_oto_master ( constraint pk_migtest_oto_master primary key (id) ); +-- apply post alter create table migtest_e_history2_history( id integer, test_string varchar(255), @@ -214,6 +215,7 @@ create view migtest_e_history6_with_history as select * from migtest_e_history6 create index ix_migtest_e_basic_indextest1 on migtest_e_basic (indextest1); create index ix_migtest_e_basic_indextest5 on migtest_e_basic (indextest5); +-- foreign keys and indices 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; @@ -223,6 +225,7 @@ 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; +-- apply history trigger 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); 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 index bde19e551..44fefb2e3 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/mysql55/1.1.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/mysql55/1.1.sql @@ -63,6 +63,7 @@ alter table migtest_e_history6 modify test_number1 integer not null default 42; alter table migtest_e_history6 modify test_number2 integer; +-- apply alter tables 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; @@ -81,6 +82,7 @@ alter table migtest_e_history5 add column test_boolean tinyint(1) default 0 not alter table migtest_e_history5_history add column test_boolean tinyint(1) default 0; alter table migtest_e_softdelete add column deleted tinyint(1) default 0 not null; alter table migtest_oto_child add column master_id bigint; +-- apply post alter alter table migtest_e_basic add constraint uq_migtest_e_basic_description unique (description); -- NOTE: table has @History - special migration may be necessary update migtest_e_basic set new_boolean_field = old_boolean; @@ -100,6 +102,7 @@ create view migtest_e_history_with_history as select * from migtest_e_history un alter table migtest_e_history comment = 'We have history now'; create index ix_migtest_e_basic_indextest3 on migtest_e_basic (indextest3); create index ix_migtest_e_basic_indextest6 on migtest_e_basic (indextest6); +-- foreign keys and indices 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; @@ -126,6 +129,7 @@ alter table migtest_fk_set_null add constraint fk_migtest_fk_set_null_one_id for 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_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; +-- apply history view 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; @@ -134,6 +138,7 @@ create view migtest_e_history4_with_history as select * from migtest_e_history4 create view migtest_e_history5_with_history as select * from migtest_e_history5 union all select * from migtest_e_history5_history; +-- apply history trigger 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); 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 index 35e6c12a9..acaf96272 100644 --- 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 @@ -16,9 +16,12 @@ 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'); +-- apply post alter drop table if exists migtest_e_ref; +-- apply history view create view migtest_e_history2_with_history as select * from migtest_e_history2 union all select * from migtest_e_history2_history; +-- apply history trigger lock tables migtest_e_history2 write; -- changes: [drop obsolete_string1, drop obsolete_string2] drop trigger migtest_e_history2_history_upd; 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 index 1a396ceea..21e91ff96 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/mysql55/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/mysql55/1.3.sql @@ -41,6 +41,7 @@ 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 modify test_number2 integer not null default 7; +-- apply alter tables alter table migtest_e_basic add column description_file longblob; 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); @@ -49,6 +50,7 @@ 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); +-- apply post alter 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 = ''; @@ -58,17 +60,20 @@ 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); +-- foreign keys and indices 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_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; +-- apply history view 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; +-- apply history trigger 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; 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 index 35308200b..f257f1ebb 100644 --- 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 @@ -42,14 +42,17 @@ CALL usp_ebean_drop_column('migtest_e_softdelete', 'deleted'); CALL usp_ebean_drop_column('migtest_oto_child', 'master_id'); +-- apply post alter 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; +-- apply history view 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; +-- apply history trigger 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; 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 index 86fe5db15..4fbd8e133 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/mysql55/idx_mysql.migrations +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/mysql55/idx_mysql.migrations @@ -1,8 +1,8 @@ 1835064798, I__create_procs.sql --700647047, 1.0__initial.sql --980860692, 1.1.sql -1986189381, 1.2__dropsFor_1.1.sql --297983164, 1.3.sql -950278009, 1.4__dropsFor_1.3.sql +1122959299, 1.0__initial.sql +-67000941, 1.1.sql +-849327648, 1.2__dropsFor_1.1.sql +1023253480, 1.3.sql +1322560169, 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 index 20359f42a..a2d78605e 100644 --- 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 @@ -172,6 +172,7 @@ create table migtest_oto_master ( constraint pk_migtest_oto_master primary key (id) ); +-- apply post alter create table migtest_e_history2_history( id integer, test_string varchar(255), @@ -217,6 +218,7 @@ create view migtest_e_history6_with_history as select * from migtest_e_history6 create index ix_migtest_e_basic_indextest1 on migtest_e_basic (indextest1); create index ix_migtest_e_basic_indextest5 on migtest_e_basic (indextest5); +-- foreign keys and indices 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; @@ -226,6 +228,7 @@ 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); +-- apply history trigger 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)); 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 895ebaf6a..df52221b6 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 @@ -57,6 +57,7 @@ update migtest_e_history2 set test_string = 'unknown' where test_string is null; update migtest_e_history6 set test_number1 = 42 where test_number1 is null; +-- apply alter tables 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; @@ -89,6 +90,7 @@ 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; +-- apply post alter alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I','?')); alter table migtest_e_basic add constraint uq_migtest_e_basic_description unique (description); -- NOTE: table has @History - special migration may be necessary @@ -109,6 +111,7 @@ create view migtest_e_history_with_history as select * from migtest_e_history un create index ix_migtest_e_basic_indextest3 on migtest_e_basic (indextest3); create index ix_migtest_e_basic_indextest6 on migtest_e_basic (indextest6); +-- foreign keys and indices 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); @@ -135,6 +138,7 @@ alter table migtest_fk_set_null add constraint fk_migtest_fk_set_null_one_id for 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_oto_child add constraint fk_migtest_oto_child_master_id foreign key (master_id) references migtest_oto_master (id); +-- apply history view 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; @@ -143,6 +147,7 @@ create view migtest_e_history4_with_history as select * from migtest_e_history4 create view migtest_e_history5_with_history as select * from migtest_e_history5 union all select * from migtest_e_history5_history; +-- apply history trigger 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)); 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 index 7b635503a..2f6843c67 100644 --- 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 @@ -3,6 +3,7 @@ drop view if exists migtest_e_history2_with_history; -- apply changes drop sequence if exists migtest_e_ref_seq; +-- apply alter tables alter table migtest_e_basic drop column description_file; alter table migtest_e_basic drop column old_boolean; alter table migtest_e_basic drop column old_boolean2; @@ -11,9 +12,12 @@ alter table migtest_e_history2 drop column obsolete_string1; alter table migtest_e_history2 drop column obsolete_string2; alter table migtest_e_history2_history drop column obsolete_string1; alter table migtest_e_history2_history drop column obsolete_string2; +-- apply post alter drop table if exists migtest_e_ref; +-- apply history view create view migtest_e_history2_with_history as select * from migtest_e_history2 union all select * from migtest_e_history2_history; +-- apply history trigger -- changes: [drop obsolete_string1, drop obsolete_string2] drop trigger migtest_e_history2_history_upd; drop trigger migtest_e_history2_history_del; 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 index 1b5901359..377e1b9b3 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/nuodb/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/nuodb/1.3.sql @@ -36,6 +36,7 @@ update migtest_e_basic set user_id = 23 where user_id is null; -- NOTE: table has @History - special migration may be necessary update migtest_e_history6 set test_number2 = 7 where test_number2 is null; +-- apply alter tables 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 alter column status2 varchar(1); @@ -59,6 +60,7 @@ alter table migtest_e_history6 alter column test_number1 drop default; alter table migtest_e_history6 alter column test_number1 set 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; +-- apply post alter alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I')); alter table migtest_e_basic add constraint ck_migtest_e_basic_status2 check ( status2 in ('N','A','I')); alter table migtest_e_basic add constraint uq_migtest_e_basic_indextest2 unique (indextest2); @@ -66,17 +68,20 @@ alter table migtest_e_basic add constraint uq_migtest_e_basic_indextest6 unique alter table migtest_e_enum add constraint ck_migtest_e_enum_test_status check ( test_status in ('N','A','I')); create index ix_migtest_e_basic_indextest1 on migtest_e_basic (indextest1); create index ix_migtest_e_basic_indextest5 on migtest_e_basic (indextest5); +-- foreign keys and indices 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_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); +-- apply history view 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; +-- apply history trigger -- changes: [add obsolete_string1, add obsolete_string2] drop trigger migtest_e_history2_history_upd; drop trigger migtest_e_history2_history_del; 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 9a52f39b1..2f22a6227 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 @@ -9,6 +9,7 @@ drop view if exists migtest_e_history2_with_history; drop view if exists migtest_e_history5_with_history; -- apply changes drop sequence if exists migtest_e_user_seq; +-- apply alter tables 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; @@ -29,14 +30,17 @@ 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; +-- apply post alter 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; +-- apply history view 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; +-- apply history trigger -- changes: [drop test_string2, drop test_string3, drop new_column] drop trigger migtest_e_history2_history_upd; drop trigger migtest_e_history2_history_del; 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 01b434395..3dfa45c4c 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 @@ --1287707271, 1.0__initial.sql -1113108212, 1.1.sql --1342063278, 1.2__dropsFor_1.1.sql -384328282, 1.3.sql -7108518, 1.4__dropsFor_1.3.sql +1609926578, 1.0__initial.sql +-712334769, 1.1.sql +2006095001, 1.2__dropsFor_1.1.sql +710219599, 1.3.sql +457206948, 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 4d151f191..36433cfbb 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 @@ -162,8 +162,10 @@ create table migtest_oto_master ( constraint pk_migtest_oto_master primary key (id) ); +-- apply post alter create index ix_migtest_e_basic_indextest1 on migtest_e_basic (indextest1); create index ix_migtest_e_basic_indextest5 on migtest_e_basic (indextest5); +-- foreign keys and indices 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; 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 d213631d7..1bca2a9bb 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 @@ -96,6 +96,7 @@ update migtest_e_history2 set test_string = 'unknown' where test_string is null; update migtest_e_history6 set test_number1 = 42 where test_number1 is null; +-- apply alter tables alter table migtest_ckey_detail add one_key number(10); alter table migtest_ckey_detail add two_key varchar2(127); alter table migtest_ckey_parent add assoc_id number(10); @@ -123,6 +124,7 @@ 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); +-- apply post alter alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I','?')); -- NOT YET IMPLEMENTED: alter table migtest_e_basic add constraint uq_migtest_e_basic_description unique (description); -- NOTE: table has @History - special migration may be necessary @@ -137,6 +139,7 @@ comment on column migtest_e_history.test_string is 'Column altered to long now'; comment on table migtest_e_history is 'We have history now'; create index ix_migtest_e_basic_indextest3 on migtest_e_basic (indextest3); create index ix_migtest_e_basic_indextest6 on migtest_e_basic (indextest6); +-- foreign keys and indices 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); 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 index 4c0af48aa..49614c56a 100644 --- 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 @@ -10,10 +10,12 @@ exception when expected_error then null; end; $$; +-- apply alter tables alter table migtest_e_basic drop column description_file; 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; +-- apply post alter drop table migtest_e_ref cascade constraints purge; 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 868163641..fcdce368f 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 @@ -105,6 +105,7 @@ update migtest_e_basic set user_id = 23 where user_id is null; -- NOTE: table has @History - special migration may be necessary update migtest_e_history6 set test_number2 = 7 where test_number2 is null; +-- apply alter tables alter table migtest_e_basic modify status default null; alter table migtest_e_basic modify status null; alter table migtest_e_basic modify status2 varchar2(1); @@ -125,6 +126,7 @@ alter table migtest_e_history6 modify test_number1 default null; alter table migtest_e_history6 modify test_number1 null; alter table migtest_e_history6 modify test_number2 default 7; alter table migtest_e_history6 modify test_number2 not null; +-- apply post alter alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I')); alter table migtest_e_basic add constraint ck_migtest_e_basic_status2 check ( status2 in ('N','A','I')); -- NOT YET IMPLEMENTED: alter table migtest_e_basic add constraint uq_migtest_e_basic_indextest2 unique (indextest2); @@ -134,6 +136,7 @@ comment on column migtest_e_history.test_string is ''; comment on table migtest_e_history is ''; create index ix_migtest_e_basic_indextest1 on migtest_e_basic (indextest1); create index ix_migtest_e_basic_indextest5 on migtest_e_basic (indextest5); +-- foreign keys and indices 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_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); 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 065b946ee..0db97fced 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 @@ -10,6 +10,7 @@ exception when expected_error then null; end; $$; +-- apply alter tables 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; @@ -24,6 +25,7 @@ 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; +-- apply post alter drop table migtest_e_user cascade constraints purge; 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/idx_oracle.migrations b/ebean-test/src/test/resources/migrationtest/dbmigration/oracle/idx_oracle.migrations index 0311f72ce..c3114ac3f 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 @@ -1732845114, 1.0__initial.sql -1978325167, 1.1.sql -716378422, 1.2__dropsFor_1.1.sql --740156680, 1.3.sql -1781097804, 1.4__dropsFor_1.3.sql +-622073680, 1.0__initial.sql +-1746822270, 1.1.sql +-762185259, 1.2__dropsFor_1.1.sql +306379757, 1.3.sql +-748734592, 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 index 2178953b6..9e403f7c1 100644 --- 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 @@ -184,8 +184,10 @@ create table migtest_oto_master ( ); create sequence migtest_oto_master_seq; +-- apply post alter create index ix_migtest_e_basic_indextest1 on migtest_e_basic (indextest1); create index ix_migtest_e_basic_indextest5 on migtest_e_basic (indextest5); +-- foreign keys and indices 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; 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 index 6ae6721c2..484b157b6 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/oracle11/1.1.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/oracle11/1.1.sql @@ -97,6 +97,7 @@ update migtest_e_history2 set test_string = 'unknown' where test_string is null; update migtest_e_history6 set test_number1 = 42 where test_number1 is null; +-- apply alter tables alter table migtest_ckey_detail add one_key number(10); alter table migtest_ckey_detail add two_key varchar2(127); alter table migtest_ckey_parent add assoc_id number(10); @@ -124,6 +125,7 @@ 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); +-- apply post alter alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I','?')); -- NOT YET IMPLEMENTED: alter table migtest_e_basic add constraint uq_migtest_e_basic_description unique (description); -- NOTE: table has @History - special migration may be necessary @@ -138,6 +140,7 @@ comment on column migtest_e_history.test_string is 'Column altered to long now'; comment on table migtest_e_history is 'We have history now'; create index ix_migtest_e_basic_indextest3 on migtest_e_basic (indextest3); create index ix_migtest_e_basic_indextest6 on migtest_e_basic (indextest6); +-- foreign keys and indices 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); 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 index 4c0af48aa..49614c56a 100644 --- 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 @@ -10,10 +10,12 @@ exception when expected_error then null; end; $$; +-- apply alter tables alter table migtest_e_basic drop column description_file; 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; +-- apply post alter drop table migtest_e_ref cascade constraints purge; 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 index ba8dae439..546b71375 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/oracle11/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/oracle11/1.3.sql @@ -106,6 +106,7 @@ update migtest_e_basic set user_id = 23 where user_id is null; -- NOTE: table has @History - special migration may be necessary update migtest_e_history6 set test_number2 = 7 where test_number2 is null; +-- apply alter tables alter table migtest_e_basic modify status default null; alter table migtest_e_basic modify status null; alter table migtest_e_basic modify status2 varchar2(1); @@ -126,6 +127,7 @@ alter table migtest_e_history6 modify test_number1 default null; alter table migtest_e_history6 modify test_number1 null; alter table migtest_e_history6 modify test_number2 default 7; alter table migtest_e_history6 modify test_number2 not null; +-- apply post alter alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I')); alter table migtest_e_basic add constraint ck_migtest_e_basic_status2 check ( status2 in ('N','A','I')); -- NOT YET IMPLEMENTED: alter table migtest_e_basic add constraint uq_migtest_e_basic_indextest2 unique (indextest2); @@ -135,6 +137,7 @@ comment on column migtest_e_history.test_string is ''; comment on table migtest_e_history is ''; create index ix_migtest_e_basic_indextest1 on migtest_e_basic (indextest1); create index ix_migtest_e_basic_indextest5 on migtest_e_basic (indextest5); +-- foreign keys and indices 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_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); 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 index 065b946ee..0db97fced 100644 --- 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 @@ -10,6 +10,7 @@ exception when expected_error then null; end; $$; +-- apply alter tables 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; @@ -24,6 +25,7 @@ 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; +-- apply post alter drop table migtest_e_user cascade constraints purge; 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/oracle11/idx_oracle.migrations b/ebean-test/src/test/resources/migrationtest/dbmigration/oracle11/idx_oracle.migrations index ed215cca7..f5561b586 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/oracle11/idx_oracle.migrations +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/oracle11/idx_oracle.migrations @@ -1,8 +1,8 @@ --756544611, 1.0__initial.sql -852231507, 1.1.sql -716378422, 1.2__dropsFor_1.1.sql -1600556691, 1.3.sql -1781097804, 1.4__dropsFor_1.3.sql +-69967756, 1.0__initial.sql +224068094, 1.1.sql +-762185259, 1.2__dropsFor_1.1.sql +694608752, 1.3.sql +-748734592, 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 271380759..abdabb877 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 @@ -167,6 +167,7 @@ create table migtest_oto_master ( constraint pk_migtest_oto_master primary key (id) ); +-- apply post alter 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; @@ -187,6 +188,7 @@ create index if not exists ix_migtest_e_basic_indextest5 on migtest_e_basic (ind 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)); +-- foreign keys and indices 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; @@ -196,6 +198,7 @@ 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; +-- apply history trigger create or replace function migtest_e_history2_history_version() returns trigger as $$ declare lowerTs timestamptz; 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 dc2eefa72..73f06c071 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 @@ -65,6 +65,7 @@ alter table migtest_e_history4_history alter column test_number type bigint usin update migtest_e_history6 set test_number1 = 42 where test_number1 is null; +-- apply alter tables 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; @@ -93,6 +94,7 @@ 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; +-- apply post alter alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I','?')); alter table migtest_e_basic add constraint uq_migtest_e_basic_description unique (description); -- NOTE: table has @History - special migration may be necessary @@ -111,6 +113,7 @@ comment on table migtest_e_history is 'We have history now'; 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); +-- foreign keys and indices 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; @@ -137,6 +140,7 @@ alter table migtest_fk_set_null add constraint fk_migtest_fk_set_null_one_id for 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_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; +-- apply history view 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; @@ -145,6 +149,7 @@ create view migtest_e_history4_with_history as select * from migtest_e_history4 create view migtest_e_history5_with_history as select * from migtest_e_history5 union all select * from migtest_e_history5_history; +-- apply history trigger create or replace function migtest_e_history_history_version() returns trigger as $$ declare lowerTs timestamptz; 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 index 57928b00c..6cb98c684 100644 --- 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 @@ -3,6 +3,7 @@ drop view if exists migtest_e_history2_with_history; -- apply changes drop sequence if exists migtest_e_ref_seq; +-- apply alter tables alter table migtest_e_basic drop column description_file; alter table migtest_e_basic drop column old_boolean; alter table migtest_e_basic drop column old_boolean2; @@ -11,9 +12,12 @@ alter table migtest_e_history2 drop column obsolete_string1; alter table migtest_e_history2 drop column obsolete_string2; alter table migtest_e_history2_history drop column obsolete_string1; alter table migtest_e_history2_history drop column obsolete_string2; +-- apply post alter drop table if exists migtest_e_ref cascade; +-- apply history view create view migtest_e_history2_with_history as select * from migtest_e_history2 union all select * from migtest_e_history2_history; +-- apply history trigger -- changes: [drop obsolete_string1, drop obsolete_string2] create or replace function migtest_e_history2_history_version() returns trigger as $$ declare 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 274635ed6..74a65cbce 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 @@ -39,6 +39,7 @@ alter table migtest_e_history4_history alter column test_number type integer usi -- NOTE: table has @History - special migration may be necessary update migtest_e_history6 set test_number2 = 7 where test_number2 is null; +-- apply alter tables 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 alter column status2 set default 'N'; @@ -59,6 +60,7 @@ alter table migtest_e_history6 alter column test_number1 drop default; alter table migtest_e_history6 alter column test_number1 drop not 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; +-- apply post alter alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I')); alter table migtest_e_basic add constraint ck_migtest_e_basic_status2 check ( status2 in ('N','A','I')); alter table migtest_e_basic add constraint uq_migtest_e_basic_indextest2 unique (indextest2); @@ -71,17 +73,20 @@ create index if not exists ix_migtest_e_basic_indextest5 on migtest_e_basic (ind 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)); +-- foreign keys and indices 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_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; +-- apply history view 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; +-- apply history trigger -- changes: [add obsolete_string1, add obsolete_string2] create or replace function migtest_e_history2_history_version() returns trigger as $$ declare 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 304ee5057..619739537 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 @@ -10,6 +10,7 @@ drop view if exists migtest_e_history2_with_history; drop view if exists migtest_e_history5_with_history; -- apply changes drop sequence if exists migtest_e_user_seq; +-- apply alter tables 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; @@ -29,14 +30,17 @@ 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; +-- apply post alter drop table if exists migtest_e_user cascade; 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; +-- apply history view 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; +-- apply history trigger -- changes: [drop test_string2, drop test_string3, drop new_column] create or replace function migtest_e_history2_history_version() returns trigger as $$ declare 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 d23cdee00..59aabf7d3 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 @@ --1264346125, 1.0__initial.sql -94461303, 1.1.sql -713998356, 1.2__dropsFor_1.1.sql -1966394343, 1.3.sql -2043551312, 1.4__dropsFor_1.3.sql +-281382086, 1.0__initial.sql +1309236536, 1.1.sql +23016453, 1.2__dropsFor_1.1.sql +-1558640409, 1.3.sql +2062908930, 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/postgres9/1.0__initial.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/postgres9/1.0__initial.sql index 720657951..6c93a4829 100644 --- 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 @@ -167,6 +167,7 @@ create table migtest_oto_master ( constraint pk_migtest_oto_master primary key (id) ); +-- apply post alter 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; @@ -187,6 +188,7 @@ create index if not exists ix_migtest_e_basic_indextest5 on migtest_e_basic (ind 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)); +-- foreign keys and indices 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; @@ -196,6 +198,7 @@ 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; +-- apply history trigger create or replace function migtest_e_history2_history_version() returns trigger as $$ declare lowerTs timestamptz; 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 index e12c39028..9aa225d4b 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/postgres9/1.1.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/postgres9/1.1.sql @@ -65,6 +65,7 @@ alter table migtest_e_history4_history alter column test_number type bigint usin update migtest_e_history6 set test_number1 = 42 where test_number1 is null; +-- apply alter tables 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; @@ -93,6 +94,7 @@ 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; +-- apply post alter alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I','?')); alter table migtest_e_basic add constraint uq_migtest_e_basic_description unique (description); -- NOTE: table has @History - special migration may be necessary @@ -111,6 +113,7 @@ comment on table migtest_e_history is 'We have history now'; 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); +-- foreign keys and indices 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; @@ -137,6 +140,7 @@ alter table migtest_fk_set_null add constraint fk_migtest_fk_set_null_one_id for 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_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; +-- apply history view 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; @@ -145,6 +149,7 @@ create view migtest_e_history4_with_history as select * from migtest_e_history4 create view migtest_e_history5_with_history as select * from migtest_e_history5 union all select * from migtest_e_history5_history; +-- apply history trigger create or replace function migtest_e_history_history_version() returns trigger as $$ declare lowerTs timestamptz; 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 index 57928b00c..6cb98c684 100644 --- 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 @@ -3,6 +3,7 @@ drop view if exists migtest_e_history2_with_history; -- apply changes drop sequence if exists migtest_e_ref_seq; +-- apply alter tables alter table migtest_e_basic drop column description_file; alter table migtest_e_basic drop column old_boolean; alter table migtest_e_basic drop column old_boolean2; @@ -11,9 +12,12 @@ alter table migtest_e_history2 drop column obsolete_string1; alter table migtest_e_history2 drop column obsolete_string2; alter table migtest_e_history2_history drop column obsolete_string1; alter table migtest_e_history2_history drop column obsolete_string2; +-- apply post alter drop table if exists migtest_e_ref cascade; +-- apply history view create view migtest_e_history2_with_history as select * from migtest_e_history2 union all select * from migtest_e_history2_history; +-- apply history trigger -- changes: [drop obsolete_string1, drop obsolete_string2] create or replace function migtest_e_history2_history_version() returns trigger as $$ declare 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 index d8cb08843..4886f5135 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/postgres9/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/postgres9/1.3.sql @@ -39,6 +39,7 @@ alter table migtest_e_history4_history alter column test_number type integer usi -- NOTE: table has @History - special migration may be necessary update migtest_e_history6 set test_number2 = 7 where test_number2 is null; +-- apply alter tables 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 alter column status2 set default 'N'; @@ -59,6 +60,7 @@ alter table migtest_e_history6 alter column test_number1 drop default; alter table migtest_e_history6 alter column test_number1 drop not 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; +-- apply post alter alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I')); alter table migtest_e_basic add constraint ck_migtest_e_basic_status2 check ( status2 in ('N','A','I')); alter table migtest_e_basic add constraint uq_migtest_e_basic_indextest2 unique (indextest2); @@ -71,17 +73,20 @@ create index if not exists ix_migtest_e_basic_indextest5 on migtest_e_basic (ind 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)); +-- foreign keys and indices 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_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; +-- apply history view 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; +-- apply history trigger -- changes: [add obsolete_string1, add obsolete_string2] create or replace function migtest_e_history2_history_version() returns trigger as $$ declare 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 index 304ee5057..619739537 100644 --- 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 @@ -10,6 +10,7 @@ drop view if exists migtest_e_history2_with_history; drop view if exists migtest_e_history5_with_history; -- apply changes drop sequence if exists migtest_e_user_seq; +-- apply alter tables 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; @@ -29,14 +30,17 @@ 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; +-- apply post alter drop table if exists migtest_e_user cascade; 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; +-- apply history view 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; +-- apply history trigger -- changes: [drop test_string2, drop test_string3, drop new_column] create or replace function migtest_e_history2_history_version() returns trigger as $$ declare 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 index 49835ad11..2586ecb2d 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/postgres9/idx_postgres.migrations +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/postgres9/idx_postgres.migrations @@ -1,8 +1,8 @@ --568439454, 1.0__initial.sql -184884356, 1.1.sql -713998356, 1.2__dropsFor_1.1.sql --1677592464, 1.3.sql -2043551312, 1.4__dropsFor_1.3.sql +1964004480, 1.0__initial.sql +-678864681, 1.1.sql +23016453, 1.2__dropsFor_1.1.sql +858145606, 1.3.sql +2062908930, 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 index 65f593fc0..506cf08dc 100644 --- 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 @@ -162,8 +162,10 @@ create table migtest_oto_master ( constraint pk_migtest_oto_master primary key (id) ); +-- apply post alter create index ix_migtest_e_basic_indextest1 on migtest_e_basic (indextest1); create index ix_migtest_e_basic_indextest5 on migtest_e_basic (indextest5); +-- foreign keys and indices 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; 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 04bda2769..2c1ef3190 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 @@ -51,6 +51,7 @@ update migtest_e_history2 set test_string = 'unknown' where test_string is null; update migtest_e_history6 set test_number1 = 42 where test_number1 is null; +-- apply alter tables 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; @@ -78,6 +79,7 @@ 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); +-- apply post alter alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I','?')); alter table migtest_e_basic add constraint uq_migtest_e_basic_description unique (description); -- NOTE: table has @History - special migration may be necessary @@ -92,6 +94,7 @@ comment on column migtest_e_history.test_string is 'Column altered to long now'; comment on table migtest_e_history is 'We have history now'; create index ix_migtest_e_basic_indextest3 on migtest_e_basic (indextest3); create index ix_migtest_e_basic_indextest6 on migtest_e_basic (indextest6); +-- foreign keys and indices 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; 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 index 219f0c1c5..4ec79a34c 100644 --- 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 @@ -1,8 +1,10 @@ -- Migrationscripts for ebean unittest +-- apply alter tables alter table migtest_e_basic drop column description_file; 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; +-- apply post alter 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 index 17430501b..48e8e1396 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlanywhere/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlanywhere/1.3.sql @@ -33,6 +33,7 @@ update migtest_e_basic set user_id = 23 where user_id is null; -- NOTE: table has @History - special migration may be necessary update migtest_e_history6 set test_number2 = 7 where test_number2 is null; +-- apply alter tables 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 alter column status2 varchar(1); @@ -53,6 +54,7 @@ alter table migtest_e_history6 alter column test_number1 drop default; alter table migtest_e_history6 alter column test_number1 set 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; +-- apply post alter alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I')); alter table migtest_e_basic add constraint ck_migtest_e_basic_status2 check ( status2 in ('N','A','I')); alter table migtest_e_basic add constraint uq_migtest_e_basic_indextest2 unique (indextest2); @@ -62,6 +64,7 @@ comment on column migtest_e_history.test_string is ''; comment on table migtest_e_history is ''; create index ix_migtest_e_basic_indextest1 on migtest_e_basic (indextest1); create index ix_migtest_e_basic_indextest5 on migtest_e_basic (indextest5); +-- foreign keys and indices 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_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); 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 033f0a5a2..b4087d6d6 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 @@ -1,4 +1,5 @@ -- Migrationscripts for ebean unittest +-- apply alter tables 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; @@ -13,6 +14,7 @@ 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; +-- apply post alter 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 index ba9a1030d..f0ef0b25b 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 @@ --1152950940, 1.0__initial.sql --1382848803, 1.1.sql --155876508, 1.2__dropsFor_1.1.sql --1041003459, 1.3.sql -767202122, 1.4__dropsFor_1.3.sql +1724156929, 1.0__initial.sql +-507265792, 1.1.sql +1279151426, 1.2__dropsFor_1.1.sql +-1828599751, 1.3.sql +80209848, 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 index 8afe5c89e..b6bc32578 100644 --- 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 @@ -165,5 +165,6 @@ create table migtest_oto_master ( constraint pk_migtest_oto_master primary key (id) ); +-- apply post alter 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 index 2b07b3ed5..354bc0cab 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 @@ -56,6 +56,7 @@ update migtest_e_history2 set test_string = 'unknown' where test_string is null; update migtest_e_history6 set test_number1 = 42 where test_number1 is null; +-- apply alter tables 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; @@ -83,6 +84,7 @@ alter table migtest_e_history5 add column test_boolean int default 0 not null; -- not supported: 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; +-- apply post alter -- not supported: alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I','?')); -- not supported: alter table migtest_e_basic add constraint uq_migtest_e_basic_description unique (description); -- NOTE: table has @History - special migration may be necessary @@ -95,6 +97,7 @@ update migtest_e_basic set new_boolean_field = old_boolean; -- not supported: alter table migtest_e_basic add constraint uq_migtest_e_basic_indextest5 unique (indextest5); create index ix_migtest_e_basic_indextest3 on migtest_e_basic (indextest3); create index ix_migtest_e_basic_indextest6 on migtest_e_basic (indextest6); +-- foreign keys and indices -- not supported: 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; create index ix_migtest_ckey_parent_assoc_id on migtest_ckey_parent (assoc_id); -- not supported: 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/sqlite/1.2__dropsFor_1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlite/1.2__dropsFor_1.1.sql index 219f0c1c5..4ec79a34c 100644 --- 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 @@ -1,8 +1,10 @@ -- Migrationscripts for ebean unittest +-- apply alter tables alter table migtest_e_basic drop column description_file; 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; +-- apply post alter 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 index 480cde461..8b5d83414 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlite/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlite/1.3.sql @@ -33,6 +33,7 @@ update migtest_e_basic set user_id = 23 where user_id is null; -- NOTE: table has @History - special migration may be necessary update migtest_e_history6 set test_number2 = 7 where test_number2 is null; +-- apply alter tables -- not supported: alter table migtest_e_basic alter column status drop default; -- not supported: alter table migtest_e_basic alter column status set null; -- not supported: alter table migtest_e_basic alter column status2 varchar(1); @@ -53,6 +54,7 @@ alter table migtest_e_history2 add column obsolete_string2 varchar(255); -- not supported: alter table migtest_e_history6 alter column test_number1 set null; -- not supported: alter table migtest_e_history6 alter column test_number2 set default 7; -- not supported: alter table migtest_e_history6 alter column test_number2 set not null; +-- apply post alter -- not supported: alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I')); -- not supported: alter table migtest_e_basic add constraint ck_migtest_e_basic_status2 check ( status2 in ('N','A','I')); -- not supported: alter table migtest_e_basic add constraint uq_migtest_e_basic_indextest2 unique (indextest2); @@ -60,6 +62,7 @@ alter table migtest_e_history2 add column obsolete_string2 varchar(255); -- not supported: alter table migtest_e_enum add constraint ck_migtest_e_enum_test_status check ( test_status in ('N','A','I')); create index ix_migtest_e_basic_indextest1 on migtest_e_basic (indextest1); create index ix_migtest_e_basic_indextest5 on migtest_e_basic (indextest5); +-- foreign keys and indices -- not supported: 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; -- not supported: 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); 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 033f0a5a2..b4087d6d6 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 @@ -1,4 +1,5 @@ -- Migrationscripts for ebean unittest +-- apply alter tables 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; @@ -13,6 +14,7 @@ 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; +-- apply post alter 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/idx_sqlite.migrations b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlite/idx_sqlite.migrations index b1a4aa620..590cab29b 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 @@ -181087169, 1.0__initial.sql -1010963818, 1.1.sql --155876508, 1.2__dropsFor_1.1.sql --162538697, 1.3.sql -767202122, 1.4__dropsFor_1.3.sql +-2084727461, 1.0__initial.sql +1519850067, 1.1.sql +1279151426, 1.2__dropsFor_1.1.sql +557533763, 1.3.sql +80209848, 1.4__dropsFor_1.3.sql 2034589659, R__order_views_sqlite.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 index bfd1c5ad7..0efeb5d8c 100644 --- 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 @@ -159,11 +159,13 @@ create table migtest_oto_master ( constraint pk_migtest_oto_master primary key (id) ); +-- apply post alter 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; alter table migtest_e_ref add constraint uq_migtest_e_ref_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); +-- foreign keys and indices 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; @@ -173,6 +175,7 @@ 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); +-- apply history view 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', 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 index 225a2041c..df57db575 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/1.1.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/1.1.sql @@ -68,6 +68,7 @@ alter table migtest_e_history6 add default 42 for test_number1; alter table migtest_e_history6 alter column test_number2 integer; +-- apply alter tables alter table migtest_ckey_detail add one_key integer; alter table migtest_ckey_detail add two_key varchar(127); alter table migtest_ckey_parent add assoc_id integer; @@ -82,6 +83,7 @@ alter table migtest_e_history2 add new_column varchar(20); alter table migtest_e_history5 add test_boolean bit default 0 not null; alter table migtest_e_softdelete add deleted bit default 0 not null; alter table migtest_oto_child add master_id numeric(19); +-- apply post alter alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I','?')); create unique nonclustered index uq_migtest_e_basic_description on migtest_e_basic(description) where description is not null; -- NOTE: table has @History - special migration may be necessary @@ -94,6 +96,7 @@ create unique nonclustered index uq_migtest_e_basic_indextest4 on migtest_e_basi create unique nonclustered index uq_migtest_e_basic_indextest5 on migtest_e_basic(indextest5) where indextest5 is not null; create index ix_migtest_e_basic_indextest3 on migtest_e_basic (indextest3); create index ix_migtest_e_basic_indextest6 on migtest_e_basic (indextest6); +-- foreign keys and indices 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); @@ -120,6 +123,7 @@ alter table migtest_fk_set_null add constraint fk_migtest_fk_set_null_one_id for 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_oto_child add constraint fk_migtest_oto_child_master_id foreign key (master_id) references migtest_oto_master (id); +-- apply history view alter table migtest_e_history add sys_periodFrom datetime2 GENERATED ALWAYS AS ROW START NOT NULL DEFAULT SYSUTCDATETIME(), sys_periodTo datetime2 GENERATED ALWAYS AS ROW END NOT NULL DEFAULT '9999-12-31T23:59:59.9999999', diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/1.2__dropsFor_1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/1.2__dropsFor_1.1.sql index 29cff2d18..fd32a937e 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/1.2__dropsFor_1.1.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/1.2__dropsFor_1.1.sql @@ -13,4 +13,5 @@ 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_seq', 'SO') IS NOT NULL drop sequence migtest_e_ref_seq; +-- apply post alter IF OBJECT_ID('migtest_e_ref', 'U') IS NOT NULL drop table migtest_e_ref; 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 index 3f7229989..f82baec72 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/1.3.sql @@ -53,12 +53,14 @@ update migtest_e_history6 set test_number2 = 7 where test_number2 is null; EXEC usp_ebean_drop_default_constraint migtest_e_history6, test_number2; alter table migtest_e_history6 alter column test_number2 integer not null; alter table migtest_e_history6 add default 7 for test_number2; +-- apply alter tables alter table migtest_e_basic add description_file image; 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; alter table migtest_e_history2 add obsolete_string1 varchar(255); alter table migtest_e_history2 add obsolete_string2 varchar(255); +-- apply post alter alter table migtest_e_ref add constraint uq_migtest_e_ref_name unique (name); alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I')); alter table migtest_e_basic add constraint ck_migtest_e_basic_status2 check ( status2 in ('N','A','I')); @@ -67,11 +69,13 @@ create unique nonclustered index uq_migtest_e_basic_indextest6 on migtest_e_basi alter table migtest_e_enum add constraint ck_migtest_e_enum_test_status check ( test_status in ('N','A','I')); create index ix_migtest_e_basic_indextest1 on migtest_e_basic (indextest1); create index ix_migtest_e_basic_indextest5 on migtest_e_basic (indextest5); +-- foreign keys and indices 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_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); +-- apply history view -- 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/sqlserver16/1.4__dropsFor_1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/1.4__dropsFor_1.3.sql index 43159ecc0..953d8abd0 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/1.4__dropsFor_1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/1.4__dropsFor_1.3.sql @@ -29,10 +29,12 @@ 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_seq', 'SO') IS NOT NULL drop sequence migtest_e_user_seq; +-- apply post alter IF OBJECT_ID('migtest_e_user', 'U') IS NOT NULL drop table migtest_e_user; 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; +-- apply history view -- 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/sqlserver16/idx_sqlserver.migrations b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/idx_sqlserver.migrations index b3410a59f..ab24079d6 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/idx_sqlserver.migrations +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/idx_sqlserver.migrations @@ -1,8 +1,8 @@ -2122378240, I__create_procs.sql --1715735485, 1.0__initial.sql -657469133, 1.1.sql -1140908215, 1.2__dropsFor_1.1.sql --1997744448, 1.3.sql -1468404025, 1.4__dropsFor_1.3.sql +1414352463, 1.0__initial.sql +-1012657311, 1.1.sql +1667088563, 1.2__dropsFor_1.1.sql +-223101666, 1.3.sql +1725174843, 1.4__dropsFor_1.3.sql 1607822082, R__order_views_mssql.sql diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/1.0__initial.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/1.0__initial.sql index c638aac4c..1ee38b3f3 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/1.0__initial.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/1.0__initial.sql @@ -181,11 +181,13 @@ create table migtest_oto_master ( ); create sequence migtest_oto_master_seq as bigint start with 1; +-- apply post alter 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; alter table migtest_e_ref add constraint uq_migtest_e_ref_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); +-- foreign keys and indices 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; @@ -195,6 +197,7 @@ 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); +-- apply history view 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', diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/1.1.sql index f891b635b..839f25225 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/1.1.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/1.1.sql @@ -69,6 +69,7 @@ alter table migtest_e_history6 add default 42 for test_number1; alter table migtest_e_history6 alter column test_number2 integer; +-- apply alter tables alter table migtest_ckey_detail add one_key integer; alter table migtest_ckey_detail add two_key nvarchar(127); alter table migtest_ckey_parent add assoc_id integer; @@ -83,6 +84,7 @@ alter table migtest_e_history2 add new_column nvarchar(20); alter table migtest_e_history5 add test_boolean bit default 0 not null; alter table migtest_e_softdelete add deleted bit default 0 not null; alter table migtest_oto_child add master_id numeric(19); +-- apply post alter alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I','?')); create unique nonclustered index uq_migtest_e_basic_description on migtest_e_basic(description) where description is not null; -- NOTE: table has @History - special migration may be necessary @@ -95,6 +97,7 @@ create unique nonclustered index uq_migtest_e_basic_indextest4 on migtest_e_basi create unique nonclustered index uq_migtest_e_basic_indextest5 on migtest_e_basic(indextest5) where indextest5 is not null; create index ix_migtest_e_basic_indextest3 on migtest_e_basic (indextest3); create index ix_migtest_e_basic_indextest6 on migtest_e_basic (indextest6); +-- foreign keys and indices 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); @@ -121,6 +124,7 @@ alter table migtest_fk_set_null add constraint fk_migtest_fk_set_null_one_id for 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_oto_child add constraint fk_migtest_oto_child_master_id foreign key (master_id) references migtest_oto_master (id); +-- apply history view alter table migtest_e_history add sys_periodFrom datetime2 GENERATED ALWAYS AS ROW START NOT NULL DEFAULT SYSUTCDATETIME(), sys_periodTo datetime2 GENERATED ALWAYS AS ROW END NOT NULL DEFAULT '9999-12-31T23:59:59.9999999', diff --git a/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 index 29cff2d18..fd32a937e 100644 --- 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 @@ -13,4 +13,5 @@ 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_seq', 'SO') IS NOT NULL drop sequence migtest_e_ref_seq; +-- apply post alter IF OBJECT_ID('migtest_e_ref', 'U') IS NOT NULL drop table migtest_e_ref; diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/1.3.sql index 89ecc0a62..d7b8151ec 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/1.3.sql @@ -54,12 +54,14 @@ update migtest_e_history6 set test_number2 = 7 where test_number2 is null; EXEC usp_ebean_drop_default_constraint migtest_e_history6, test_number2; alter table migtest_e_history6 alter column test_number2 integer not null; alter table migtest_e_history6 add default 7 for test_number2; +-- apply alter tables alter table migtest_e_basic add description_file image; 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; alter table migtest_e_history2 add obsolete_string1 nvarchar(255); alter table migtest_e_history2 add obsolete_string2 nvarchar(255); +-- apply post alter alter table migtest_e_ref add constraint uq_migtest_e_ref_name unique (name); alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I')); alter table migtest_e_basic add constraint ck_migtest_e_basic_status2 check ( status2 in ('N','A','I')); @@ -68,11 +70,13 @@ create unique nonclustered index uq_migtest_e_basic_indextest6 on migtest_e_basi alter table migtest_e_enum add constraint ck_migtest_e_enum_test_status check ( test_status in ('N','A','I')); create index ix_migtest_e_basic_indextest1 on migtest_e_basic (indextest1); create index ix_migtest_e_basic_indextest5 on migtest_e_basic (indextest5); +-- foreign keys and indices 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_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); +-- apply history view -- 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/sqlserver17/1.4__dropsFor_1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/1.4__dropsFor_1.3.sql index 43159ecc0..953d8abd0 100644 --- 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 @@ -29,10 +29,12 @@ 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_seq', 'SO') IS NOT NULL drop sequence migtest_e_user_seq; +-- apply post alter IF OBJECT_ID('migtest_e_user', 'U') IS NOT NULL drop table migtest_e_user; 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; +-- apply history view -- 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/sqlserver17/idx_sqlserver.migrations b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/idx_sqlserver.migrations index 1c9c36667..590cf2f31 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/idx_sqlserver.migrations +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/idx_sqlserver.migrations @@ -1,8 +1,8 @@ -2122378240, I__create_procs.sql -2038422044, 1.0__initial.sql -137958256, 1.1.sql -1140908215, 1.2__dropsFor_1.1.sql -1570214773, 1.3.sql -1468404025, 1.4__dropsFor_1.3.sql +1292882955, 1.0__initial.sql +-494353436, 1.1.sql +1667088563, 1.2__dropsFor_1.1.sql +-1529225098, 1.3.sql +1725174843, 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 index 9799b4e3f..f11a72a97 100644 --- 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 @@ -167,6 +167,7 @@ create table migtest_oto_master ( constraint pk_migtest_oto_master primary key (id) ); +-- apply post alter create table migtest_e_history2_history( id integer, test_string varchar(255), @@ -207,6 +208,7 @@ create view migtest_e_history6_with_history as select * from migtest_e_history6 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); +-- foreign keys and indices 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; @@ -216,6 +218,7 @@ 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; +-- apply history trigger create or replace function migtest_e_history2_history_version() returns trigger as $$ declare lowerTs timestamptz; 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 32f7d2535..e80bbe2f3 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 @@ -60,6 +60,7 @@ alter table migtest_e_history4_history alter column test_number type bigint usin update migtest_e_history6 set test_number1 = 42 where test_number1 is null; +-- apply alter tables 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; @@ -88,6 +89,7 @@ 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; +-- apply post alter alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I','?')); alter table migtest_e_basic add constraint uq_migtest_e_basic_description unique (description); -- NOTE: table has @History - special migration may be necessary @@ -109,6 +111,7 @@ comment on column migtest_e_history.test_string is 'Column altered to long now'; comment on table migtest_e_history is 'We have history now'; 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); +-- foreign keys and indices 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; @@ -135,6 +138,7 @@ alter table migtest_fk_set_null add constraint fk_migtest_fk_set_null_one_id for 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_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; +-- apply history view 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; @@ -143,6 +147,7 @@ create view migtest_e_history4_with_history as select * from migtest_e_history4 create view migtest_e_history5_with_history as select * from migtest_e_history5 union all select * from migtest_e_history5_history; +-- apply history trigger create or replace function migtest_e_history_history_version() returns trigger as $$ declare lowerTs timestamptz; 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 index 57928b00c..6cb98c684 100644 --- 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 @@ -3,6 +3,7 @@ drop view if exists migtest_e_history2_with_history; -- apply changes drop sequence if exists migtest_e_ref_seq; +-- apply alter tables alter table migtest_e_basic drop column description_file; alter table migtest_e_basic drop column old_boolean; alter table migtest_e_basic drop column old_boolean2; @@ -11,9 +12,12 @@ alter table migtest_e_history2 drop column obsolete_string1; alter table migtest_e_history2 drop column obsolete_string2; alter table migtest_e_history2_history drop column obsolete_string1; alter table migtest_e_history2_history drop column obsolete_string2; +-- apply post alter drop table if exists migtest_e_ref cascade; +-- apply history view create view migtest_e_history2_with_history as select * from migtest_e_history2 union all select * from migtest_e_history2_history; +-- apply history trigger -- changes: [drop obsolete_string1, drop obsolete_string2] create or replace function migtest_e_history2_history_version() returns trigger as $$ declare 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 index fd9fbec2f..167a45ae4 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/yugabyte/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/yugabyte/1.3.sql @@ -39,6 +39,7 @@ alter table migtest_e_history4_history alter column test_number type integer usi -- NOTE: table has @History - special migration may be necessary update migtest_e_history6 set test_number2 = 7 where test_number2 is null; +-- apply alter tables 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 alter column status2 set default 'N'; @@ -59,6 +60,7 @@ alter table migtest_e_history6 alter column test_number1 drop default; alter table migtest_e_history6 alter column test_number1 drop not 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; +-- apply post alter alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I')); alter table migtest_e_basic add constraint ck_migtest_e_basic_status2 check ( status2 in ('N','A','I')); alter table migtest_e_basic add constraint uq_migtest_e_basic_indextest2 unique (indextest2); @@ -68,17 +70,20 @@ comment on column migtest_e_history.test_string is ''; comment on table migtest_e_history is ''; 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); +-- foreign keys and indices 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_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; +-- apply history view 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; +-- apply history trigger -- changes: [add obsolete_string1, add obsolete_string2] create or replace function migtest_e_history2_history_version() returns trigger as $$ declare 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 304ee5057..619739537 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 @@ -10,6 +10,7 @@ drop view if exists migtest_e_history2_with_history; drop view if exists migtest_e_history5_with_history; -- apply changes drop sequence if exists migtest_e_user_seq; +-- apply alter tables 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; @@ -29,14 +30,17 @@ 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; +-- apply post alter drop table if exists migtest_e_user cascade; 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; +-- apply history view 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; +-- apply history trigger -- changes: [drop test_string2, drop test_string3, drop new_column] create or replace function migtest_e_history2_history_version() returns trigger as $$ declare 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 50390783f..fb0f3b53b 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 @@ --1438254935, 1.0__initial.sql --47140703, 1.1.sql -713998356, 1.2__dropsFor_1.1.sql -593308024, 1.3.sql -2043551312, 1.4__dropsFor_1.3.sql +-1227820933, 1.0__initial.sql +750187475, 1.1.sql +23016453, 1.2__dropsFor_1.1.sql +-1539328455, 1.3.sql +2062908930, 1.4__dropsFor_1.3.sql 561281075, R__order_views.sql From a8f390c3b7ab9d49d4c7f88575f1f60c059426fc Mon Sep 17 00:00:00 2001 From: Roland Praml Date: Thu, 10 Mar 2022 13:31:12 +0100 Subject: [PATCH 073/114] No effective DDL change - removed obsolete whitespaces --- .../io/ebeaninternal/dbmigration/ddlgeneration/DdlWrite.java | 3 +-- .../dbmigration/ddlgeneration/platform/BaseTableDdl.java | 2 -- 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/DdlWrite.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/DdlWrite.java index 463c05b48..701887824 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/DdlWrite.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/DdlWrite.java @@ -207,7 +207,7 @@ public class DdlWrite { target.append(dropAll.getBuffer()); } } - + /** * Returns all create statements. Mainly used for unit-tests */ @@ -223,5 +223,4 @@ public class DdlWrite { return sb.toString(); } - } diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/BaseTableDdl.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/BaseTableDdl.java index aa0241532..dd1a2f282 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/BaseTableDdl.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/BaseTableDdl.java @@ -664,7 +664,6 @@ public class BaseTableDdl implements TableDdl { writeForeignKey(writer, tableName, column); } } - writer.apply().end(); } /** @@ -696,7 +695,6 @@ public class BaseTableDdl implements TableDdl { regenerateHistoryTriggers(tableName, HistoryTableUpdate.Change.DROP, dropColumn.getColumnName()); alterTableDropColumn(writer, historyTable(tableName), dropColumn.getColumnName()); } - writer.apply().end(); } /** From e4ddcbd40accdfd6947dcda96cc15c4e92349905 Mon Sep 17 00:00:00 2001 From: Roland Praml Date: Thu, 10 Mar 2022 13:39:59 +0100 Subject: [PATCH 074/114] Reference scripts --- .../assert/BaseDdlHandlerTest/baseApply.sql | 2 -- .../migrationtest/dbmigration/clickhouse/1.1.sql | 7 ------- .../migrationtest/dbmigration/clickhouse/1.3.sql | 2 -- .../migrationtest/dbmigration/cockroach/1.1.sql | 7 ------- .../migrationtest/dbmigration/cockroach/1.3.sql | 2 -- .../migrationtest/dbmigration/db2fori/1.1.sql | 7 ------- .../migrationtest/dbmigration/db2fori/1.3.sql | 2 -- .../migrationtest/dbmigration/db2legacy/1.1.sql | 7 ------- .../migrationtest/dbmigration/db2legacy/1.3.sql | 2 -- .../migrationtest/dbmigration/db2luw/1.1.sql | 7 ------- .../migrationtest/dbmigration/db2luw/1.3.sql | 2 -- .../migrationtest/dbmigration/db2zos/1.1.sql | 7 ------- .../migrationtest/dbmigration/db2zos/1.3.sql | 2 -- .../migrationtest/dbmigration/generic/1.1.sql | 7 ------- .../migrationtest/dbmigration/generic/1.3.sql | 2 -- .../resources/migrationtest/dbmigration/h2/1.1.sql | 7 ------- .../resources/migrationtest/dbmigration/h2/1.3.sql | 2 -- .../migrationtest/dbmigration/hana/1.1.sql | 7 ------- .../dbmigration/hana/1.2__dropsFor_1.1.sql | 2 -- .../migrationtest/dbmigration/hana/1.3.sql | 2 -- .../dbmigration/hana/1.4__dropsFor_1.3.sql | 6 ------ .../migrationtest/dbmigration/hsqldb/1.1.sql | 7 ------- .../migrationtest/dbmigration/hsqldb/1.3.sql | 2 -- .../dbmigration/mariadb-noprocs/1.1.sql | 7 ------- .../dbmigration/mariadb-noprocs/1.3.sql | 2 -- .../migrationtest/dbmigration/mariadb/1.1.sql | 7 ------- .../dbmigration/mariadb/1.2__dropsFor_1.1.sql | 6 ------ .../migrationtest/dbmigration/mariadb/1.3.sql | 2 -- .../dbmigration/mariadb/1.4__dropsFor_1.3.sql | 14 -------------- .../migrationtest/dbmigration/mysql/1.1.sql | 7 ------- .../dbmigration/mysql/1.2__dropsFor_1.1.sql | 6 ------ .../migrationtest/dbmigration/mysql/1.3.sql | 2 -- .../dbmigration/mysql/1.4__dropsFor_1.3.sql | 14 -------------- .../migrationtest/dbmigration/mysql55/1.1.sql | 7 ------- .../dbmigration/mysql55/1.2__dropsFor_1.1.sql | 6 ------ .../migrationtest/dbmigration/mysql55/1.3.sql | 2 -- .../dbmigration/mysql55/1.4__dropsFor_1.3.sql | 14 -------------- .../migrationtest/dbmigration/nuodb/1.1.sql | 7 ------- .../migrationtest/dbmigration/nuodb/1.3.sql | 2 -- .../migrationtest/dbmigration/oracle/1.1.sql | 7 ------- .../migrationtest/dbmigration/oracle/1.3.sql | 2 -- .../migrationtest/dbmigration/oracle11/1.1.sql | 7 ------- .../migrationtest/dbmigration/oracle11/1.3.sql | 2 -- .../migrationtest/dbmigration/postgres/1.1.sql | 7 ------- .../migrationtest/dbmigration/postgres/1.3.sql | 2 -- .../migrationtest/dbmigration/postgres9/1.1.sql | 7 ------- .../migrationtest/dbmigration/postgres9/1.3.sql | 2 -- .../migrationtest/dbmigration/sqlanywhere/1.1.sql | 7 ------- .../migrationtest/dbmigration/sqlanywhere/1.3.sql | 2 -- .../migrationtest/dbmigration/sqlite/1.1.sql | 7 ------- .../migrationtest/dbmigration/sqlite/1.3.sql | 2 -- .../migrationtest/dbmigration/sqlserver16/1.1.sql | 7 ------- .../dbmigration/sqlserver16/1.2__dropsFor_1.1.sql | 6 ------ .../migrationtest/dbmigration/sqlserver16/1.3.sql | 2 -- .../dbmigration/sqlserver16/1.4__dropsFor_1.3.sql | 14 -------------- .../migrationtest/dbmigration/sqlserver17/1.1.sql | 7 ------- .../dbmigration/sqlserver17/1.2__dropsFor_1.1.sql | 6 ------ .../migrationtest/dbmigration/sqlserver17/1.3.sql | 2 -- .../dbmigration/sqlserver17/1.4__dropsFor_1.3.sql | 14 -------------- .../migrationtest/dbmigration/yugabyte/1.1.sql | 7 ------- .../migrationtest/dbmigration/yugabyte/1.3.sql | 2 -- 61 files changed, 326 deletions(-) diff --git a/ebean-ddl-generator/src/test/resources/assert/BaseDdlHandlerTest/baseApply.sql b/ebean-ddl-generator/src/test/resources/assert/BaseDdlHandlerTest/baseApply.sql index 1513ea2b6..46f430bce 100644 --- a/ebean-ddl-generator/src/test/resources/assert/BaseDdlHandlerTest/baseApply.sql +++ b/ebean-ddl-generator/src/test/resources/assert/BaseDdlHandlerTest/baseApply.sql @@ -7,8 +7,6 @@ create table foo ( ); comment on table foo is 'comment'; - - -- apply alter tables alter table foo add column added_to_foo varchar(20); alter table foo drop column col2; 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 b64384f89..56fd182db 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 @@ -26,24 +26,17 @@ create table migtest_mtm_m_phone_numbers ( ) ENGINE = Log(); - - update migtest_e_basic set status = 'A' where status is null; -- rename all collisions; insert into migtest_e_user (id) select distinct user_id from migtest_e_basic; - -- NOTE: table has @History - special migration may be necessary update migtest_e_history2 set test_string = 'unknown' where test_string is null; - - -- NOTE: table has @History - special migration may be necessary update migtest_e_history6 set test_number1 = 42 where test_number1 is null; - - -- apply alter tables 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.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/clickhouse/1.3.sql index 98277088c..155817baa 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/clickhouse/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/clickhouse/1.3.sql @@ -19,8 +19,6 @@ update migtest_e_basic set status2 = 'N' where status2 is null; update migtest_e_basic set user_id = 23 where user_id is null; - - -- NOTE: table has @History - special migration may be necessary update migtest_e_history6 set test_number2 = 7 where test_number2 is null; -- apply alter tables 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 ece294d59..0d9764f59 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 @@ -33,24 +33,17 @@ create table migtest_mtm_m_phone_numbers ( ); - - update migtest_e_basic set status = 'A' where status is null; -- rename all collisions; insert into migtest_e_user (id) select distinct user_id from migtest_e_basic; - -- NOTE: table has @History - special migration may be necessary update migtest_e_history2 set test_string = 'unknown' where test_string is null; - - -- NOTE: table has @History - special migration may be necessary update migtest_e_history6 set test_number1 = 42 where test_number1 is null; - - -- apply alter tables 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/cockroach/1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/cockroach/1.3.sql index 7c0c0630c..f25812e9b 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/cockroach/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/cockroach/1.3.sql @@ -29,8 +29,6 @@ update migtest_e_basic set status2 = 'N' where status2 is null; update migtest_e_basic set user_id = 23 where user_id is null; - - -- NOTE: table has @History - special migration may be necessary update migtest_e_history6 set test_number2 = 7 where test_number2 is null; -- apply alter tables 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 index f54e7696c..f5892d818 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/db2fori/1.1.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2fori/1.1.sql @@ -33,8 +33,6 @@ create table migtest_mtm_m_phone_numbers ( ); - - update migtest_e_basic set status = 'A' where status is null; -- db2 does not support parial null indices :( - so we have to clean; @@ -42,16 +40,11 @@ update migtest_e_basic set status = 'N' where id = 1; insert into migtest_e_user (id) select distinct user_id from migtest_e_basic; - -- NOTE: table has @History - special migration may be necessary update migtest_e_history2 set test_string = 'unknown' where test_string is null; - - -- NOTE: table has @History - special migration may be necessary update migtest_e_history6 set test_number1 = 42 where test_number1 is null; - - -- apply alter tables 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/db2fori/1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/db2fori/1.3.sql index 4a6495765..58eac737a 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/db2fori/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2fori/1.3.sql @@ -28,8 +28,6 @@ update migtest_e_basic set status2 = 'N' where status2 is null; update migtest_e_basic set user_id = 23 where user_id is null; - - -- NOTE: table has @History - special migration may be necessary update migtest_e_history6 set test_number2 = 7 where test_number2 is null; -- apply alter tables 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 index d682d60a1..97a658a2c 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/db2legacy/1.1.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2legacy/1.1.sql @@ -33,8 +33,6 @@ create table migtest_mtm_m_phone_numbers ( ); - - update migtest_e_basic set status = 'A' where status is null; -- db2 does not support parial null indices :( - so we have to clean; @@ -42,16 +40,11 @@ update migtest_e_basic set status = 'N' where id = 1; insert into migtest_e_user (id) select distinct user_id from migtest_e_basic; - -- NOTE: table has @History - special migration may be necessary update migtest_e_history2 set test_string = 'unknown' where test_string is null; - - -- NOTE: table has @History - special migration may be necessary update migtest_e_history6 set test_number1 = 42 where test_number1 is null; - - -- apply alter tables 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/db2legacy/1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/db2legacy/1.3.sql index 181e31aab..ab7160575 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/db2legacy/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2legacy/1.3.sql @@ -28,8 +28,6 @@ update migtest_e_basic set status2 = 'N' where status2 is null; update migtest_e_basic set user_id = 23 where user_id is null; - - -- NOTE: table has @History - special migration may be necessary update migtest_e_history6 set test_number2 = 7 where test_number2 is null; -- apply alter tables diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/db2luw/1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/db2luw/1.1.sql index c17747fe9..ad5b24dae 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/db2luw/1.1.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2luw/1.1.sql @@ -33,8 +33,6 @@ create table migtest_mtm_m_phone_numbers ( ); - - update migtest_e_basic set status = 'A' where status is null; -- db2 does not support parial null indices :( - so we have to clean; @@ -42,16 +40,11 @@ update migtest_e_basic set status = 'N' where id = 1; insert into migtest_e_user (id) select distinct user_id from migtest_e_basic; - -- NOTE: table has @History - special migration may be necessary update migtest_e_history2 set test_string = 'unknown' where test_string is null; - - -- NOTE: table has @History - special migration may be necessary update migtest_e_history6 set test_number1 = 42 where test_number1 is null; - - -- apply alter tables 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/db2luw/1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/db2luw/1.3.sql index 5f1ca5a3c..082757e88 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/db2luw/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2luw/1.3.sql @@ -28,8 +28,6 @@ update migtest_e_basic set status2 = 'N' where status2 is null; update migtest_e_basic set user_id = 23 where user_id is null; - - -- NOTE: table has @History - special migration may be necessary update migtest_e_history6 set test_number2 = 7 where test_number2 is null; -- apply alter tables 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 index c17747fe9..ad5b24dae 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/db2zos/1.1.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2zos/1.1.sql @@ -33,8 +33,6 @@ create table migtest_mtm_m_phone_numbers ( ); - - update migtest_e_basic set status = 'A' where status is null; -- db2 does not support parial null indices :( - so we have to clean; @@ -42,16 +40,11 @@ update migtest_e_basic set status = 'N' where id = 1; insert into migtest_e_user (id) select distinct user_id from migtest_e_basic; - -- NOTE: table has @History - special migration may be necessary update migtest_e_history2 set test_string = 'unknown' where test_string is null; - - -- NOTE: table has @History - special migration may be necessary update migtest_e_history6 set test_number1 = 42 where test_number1 is null; - - -- apply alter tables 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/db2zos/1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/db2zos/1.3.sql index 5f1ca5a3c..082757e88 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/db2zos/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2zos/1.3.sql @@ -28,8 +28,6 @@ update migtest_e_basic set status2 = 'N' where status2 is null; update migtest_e_basic set user_id = 23 where user_id is null; - - -- NOTE: table has @History - special migration may be necessary update migtest_e_history6 set test_number2 = 7 where test_number2 is null; -- apply alter tables 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 e1d5da6b9..8bb1a8a35 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 @@ -33,24 +33,17 @@ create table migtest_mtm_m_phone_numbers ( ); - - update migtest_e_basic set status = 'A' where status is null; -- rename all collisions; insert into migtest_e_user (id) select distinct user_id from migtest_e_basic; - -- NOTE: table has @History - special migration may be necessary update migtest_e_history2 set test_string = 'unknown' where test_string is null; - - -- NOTE: table has @History - special migration may be necessary update migtest_e_history6 set test_number1 = 42 where test_number1 is null; - - -- apply alter tables 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/generic/1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/generic/1.3.sql index d16cbd509..646c698cc 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/generic/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/generic/1.3.sql @@ -29,8 +29,6 @@ update migtest_e_basic set status2 = 'N' where status2 is null; update migtest_e_basic set user_id = 23 where user_id is null; - - -- NOTE: table has @History - special migration may be necessary update migtest_e_history6 set test_number2 = 7 where test_number2 is null; -- apply alter tables 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 3b0696cb5..186ab2a4c 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 @@ -37,26 +37,19 @@ create table migtest_mtm_m_phone_numbers ( ); - - update migtest_e_basic set status = 'A' where status is null; -- rename all collisions; insert into migtest_e_user (id) select distinct user_id from migtest_e_basic; - alter table migtest_e_history add column sys_period_start timestamp default now(); alter table migtest_e_history add column sys_period_end timestamp; -- NOTE: table has @History - special migration may be necessary update migtest_e_history2 set test_string = 'unknown' where test_string is null; - - -- NOTE: table has @History - special migration may be necessary update migtest_e_history6 set test_number1 = 42 where test_number1 is null; - - -- apply alter tables 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/h2/1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/h2/1.3.sql index 246a5ca88..b4162cd3b 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/h2/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/h2/1.3.sql @@ -32,8 +32,6 @@ update migtest_e_basic set status2 = 'N' where status2 is null; update migtest_e_basic set user_id = 23 where user_id is null; - - -- NOTE: table has @History - special migration may be necessary update migtest_e_history6 set test_number2 = 7 where test_number2 is null; -- apply alter tables 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 967a98d1b..6127958eb 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 @@ -75,29 +75,22 @@ create column table migtest_mtm_m_phone_numbers ( ); - - update migtest_e_basic set status = 'A' where status is null; -- rename all collisions; insert into migtest_e_user (id) select distinct user_id from migtest_e_basic; - alter table migtest_e_history2 drop system versioning; -- 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_history3 drop system versioning; alter table migtest_e_history4 drop system versioning; alter table migtest_e_history5 drop system versioning; - alter table migtest_e_history6 drop system versioning; -- NOTE: table has @History - special migration may be necessary update migtest_e_history6 set test_number1 = 42 where test_number1 is null; - - -- apply alter tables alter table migtest_ckey_detail add (one_key integer, two_key nvarchar(127)); 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 index 3bc9135cd..14a60d921 100644 --- 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 @@ -1,8 +1,6 @@ -- Migrationscripts for ebean unittest -- apply changes alter table migtest_e_history2 drop system versioning; - - -- apply alter tables CALL usp_ebean_drop_column('migtest_e_basic', 'description_file'); CALL usp_ebean_drop_column('migtest_e_basic', 'old_boolean'); 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 index c5997a1b8..4a9911a7a 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/hana/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/hana/1.3.sql @@ -88,9 +88,7 @@ create column table migtest_e_ref ( update migtest_e_basic set status2 = 'N' where status2 is null; update migtest_e_basic set user_id = 23 where user_id is null; - alter table migtest_e_history2 drop system versioning; - alter table migtest_e_history3 drop system versioning; alter table migtest_e_history4 drop system versioning; alter table migtest_e_history6 drop system versioning; 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 d80ecf525..d49afa4be 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 @@ -6,13 +6,7 @@ alter table migtest_e_history drop (sys_period_start,sys_period_end); drop table migtest_e_history_history cascade; -- apply changes alter table migtest_e_history2 drop system versioning; - - - alter table migtest_e_history5 drop system versioning; - - - -- apply alter tables CALL usp_ebean_drop_column('migtest_ckey_detail', 'one_key'); CALL usp_ebean_drop_column('migtest_ckey_detail', 'two_key'); 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 a2b45fdc4..74863033d 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 @@ -33,24 +33,17 @@ create table migtest_mtm_m_phone_numbers ( ); - - update migtest_e_basic set status = 'A' where status is null; -- rename all collisions; insert into migtest_e_user (id) select distinct user_id from migtest_e_basic; - -- NOTE: table has @History - special migration may be necessary update migtest_e_history2 set test_string = 'unknown' where test_string is null; - - -- NOTE: table has @History - special migration may be necessary update migtest_e_history6 set test_number1 = 42 where test_number1 is null; - - -- apply alter tables 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/hsqldb/1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/hsqldb/1.3.sql index 9f375ed10..bd7a074f3 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/hsqldb/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/hsqldb/1.3.sql @@ -29,8 +29,6 @@ update migtest_e_basic set status2 = 'N' where status2 is null; update migtest_e_basic set user_id = 23 where user_id is null; - - -- NOTE: table has @History - special migration may be necessary update migtest_e_history6 set test_number2 = 7 where test_number2 is null; -- apply alter tables 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 7f604446f..ddfb0a1f8 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 @@ -30,8 +30,6 @@ create table migtest_mtm_m_phone_numbers ( ); - - update migtest_e_basic set status = 'A' where status is null; alter table migtest_e_basic modify status varchar(1) not null default 'A'; alter table migtest_e_basic modify status2 varchar(127); @@ -40,23 +38,18 @@ alter table migtest_e_basic modify status2 varchar(127); insert into migtest_e_user (id) select distinct user_id from migtest_e_basic; alter table migtest_e_basic modify user_id integer; - alter table migtest_e_history modify test_string bigint; -- 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 modify test_string varchar(255) not null default 'unknown'; - alter table migtest_e_history4 modify test_number bigint; - -- 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 integer not null default 42; alter table migtest_e_history6 modify test_number2 integer; - - -- apply alter tables 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/mariadb-noprocs/1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb-noprocs/1.3.sql index d27de2829..ec0d2b884 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb-noprocs/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb-noprocs/1.3.sql @@ -28,9 +28,7 @@ alter table migtest_e_basic modify status2 varchar(1) not null default 'N'; update migtest_e_basic set user_id = 23 where user_id is null; alter table migtest_e_basic modify user_id integer not null default 23; - alter table migtest_e_history2 modify test_string varchar(255); - alter table migtest_e_history4 modify test_number integer; alter table migtest_e_history6 modify test_number1 integer; 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 7f604446f..ddfb0a1f8 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 @@ -30,8 +30,6 @@ create table migtest_mtm_m_phone_numbers ( ); - - update migtest_e_basic set status = 'A' where status is null; alter table migtest_e_basic modify status varchar(1) not null default 'A'; alter table migtest_e_basic modify status2 varchar(127); @@ -40,23 +38,18 @@ alter table migtest_e_basic modify status2 varchar(127); insert into migtest_e_user (id) select distinct user_id from migtest_e_basic; alter table migtest_e_basic modify user_id integer; - alter table migtest_e_history modify test_string bigint; -- 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 modify test_string varchar(255) not null default 'unknown'; - alter table migtest_e_history4 modify test_number bigint; - -- 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 integer not null default 42; alter table migtest_e_history6 modify test_number2 integer; - - -- apply alter tables 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/mariadb/1.2__dropsFor_1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb/1.2__dropsFor_1.1.sql index 2a8c1ece1..3a55160b8 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,17 +1,11 @@ -- Migrationscripts for ebean unittest -- apply changes CALL usp_ebean_drop_column('migtest_e_basic', 'description_file'); - 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', 'obsolete_string2'); - drop sequence if exists migtest_e_ref_seq; -- apply post alter drop table if exists migtest_e_ref; 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 index d27de2829..ec0d2b884 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb/1.3.sql @@ -28,9 +28,7 @@ alter table migtest_e_basic modify status2 varchar(1) not null default 'N'; update migtest_e_basic set user_id = 23 where user_id is null; alter table migtest_e_basic modify user_id integer not null default 23; - alter table migtest_e_history2 modify test_string varchar(255); - alter table migtest_e_history4 modify test_number integer; alter table migtest_e_history6 modify test_number1 integer; 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 950cde542..13b52ccec 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,33 +1,19 @@ -- Migrationscripts for ebean unittest -- 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', 'test_string3'); - CALL usp_ebean_drop_column('migtest_e_history2', 'new_column'); - CALL usp_ebean_drop_column('migtest_e_history5', 'test_boolean'); - CALL usp_ebean_drop_column('migtest_e_softdelete', 'deleted'); - CALL usp_ebean_drop_column('migtest_oto_child', 'master_id'); - drop sequence if exists migtest_e_user_seq; -- apply post alter drop table if exists migtest_e_user; 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 44fefb2e3..a4c4ca642 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 @@ -34,8 +34,6 @@ create table migtest_mtm_m_phone_numbers ( ); - - update migtest_e_basic set status = 'A' where status is null; alter table migtest_e_basic modify status varchar(1) not null default 'A'; alter table migtest_e_basic modify status2 varchar(127); @@ -44,7 +42,6 @@ alter table migtest_e_basic modify status2 varchar(127); insert into migtest_e_user (id) select distinct user_id from migtest_e_basic; alter table migtest_e_basic modify user_id integer; - 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); alter table migtest_e_history modify test_string bigint; @@ -52,17 +49,13 @@ alter table migtest_e_history modify 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 modify test_string varchar(255) not null default 'unknown'; - alter table migtest_e_history4 modify test_number bigint; alter table migtest_e_history4_history modify test_number bigint; - -- 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 integer not null default 42; alter table migtest_e_history6 modify test_number2 integer; - - -- apply alter tables 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/mysql/1.2__dropsFor_1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/mysql/1.2__dropsFor_1.1.sql index acaf96272..72d889059 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,19 +3,13 @@ drop view if exists migtest_e_history2_with_history; -- apply changes CALL usp_ebean_drop_column('migtest_e_basic', 'description_file'); - 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'); - -- apply post alter drop table if exists migtest_e_ref; -- apply history view 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 index 21e91ff96..5dee0b540 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/mysql/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/mysql/1.3.sql @@ -31,9 +31,7 @@ alter table migtest_e_basic modify status2 varchar(1) not null default 'N'; update migtest_e_basic set user_id = 23 where user_id is null; alter table migtest_e_basic modify user_id integer not null default 23; - alter table migtest_e_history2 modify test_string 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 modify test_number1 integer; 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 f257f1ebb..38b1d2503 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 @@ -9,39 +9,25 @@ 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_history', 'sys_period_start'); CALL usp_ebean_drop_column('migtest_e_history', 'sys_period_end'); 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'); - -- apply post alter 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/mysql55/1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/mysql55/1.1.sql index 44fefb2e3..a4c4ca642 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/mysql55/1.1.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/mysql55/1.1.sql @@ -34,8 +34,6 @@ create table migtest_mtm_m_phone_numbers ( ); - - update migtest_e_basic set status = 'A' where status is null; alter table migtest_e_basic modify status varchar(1) not null default 'A'; alter table migtest_e_basic modify status2 varchar(127); @@ -44,7 +42,6 @@ alter table migtest_e_basic modify status2 varchar(127); insert into migtest_e_user (id) select distinct user_id from migtest_e_basic; alter table migtest_e_basic modify user_id integer; - 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); alter table migtest_e_history modify test_string bigint; @@ -52,17 +49,13 @@ alter table migtest_e_history modify 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 modify test_string varchar(255) not null default 'unknown'; - alter table migtest_e_history4 modify test_number bigint; alter table migtest_e_history4_history modify test_number bigint; - -- 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 integer not null default 42; alter table migtest_e_history6 modify test_number2 integer; - - -- apply alter tables 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/mysql55/1.2__dropsFor_1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/mysql55/1.2__dropsFor_1.1.sql index acaf96272..72d889059 100644 --- 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 @@ -3,19 +3,13 @@ drop view if exists migtest_e_history2_with_history; -- apply changes CALL usp_ebean_drop_column('migtest_e_basic', 'description_file'); - 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'); - -- apply post alter drop table if exists migtest_e_ref; -- apply history view 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 index 21e91ff96..5dee0b540 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/mysql55/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/mysql55/1.3.sql @@ -31,9 +31,7 @@ alter table migtest_e_basic modify status2 varchar(1) not null default 'N'; update migtest_e_basic set user_id = 23 where user_id is null; alter table migtest_e_basic modify user_id integer not null default 23; - alter table migtest_e_history2 modify test_string 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 modify test_number1 integer; 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 index f257f1ebb..38b1d2503 100644 --- 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 @@ -9,39 +9,25 @@ 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_history', 'sys_period_start'); CALL usp_ebean_drop_column('migtest_e_history', 'sys_period_end'); 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'); - -- apply post alter 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/nuodb/1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/nuodb/1.1.sql index df52221b6..7f3a24f9f 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 @@ -37,26 +37,19 @@ create table migtest_mtm_m_phone_numbers ( ); - - update migtest_e_basic set status = 'A' where status is null; -- rename all collisions; insert into migtest_e_user (id) select distinct user_id from migtest_e_basic; - 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); -- NOTE: table has @History - special migration may be necessary update migtest_e_history2 set test_string = 'unknown' where test_string is null; - - -- NOTE: table has @History - special migration may be necessary update migtest_e_history6 set test_number1 = 42 where test_number1 is null; - - -- apply alter tables 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/nuodb/1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/nuodb/1.3.sql index 377e1b9b3..9dd55f8d9 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/nuodb/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/nuodb/1.3.sql @@ -32,8 +32,6 @@ update migtest_e_basic set status2 = 'N' where status2 is null; update migtest_e_basic set user_id = 23 where user_id is null; - - -- NOTE: table has @History - special migration may be necessary update migtest_e_history6 set test_number2 = 7 where test_number2 is null; -- apply alter tables 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 1bca2a9bb..a545c2b46 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 @@ -78,24 +78,17 @@ create table migtest_mtm_m_phone_numbers ( ); - - update migtest_e_basic set status = 'A' where status is null; -- rename all collisions; insert into migtest_e_user (id) select distinct user_id from migtest_e_basic; - -- NOTE: table has @History - special migration may be necessary update migtest_e_history2 set test_string = 'unknown' where test_string is null; - - -- NOTE: table has @History - special migration may be necessary update migtest_e_history6 set test_number1 = 42 where test_number1 is null; - - -- apply alter tables alter table migtest_ckey_detail add one_key number(10); alter table migtest_ckey_detail add two_key varchar2(127); 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 fcdce368f..511fa9f21 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 @@ -101,8 +101,6 @@ update migtest_e_basic set status2 = 'N' where status2 is null; update migtest_e_basic set user_id = 23 where user_id is null; - - -- NOTE: table has @History - special migration may be necessary update migtest_e_history6 set test_number2 = 7 where test_number2 is null; -- apply alter tables 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 index 484b157b6..e7d4963b5 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/oracle11/1.1.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/oracle11/1.1.sql @@ -79,24 +79,17 @@ create table migtest_mtm_m_phone_numbers ( ); - - update migtest_e_basic set status = 'A' where status is null; -- rename all collisions; insert into migtest_e_user (id) select distinct user_id from migtest_e_basic; - -- NOTE: table has @History - special migration may be necessary update migtest_e_history2 set test_string = 'unknown' where test_string is null; - - -- NOTE: table has @History - special migration may be necessary update migtest_e_history6 set test_number1 = 42 where test_number1 is null; - - -- apply alter tables alter table migtest_ckey_detail add one_key number(10); alter table migtest_ckey_detail add two_key varchar2(127); 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 index 546b71375..06f32cbd8 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/oracle11/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/oracle11/1.3.sql @@ -102,8 +102,6 @@ update migtest_e_basic set status2 = 'N' where status2 is null; update migtest_e_basic set user_id = 23 where user_id is null; - - -- NOTE: table has @History - special migration may be necessary update migtest_e_history6 set test_number2 = 7 where test_number2 is null; -- apply alter tables 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 73f06c071..d56a58827 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 @@ -40,15 +40,12 @@ create table migtest_mtm_m_phone_numbers ( ); - - update migtest_e_basic set status = 'A' where status is null; alter table migtest_e_basic alter column status2 type varchar(127) using status2::varchar(127); -- rename all collisions; insert into migtest_e_user (id) select distinct user_id from migtest_e_basic; - alter table migtest_e_history add column sys_period tstzrange not null default tstzrange(current_timestamp, null); alter table migtest_e_history alter column test_string TYPE bigint USING (test_string::integer); @@ -56,15 +53,11 @@ alter table migtest_e_history alter column test_string type bigint using test_st -- 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_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; - -- NOTE: table has @History - special migration may be necessary update migtest_e_history6 set test_number1 = 42 where test_number1 is null; - - -- apply alter tables 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/postgres/1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/postgres/1.3.sql index 74a65cbce..f2e623957 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 @@ -32,8 +32,6 @@ update migtest_e_basic set status2 = 'N' where status2 is null; alter table migtest_e_basic alter column status2 type varchar(1) using status2::varchar(1); update migtest_e_basic set user_id = 23 where user_id is null; - - 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; 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 index 9aa225d4b..4c87d8179 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/postgres9/1.1.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/postgres9/1.1.sql @@ -40,15 +40,12 @@ create table migtest_mtm_m_phone_numbers ( ); - - update migtest_e_basic set status = 'A' where status is null; alter table migtest_e_basic alter column status2 type varchar(127) using status2::varchar(127); -- rename all collisions; insert into migtest_e_user (id) select distinct user_id from migtest_e_basic; - alter table migtest_e_history add column sys_period tstzrange not null default tstzrange(current_timestamp, null); alter table migtest_e_history alter column test_string TYPE bigint USING (test_string::integer); @@ -56,15 +53,11 @@ alter table migtest_e_history alter column test_string type bigint using test_st -- 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_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; - -- NOTE: table has @History - special migration may be necessary update migtest_e_history6 set test_number1 = 42 where test_number1 is null; - - -- apply alter tables 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/postgres9/1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/postgres9/1.3.sql index 4886f5135..c61552550 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/postgres9/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/postgres9/1.3.sql @@ -32,8 +32,6 @@ update migtest_e_basic set status2 = 'N' where status2 is null; alter table migtest_e_basic alter column status2 type varchar(1) using status2::varchar(1); update migtest_e_basic set user_id = 23 where user_id is null; - - 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; 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 2c1ef3190..ba24ed39b 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 @@ -33,24 +33,17 @@ create table migtest_mtm_m_phone_numbers ( ); - - update migtest_e_basic set status = 'A' where status is null; -- rename all collisions; insert into migtest_e_user (id) select distinct user_id from migtest_e_basic; - -- NOTE: table has @History - special migration may be necessary update migtest_e_history2 set test_string = 'unknown' where test_string is null; - - -- NOTE: table has @History - special migration may be necessary update migtest_e_history6 set test_number1 = 42 where test_number1 is null; - - -- apply alter tables 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/sqlanywhere/1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlanywhere/1.3.sql index 48e8e1396..ac474a234 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlanywhere/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlanywhere/1.3.sql @@ -29,8 +29,6 @@ update migtest_e_basic set status2 = 'N' where status2 is null; update migtest_e_basic set user_id = 23 where user_id is null; - - -- NOTE: table has @History - special migration may be necessary update migtest_e_history6 set test_number2 = 7 where test_number2 is null; -- apply alter tables 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 354bc0cab..24c69d51b 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 @@ -38,24 +38,17 @@ create table migtest_mtm_m_phone_numbers ( ); - - update migtest_e_basic set status = 'A' where status is null; -- rename all collisions; insert into migtest_e_user (id) select distinct user_id from migtest_e_basic; - -- NOTE: table has @History - special migration may be necessary update migtest_e_history2 set test_string = 'unknown' where test_string is null; - - -- NOTE: table has @History - special migration may be necessary update migtest_e_history6 set test_number1 = 42 where test_number1 is null; - - -- apply alter tables 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.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlite/1.3.sql index 8b5d83414..e7851f49c 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlite/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlite/1.3.sql @@ -29,8 +29,6 @@ update migtest_e_basic set status2 = 'N' where status2 is null; update migtest_e_basic set user_id = 23 where user_id is null; - - -- NOTE: table has @History - special migration may be necessary update migtest_e_history6 set test_number2 = 7 where test_number2 is null; -- apply alter tables 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 index df57db575..29aa7ed4a 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/1.1.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/1.1.sql @@ -35,8 +35,6 @@ create table migtest_mtm_m_phone_numbers ( ); - - update migtest_e_basic set status = 'A' where status is null; EXEC usp_ebean_drop_default_constraint migtest_e_basic, status; alter table migtest_e_basic alter column status varchar(1) not null; @@ -48,7 +46,6 @@ alter table migtest_e_basic alter column status2 varchar(127); insert into migtest_e_user (id) select distinct user_id from migtest_e_basic; alter table migtest_e_basic alter column user_id integer; - alter table migtest_e_history alter column test_string numeric(19); -- NOTE: table has @History - special migration may be necessary @@ -56,18 +53,14 @@ update migtest_e_history2 set test_string = 'unknown' where test_string is null; EXEC usp_ebean_drop_default_constraint migtest_e_history2, test_string; alter table migtest_e_history2 alter column test_string varchar(255) not null; alter table migtest_e_history2 add default 'unknown' for test_string; - alter table migtest_e_history4 alter column test_number numeric(19); - -- NOTE: table has @History - special migration may be necessary update migtest_e_history6 set test_number1 = 42 where test_number1 is null; EXEC usp_ebean_drop_default_constraint migtest_e_history6, test_number1; alter table migtest_e_history6 alter column test_number1 integer not null; alter table migtest_e_history6 add default 42 for test_number1; alter table migtest_e_history6 alter column test_number2 integer; - - -- apply alter tables alter table migtest_ckey_detail add one_key integer; alter table migtest_ckey_detail add two_key varchar(127); diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/1.2__dropsFor_1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/1.2__dropsFor_1.1.sql index fd32a937e..f3720c11c 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/1.2__dropsFor_1.1.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/1.2__dropsFor_1.1.sql @@ -1,17 +1,11 @@ -- Migrationscripts for ebean unittest -- apply changes EXEC usp_ebean_drop_column migtest_e_basic, description_file; - 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_seq', 'SO') IS NOT NULL drop sequence migtest_e_ref_seq; -- apply post alter IF OBJECT_ID('migtest_e_ref', 'U') IS NOT NULL drop table migtest_e_ref; 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 index f82baec72..89198bd71 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/1.3.sql @@ -40,10 +40,8 @@ update migtest_e_basic set user_id = 23 where user_id is null; EXEC usp_ebean_drop_default_constraint migtest_e_basic, user_id; alter table migtest_e_basic alter column user_id integer not null; alter table migtest_e_basic add default 23 for user_id; - 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_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; diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/1.4__dropsFor_1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/1.4__dropsFor_1.3.sql index 953d8abd0..2499bb58a 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/1.4__dropsFor_1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/1.4__dropsFor_1.3.sql @@ -1,33 +1,19 @@ -- 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_seq', 'SO') IS NOT NULL drop sequence migtest_e_user_seq; -- apply post alter IF OBJECT_ID('migtest_e_user', 'U') IS NOT NULL drop table migtest_e_user; diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/1.1.sql index 839f25225..dd16610ee 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/1.1.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/1.1.sql @@ -36,8 +36,6 @@ create table migtest_mtm_m_phone_numbers ( ); - - update migtest_e_basic set status = 'A' where status is null; EXEC usp_ebean_drop_default_constraint migtest_e_basic, status; alter table migtest_e_basic alter column status nvarchar(1) not null; @@ -49,7 +47,6 @@ alter table migtest_e_basic alter column status2 nvarchar(127); insert into migtest_e_user (id) select distinct user_id from migtest_e_basic; alter table migtest_e_basic alter column user_id integer; - alter table migtest_e_history alter column test_string numeric(19); -- NOTE: table has @History - special migration may be necessary @@ -57,18 +54,14 @@ update migtest_e_history2 set test_string = 'unknown' where test_string is null; EXEC usp_ebean_drop_default_constraint migtest_e_history2, test_string; alter table migtest_e_history2 alter column test_string nvarchar(255) not null; alter table migtest_e_history2 add default 'unknown' for test_string; - alter table migtest_e_history4 alter column test_number numeric(19); - -- NOTE: table has @History - special migration may be necessary update migtest_e_history6 set test_number1 = 42 where test_number1 is null; EXEC usp_ebean_drop_default_constraint migtest_e_history6, test_number1; alter table migtest_e_history6 alter column test_number1 integer not null; alter table migtest_e_history6 add default 42 for test_number1; alter table migtest_e_history6 alter column test_number2 integer; - - -- apply alter tables alter table migtest_ckey_detail add one_key integer; alter table migtest_ckey_detail add two_key nvarchar(127); 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 index fd32a937e..f3720c11c 100644 --- 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 @@ -1,17 +1,11 @@ -- Migrationscripts for ebean unittest -- apply changes EXEC usp_ebean_drop_column migtest_e_basic, description_file; - 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_seq', 'SO') IS NOT NULL drop sequence migtest_e_ref_seq; -- apply post alter IF OBJECT_ID('migtest_e_ref', 'U') IS NOT NULL drop table migtest_e_ref; diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/1.3.sql index d7b8151ec..b303d0bb9 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/1.3.sql @@ -41,10 +41,8 @@ update migtest_e_basic set user_id = 23 where user_id is null; EXEC usp_ebean_drop_default_constraint migtest_e_basic, user_id; alter table migtest_e_basic alter column user_id integer not null; alter table migtest_e_basic add default 23 for user_id; - 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_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; 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 index 953d8abd0..2499bb58a 100644 --- 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 @@ -1,33 +1,19 @@ -- 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_seq', 'SO') IS NOT NULL drop sequence migtest_e_user_seq; -- apply post alter IF OBJECT_ID('migtest_e_user', 'U') IS NOT NULL drop table migtest_e_user; 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 e80bbe2f3..88fd0b445 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 @@ -37,29 +37,22 @@ create table migtest_mtm_m_phone_numbers ( ); - - update migtest_e_basic set status = 'A' where status is null; alter table migtest_e_basic alter column status2 type varchar(127) using status2::varchar(127); -- rename all collisions; insert into migtest_e_user (id) select distinct user_id from migtest_e_basic; - alter table migtest_e_history add column sys_period tstzrange not null default tstzrange(current_timestamp, null); alter table migtest_e_history alter column test_string type bigint using 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_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; - -- NOTE: table has @History - special migration may be necessary update migtest_e_history6 set test_number1 = 42 where test_number1 is null; - - -- apply alter tables 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/yugabyte/1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/yugabyte/1.3.sql index 167a45ae4..a981ac966 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/yugabyte/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/yugabyte/1.3.sql @@ -32,8 +32,6 @@ update migtest_e_basic set status2 = 'N' where status2 is null; alter table migtest_e_basic alter column status2 type varchar(1) using status2::varchar(1); update migtest_e_basic set user_id = 23 where user_id is null; - - 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; From 3c7555de365607738b5c9ab34bae19f60cd86820 Mon Sep 17 00:00:00 2001 From: Noemi Szemenyei Date: Thu, 10 Mar 2022 16:57:56 +0100 Subject: [PATCH 075/114] Provide custom BackgroundExecutorWrapper to pass thread locals (cherry picked from commit 336accf447280551abdf4e3bb72ca6db84cd926b) --- .../config/BackgroundExecutorWrapper.java | 23 ++++ .../java/io/ebean/config/DatabaseConfig.java | 16 +++ .../config/MdcBackgroundExecutorWrapper.java | 50 ++++++++ .../server/core/DefaultContainer.java | 4 +- .../executor/DefaultBackgroundExecutor.java | 98 +++++++++------ .../executor/DaemonExecutorServiceTest.java | 2 +- .../DefaultBackgroundExecutorTest.java | 51 +++++--- .../org/tests/cache/TestBeanCacheAsync.java | 113 ++++++++++++++++++ 8 files changed, 307 insertions(+), 50 deletions(-) create mode 100644 ebean-api/src/main/java/io/ebean/config/BackgroundExecutorWrapper.java create mode 100644 ebean-api/src/main/java/io/ebean/config/MdcBackgroundExecutorWrapper.java create mode 100644 ebean-test/src/test/java/org/tests/cache/TestBeanCacheAsync.java diff --git a/ebean-api/src/main/java/io/ebean/config/BackgroundExecutorWrapper.java b/ebean-api/src/main/java/io/ebean/config/BackgroundExecutorWrapper.java new file mode 100644 index 000000000..289b7327a --- /dev/null +++ b/ebean-api/src/main/java/io/ebean/config/BackgroundExecutorWrapper.java @@ -0,0 +1,23 @@ +package io.ebean.config; + +import java.util.concurrent.Callable; + +/** + * BackgroundExecutorWrapper that can be used to wrap tasks that are sent to background (i.e. an other thread). + * It should copy all neccessary thread-local variables. See {@link MdcBackgroundExecutorWrapper} for implementation details. + * + * @author Roland Praml, FOCONIS AG + */ +public interface BackgroundExecutorWrapper { + + /** + * Wrap the task with MDC context if defined. + */ + Callable wrap(Callable task); + + /** + * Wrap the task with MDC context if defined. + */ + Runnable wrap(Runnable task); + +} diff --git a/ebean-api/src/main/java/io/ebean/config/DatabaseConfig.java b/ebean-api/src/main/java/io/ebean/config/DatabaseConfig.java index 8042e32b6..cc5a31a3f 100644 --- a/ebean-api/src/main/java/io/ebean/config/DatabaseConfig.java +++ b/ebean-api/src/main/java/io/ebean/config/DatabaseConfig.java @@ -445,6 +445,7 @@ public class DatabaseConfig { private int backgroundExecutorSchedulePoolSize = 1; private int backgroundExecutorShutdownSecs = 30; + private BackgroundExecutorWrapper backgroundExecutorWrapper = new MdcBackgroundExecutorWrapper(); // defaults for the L2 bean caching @@ -1463,6 +1464,20 @@ public class DatabaseConfig { this.backgroundExecutorShutdownSecs = backgroundExecutorShutdownSecs; } + /** + * Return the background executor wrapper. + */ + public BackgroundExecutorWrapper getBackgroundExecutorWrapper() { + return backgroundExecutorWrapper; + } + + /** + * Sets the background executor wrapper. The wrapper is used when a task is sent to background and should copy the thread-locals. + */ + public void setBackgroundExecutorWrapper(BackgroundExecutorWrapper backgroundExecutorWrapper) { + this.backgroundExecutorWrapper = backgroundExecutorWrapper; + } + /** * Return the L2 cache default max size. */ @@ -2884,6 +2899,7 @@ public class DatabaseConfig { backgroundExecutorSchedulePoolSize = p.getInt("backgroundExecutorSchedulePoolSize", backgroundExecutorSchedulePoolSize); backgroundExecutorShutdownSecs = p.getInt("backgroundExecutorShutdownSecs", backgroundExecutorShutdownSecs); + backgroundExecutorWrapper = p.createInstance(BackgroundExecutorWrapper.class, "backgroundExecutorWrapper", backgroundExecutorWrapper); disableClasspathSearch = p.getBoolean("disableClasspathSearch", disableClasspathSearch); currentUserProvider = p.createInstance(CurrentUserProvider.class, "currentUserProvider", currentUserProvider); databasePlatform = p.createInstance(DatabasePlatform.class, "databasePlatform", databasePlatform); diff --git a/ebean-api/src/main/java/io/ebean/config/MdcBackgroundExecutorWrapper.java b/ebean-api/src/main/java/io/ebean/config/MdcBackgroundExecutorWrapper.java new file mode 100644 index 000000000..5a0fa7980 --- /dev/null +++ b/ebean-api/src/main/java/io/ebean/config/MdcBackgroundExecutorWrapper.java @@ -0,0 +1,50 @@ +package io.ebean.config; + +import java.util.Map; +import java.util.concurrent.Callable; + +import org.slf4j.MDC; + +public class MdcBackgroundExecutorWrapper implements BackgroundExecutorWrapper { + + + /** + * Wrap the task with MDC context if defined. + */ + @Override + public Callable wrap(Callable task) { + final Map map = MDC.getCopyOfContextMap(); + if (map == null) { + return task; + } else { + return () -> { + MDC.setContextMap(map); + try { + return task.call(); + } finally { + MDC.clear(); + } + }; + } + } + + /** + * Wrap the task with MDC context if defined. + */ + @Override + public Runnable wrap(Runnable task) { + final Map map = MDC.getCopyOfContextMap(); + if (map == null) { + return task; + } else { + return () -> { + MDC.setContextMap(map); + try { + task.run(); + } finally { + MDC.clear(); + } + }; + } + } +} diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/core/DefaultContainer.java b/ebean-core/src/main/java/io/ebeaninternal/server/core/DefaultContainer.java index 4009c9d49..a4565c3df 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/core/DefaultContainer.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/core/DefaultContainer.java @@ -1,5 +1,6 @@ package io.ebeaninternal.server.core; +import io.ebean.config.BackgroundExecutorWrapper; import io.ebean.config.ContainerConfig; import io.ebean.config.DatabaseConfig; import io.ebean.config.DatabaseConfigProvider; @@ -67,7 +68,8 @@ public final class DefaultContainer implements SpiContainer { String namePrefix = "ebean-" + config.getName(); int schedulePoolSize = config.getBackgroundExecutorSchedulePoolSize(); int shutdownSecs = config.getBackgroundExecutorShutdownSecs(); - return new DefaultBackgroundExecutor(schedulePoolSize, shutdownSecs, namePrefix); + BackgroundExecutorWrapper wrapper = config.getBackgroundExecutorWrapper(); + return new DefaultBackgroundExecutor(schedulePoolSize, shutdownSecs, namePrefix, wrapper); } /** diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/executor/DefaultBackgroundExecutor.java b/ebean-core/src/main/java/io/ebeaninternal/server/executor/DefaultBackgroundExecutor.java index d04348ba8..ca1f18947 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/executor/DefaultBackgroundExecutor.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/executor/DefaultBackgroundExecutor.java @@ -1,70 +1,92 @@ package io.ebeaninternal.server.executor; import io.avaje.lang.NonNullApi; +import io.ebean.config.BackgroundExecutorWrapper; import io.ebeaninternal.api.SpiBackgroundExecutor; -import org.slf4j.MDC; -import java.util.Map; import java.util.concurrent.*; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + /** * The default implementation of the BackgroundExecutor. */ @NonNullApi public final class DefaultBackgroundExecutor implements SpiBackgroundExecutor { + protected static final Logger logger = LoggerFactory.getLogger("io.ebean.BackgroundExecutor"); + private final ScheduledExecutorService schedulePool; private final DaemonExecutorService pool; + private final BackgroundExecutorWrapper wrapper; /** * Construct the default implementation of BackgroundExecutor. */ - public DefaultBackgroundExecutor(int schedulePoolSize, int shutdownWaitSeconds, String namePrefix) { + public DefaultBackgroundExecutor(int schedulePoolSize, int shutdownWaitSeconds, String namePrefix, BackgroundExecutorWrapper wrapper) { this.schedulePool = new DaemonScheduleThreadPool(schedulePoolSize, shutdownWaitSeconds, namePrefix + "-periodic-"); this.pool = new DaemonExecutorService(shutdownWaitSeconds, namePrefix); + this.wrapper = wrapper; + logger.debug("Created backgroundExecutor {} (schedulePoolSize={}, shutdownWaitSeconds={})", namePrefix, schedulePoolSize, shutdownWaitSeconds); } /** * Wrap the task with MDC context if defined. */ - Callable wrapMDC(Callable task) { - final Map map = MDC.getCopyOfContextMap(); - if (map == null) { - return task; + Callable wrap(Callable task) { + if (wrapper == null) { + return clock(task); } else { - return () -> { - MDC.setContextMap(map); - try { - return task.call(); - } finally { - MDC.clear(); - } - }; + return wrapper.wrap(clock(task)); } } /** * Wrap the task with MDC context if defined. */ - Runnable wrapMDC(Runnable task) { - final Map map = MDC.getCopyOfContextMap(); - if (map == null) { - return task; + Runnable wrap(Runnable task) { + if (wrapper == null) { + return clock(task); } else { + return wrapper.wrap(clock(task)); + } + } + + private Callable clock(Callable task) { + if (logger.isTraceEnabled()) { + long queued = System.nanoTime(); + logger.trace("Queued {}", task); return () -> { - MDC.setContextMap(map); - try { - task.run(); - } finally { - MDC.clear(); - } + long start = System.nanoTime(); + logger.trace("Start {} (delay time {} us)", task, (start - queued) / 1000L); + T ret = task.call(); + logger.trace("Stop {} (exec time {} us)", task, (System.nanoTime() - start) / 1000L); + return ret; }; + } else { + return task; + } + } + + private Runnable clock(Runnable task) { + if (logger.isTraceEnabled()) { + long queued = System.nanoTime(); + logger.trace("Queued {}", task); + return () -> { + long start = System.nanoTime(); + logger.trace("Start {} (delay time {} us)", task, (start - queued) / 1000L); + task.run(); + logger.trace("Stop {} (exec time {} us)", task, (System.nanoTime() - start) / 1000L); + }; + } else { + return task; } } @Override public Future submit(Callable task) { - return pool.submit(wrapMDC(task)); + return pool.submit(wrap(task)); } /** @@ -72,48 +94,56 @@ public final class DefaultBackgroundExecutor implements SpiBackgroundExecutor { */ @Override public Future submit(Runnable task) { - return pool.submit(wrapMDC(task)); + return pool.submit(wrap(task)); } @Override public void execute(Runnable task) { - submit(task); + submit(() -> { + try { + task.run(); + } catch (Throwable t) { + logger.error("Error while executing the task {}", task, t); + } + }); } @Override public void executePeriodically(Runnable task, long delay, TimeUnit unit) { - schedulePool.scheduleWithFixedDelay(wrapMDC(task), delay, delay, unit); + schedulePool.scheduleWithFixedDelay(wrap(task), delay, delay, unit); } @Override public void executePeriodically(Runnable task, long initialDelay, long delay, TimeUnit unit) { - schedulePool.scheduleWithFixedDelay(wrapMDC(task), initialDelay, delay, unit); + schedulePool.scheduleWithFixedDelay(wrap(task), initialDelay, delay, unit); } @Override public ScheduledFuture scheduleWithFixedDelay(Runnable task, long initialDelay, long delay, TimeUnit unit) { - return schedulePool.scheduleWithFixedDelay(wrapMDC(task), initialDelay, delay, unit); + return schedulePool.scheduleWithFixedDelay(wrap(task), initialDelay, delay, unit); } @Override public ScheduledFuture scheduleAtFixedRate(Runnable task, long initialDelay, long delay, TimeUnit unit) { - return schedulePool.scheduleAtFixedRate(wrapMDC(task), initialDelay, delay, unit); + return schedulePool.scheduleAtFixedRate(wrap(task), initialDelay, delay, unit); } @Override public ScheduledFuture schedule(Runnable task, long delay, TimeUnit unit) { - return schedulePool.schedule(wrapMDC(task), delay, unit); + return schedulePool.schedule(wrap(task), delay, unit); } @Override public ScheduledFuture schedule(Callable task, long delay, TimeUnit unit) { - return schedulePool.schedule(wrapMDC(task), delay, unit); + return schedulePool.schedule(wrap(task), delay, unit); } @Override public void shutdown() { + logger.trace("Shutting down backgroundExecutor"); schedulePool.shutdown(); pool.shutdown(); + logger.debug("BackgroundExecutor stopped"); } } diff --git a/ebean-core/src/test/java/io/ebeaninternal/server/executor/DaemonExecutorServiceTest.java b/ebean-core/src/test/java/io/ebeaninternal/server/executor/DaemonExecutorServiceTest.java index 72ad74223..cf117e018 100644 --- a/ebean-core/src/test/java/io/ebeaninternal/server/executor/DaemonExecutorServiceTest.java +++ b/ebean-core/src/test/java/io/ebeaninternal/server/executor/DaemonExecutorServiceTest.java @@ -31,7 +31,7 @@ class DaemonExecutorServiceTest { @Test void submit_via_DefaultBackgroundExecutor() throws Exception { - DefaultBackgroundExecutor des = new DefaultBackgroundExecutor(1, 5, "junk"); + DefaultBackgroundExecutor des = new DefaultBackgroundExecutor(1, 5, "junk", null); long start = System.currentTimeMillis(); List> futures = new ArrayList<>(); for (int i = 0; i < count; i++) { diff --git a/ebean-test/src/test/java/io/ebeaninternal/server/executor/DefaultBackgroundExecutorTest.java b/ebean-test/src/test/java/io/ebeaninternal/server/executor/DefaultBackgroundExecutorTest.java index 08bc88640..cc3a3d481 100644 --- a/ebean-test/src/test/java/io/ebeaninternal/server/executor/DefaultBackgroundExecutorTest.java +++ b/ebean-test/src/test/java/io/ebeaninternal/server/executor/DefaultBackgroundExecutorTest.java @@ -4,17 +4,21 @@ import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; import org.slf4j.MDC; +import io.ebean.config.MdcBackgroundExecutorWrapper; + +import java.util.concurrent.CountDownLatch; import java.util.concurrent.Future; import java.util.concurrent.TimeUnit; import static org.assertj.core.api.Assertions.assertThat; +import static org.junit.jupiter.api.Assertions.assertTrue; public class DefaultBackgroundExecutorTest { @Test public void submit_callable() throws Exception { - DefaultBackgroundExecutor es = new DefaultBackgroundExecutor(1, 2, "test"); + DefaultBackgroundExecutor es = new DefaultBackgroundExecutor(1, 2, "test", null); final Future future0 = es.submit(() -> "Hello"); final Future future1 = es.submit(() -> "There"); @@ -39,7 +43,7 @@ public class DefaultBackgroundExecutorTest { public void shutdown_slowCallable_expect_interrupted() throws Exception { int shutdownWaitSecs = 1; - DefaultBackgroundExecutor es = new DefaultBackgroundExecutor(1, shutdownWaitSecs, "test"); + DefaultBackgroundExecutor es = new DefaultBackgroundExecutor(1, shutdownWaitSecs, "test", null); final Future future2 = es.submit(() -> { try { @@ -61,7 +65,7 @@ public class DefaultBackgroundExecutorTest { @Disabled("test takes long time") public void shutdown_when_running_expect_waitAndNiceShutdown() { - DefaultBackgroundExecutor es = new DefaultBackgroundExecutor(1, 20, "test"); + DefaultBackgroundExecutor es = new DefaultBackgroundExecutor(1, 20, "test", null); es.execute(new RunFor(3000, "a")); es.execute(new RunFor(3000, "b")); @@ -74,7 +78,7 @@ public class DefaultBackgroundExecutorTest { @Disabled("test takes long time") public void shutdown_when_rougeRunnable_expect_InterruptedException() { - DefaultBackgroundExecutor es = new DefaultBackgroundExecutor(1, 10, "test"); + DefaultBackgroundExecutor es = new DefaultBackgroundExecutor(1, 10, "test", null); es.execute(new RunFor(300000, "a")); es.execute(new RunFor(3000, "b")); @@ -85,12 +89,12 @@ public class DefaultBackgroundExecutorTest { @Test public void wrapWithNoMDC() { - DefaultBackgroundExecutor es = new DefaultBackgroundExecutor(1, 10, "test"); + DefaultBackgroundExecutor es = new DefaultBackgroundExecutor(1, 10, "test", null); assertThat(MDC.getCopyOfContextMap()).isNull(); - es.wrapMDC(() -> { + es.wrap(() -> { assertThat(MDC.getCopyOfContextMap()).isNull(); }); - es.wrapMDC(() -> { + es.wrap(() -> { assertThat(MDC.getCopyOfContextMap()).isNull(); return "Callable"; }); @@ -98,25 +102,44 @@ public class DefaultBackgroundExecutorTest { } @Test - public void wrapWithMDC_expect_() { - DefaultBackgroundExecutor es = new DefaultBackgroundExecutor(1, 10, "test"); + public void wrapWithMDC_expect_() throws Exception { + DefaultBackgroundExecutor es = new DefaultBackgroundExecutor(1, 10, "test", new MdcBackgroundExecutorWrapper()); + // MDC has a copyOnThread map. So we must pass different values to check if the test will work MDC.clear(); + es.submit(()->{ + assertThat(MDC.get("hello")).isNull(); + }).get(); + MDC.put("hello", "there"); - es.wrapMDC(() -> { + es.wrap(() -> { assertThat(MDC.get("hello")).isEqualTo("there"); - }); - es.wrapMDC(() -> { + }).run(); // will clear the MDC. But this should be OK + + MDC.put("hello", "there"); + es.wrap(() -> { assertThat(MDC.get("hello")).isEqualTo("there"); return "Callable"; - }); + }).call(); // will clear the MDC. But this should be OK + + MDC.put("hello", "there"); + + CountDownLatch latch = new CountDownLatch(1); es.execute(() -> { + // the assertion is executed async, so it will only logged on console assertThat(MDC.get("hello")).isEqualTo("there"); + latch.countDown(); }); + assertTrue(latch.await(5, TimeUnit.SECONDS)); + es.submit(() -> { assertThat(MDC.get("hello")).isEqualTo("there"); return "Callable"; - }); + }).get(); MDC.clear(); + + es.execute(()->{ + assertThat(MDC.get("hello")).isNull(); + }); es.shutdown(); } diff --git a/ebean-test/src/test/java/org/tests/cache/TestBeanCacheAsync.java b/ebean-test/src/test/java/org/tests/cache/TestBeanCacheAsync.java new file mode 100644 index 000000000..41430f246 --- /dev/null +++ b/ebean-test/src/test/java/org/tests/cache/TestBeanCacheAsync.java @@ -0,0 +1,113 @@ +package org.tests.cache; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.junit.jupiter.api.Assertions.assertNotNull; + +import java.util.concurrent.Callable; + +import org.junit.jupiter.api.Test; +import org.tests.model.basic.OCachedBean; + +import io.ebean.BaseTestCase; +import io.ebean.DB; +import io.ebean.Database; +import io.ebean.DatabaseFactory; +import io.ebean.config.CurrentTenantProvider; +import io.ebean.config.DatabaseConfig; +import io.ebean.config.MdcBackgroundExecutorWrapper; +import io.ebeaninternal.server.cache.DefaultServerCachePlugin; + +/** + * Test class testing async/background cache updates in a multi-tenant environment. + */ +public class TestBeanCacheAsync extends BaseTestCase { + + private final ThreadLocal tenantId = new ThreadLocal<>(); + + class ThreadLocalTenantProvider implements CurrentTenantProvider { + + @Override + public Object currentId() { + return tenantId.get(); + } + } + /** + * Copy tenant info to the background thread. + */ + class TenantCopyBackgroundExecutorWrapper extends MdcBackgroundExecutorWrapper { + @Override + public Callable wrap(Callable task) { + String tenant = tenantId.get(); + if (tenant == null) { + return super.wrap(task); + } else { + return () -> { + tenantId.set(tenant); + try { + return super.wrap(task).call(); + } finally { + tenantId.remove(); + } + }; + } + } + + @Override + public Runnable wrap(Runnable task) { + String tenant = tenantId.get(); + if (tenant == null) { + return super.wrap(task); + } else { + return () -> { + tenantId.set(tenant); + try { + super.wrap(task).run(); + } finally { + tenantId.remove(); + } + }; + } + } + } + + @Test + public void findById_with_tenant() throws InterruptedException { + DatabaseConfig config = new DatabaseConfig(); + config.setName(DB.getDefault().name()); + config.loadFromProperties(); + config.setDataSource(DB.getDefault().dataSource()); + config.setReadOnlyDataSource(DB.getDefault().readOnlyDataSource()); + config.setDdlExtra(false); + config.setDdlGenerate(false); + config.setDdlRun(false); + config.setDefaultServer(false); + config.setRegister(false); + config.setServerCachePlugin(new DefaultServerCachePlugin()); // disables foreground local caching (as it is done in Hz/Ignite) + config.setCurrentTenantProvider(new ThreadLocalTenantProvider()); + config.setBackgroundExecutorWrapper(new TenantCopyBackgroundExecutorWrapper()); + tenantId.set("4711"); + + Database db = DatabaseFactory.create(config); + try { + OCachedBean bean = new OCachedBean(); + bean.setName("findById"); + db.save(bean); + + OCachedBean bean0 = db.find(OCachedBean.class, bean.getId()); + assertNotNull(bean0); + assertThat(bean0.getName()).isEqualTo("findById"); + bean0.setName("findById2"); + db.save(bean0); + + Thread.sleep(100); // TODO: can we block finds on that ID if a pending cache update is present? + + bean0 = db.find(OCachedBean.class, bean.getId()); + assertNotNull(bean0); + assertThat(bean0.getName()).isEqualTo("findById2"); + + } finally { + db.shutdown(); + } + } + +} From e0e572a8b4637f5ba9d830425fbf9849bec5d9fd Mon Sep 17 00:00:00 2001 From: Noemi Szemenyei Date: Fri, 11 Mar 2022 09:01:25 +0100 Subject: [PATCH 076/114] update (cherry picked from commit dab8ed8a3b44966bcc9f250ba0c70e822c60ace7) --- .../config/BackgroundExecutorWrapper.java | 19 ++++ .../executor/DefaultBackgroundExecutor.java | 88 +++++++++---------- .../org/tests/cache/TestBeanCacheAsync.java | 51 +++++------ 3 files changed, 85 insertions(+), 73 deletions(-) diff --git a/ebean-api/src/main/java/io/ebean/config/BackgroundExecutorWrapper.java b/ebean-api/src/main/java/io/ebean/config/BackgroundExecutorWrapper.java index 289b7327a..306b7e88e 100644 --- a/ebean-api/src/main/java/io/ebean/config/BackgroundExecutorWrapper.java +++ b/ebean-api/src/main/java/io/ebean/config/BackgroundExecutorWrapper.java @@ -20,4 +20,23 @@ public interface BackgroundExecutorWrapper { */ Runnable wrap(Runnable task); + /** + * Combines two wrappers by joining them. + */ + default BackgroundExecutorWrapper with(BackgroundExecutorWrapper inner) { + return new BackgroundExecutorWrapper() { + + @Override + public Runnable wrap(Runnable task) { + return BackgroundExecutorWrapper.this.wrap(inner.wrap(task)); + } + + @Override + public Callable wrap(Callable task) { + return BackgroundExecutorWrapper.this.wrap(inner.wrap(task)); + } + }; + + } + } diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/executor/DefaultBackgroundExecutor.java b/ebean-core/src/main/java/io/ebeaninternal/server/executor/DefaultBackgroundExecutor.java index ca1f18947..468f397ff 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/executor/DefaultBackgroundExecutor.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/executor/DefaultBackgroundExecutor.java @@ -36,9 +36,9 @@ public final class DefaultBackgroundExecutor implements SpiBackgroundExecutor { */ Callable wrap(Callable task) { if (wrapper == null) { - return clock(task); + return task; } else { - return wrapper.wrap(clock(task)); + return wrapper.wrap(task); } } @@ -47,41 +47,43 @@ public final class DefaultBackgroundExecutor implements SpiBackgroundExecutor { */ Runnable wrap(Runnable task) { if (wrapper == null) { - return clock(task); + return task; } else { - return wrapper.wrap(clock(task)); + return wrapper.wrap(task); } } - private Callable clock(Callable task) { - if (logger.isTraceEnabled()) { - long queued = System.nanoTime(); - logger.trace("Queued {}", task); - return () -> { - long start = System.nanoTime(); - logger.trace("Start {} (delay time {} us)", task, (start - queued) / 1000L); - T ret = task.call(); - logger.trace("Stop {} (exec time {} us)", task, (System.nanoTime() - start) / 1000L); - return ret; - }; - } else { - return task; - } - } - - private Runnable clock(Runnable task) { - if (logger.isTraceEnabled()) { - long queued = System.nanoTime(); - logger.trace("Queued {}", task); - return () -> { - long start = System.nanoTime(); - logger.trace("Start {} (delay time {} us)", task, (start - queued) / 1000L); - task.run(); - logger.trace("Stop {} (exec time {} us)", task, (System.nanoTime() - start) / 1000L); - }; - } else { - return task; - } + + /** + * Decorates a runnable by adding an exception handler and some timing metrics. + * This is used in methods that accepts a Runnable and return + * either void or ScheduledFuture, as there is + * normally no Future.get() call. + * + * Note: When submitting a Callable, you must check + * Future.get() for exceptions. + */ + private Runnable logExceptions(Runnable task) { + long queued = System.nanoTime(); + logger.trace("Queued {}", task); + return () -> { + try { + if (logger.isTraceEnabled()) { + long start = System.nanoTime(); + logger.trace("Start {} (delay time {} us)", task, (start - queued) / 1000L); + task.run(); + logger.trace("Stop {} (exec time {} us)", task, (System.nanoTime() - start) / 1000L); + } else { + task.run(); + } + } catch (Throwable t) { + // log any exception here. Note they will not bubble up to the calling user + // unless Future.get() is checked. (Which is almost never done on scheduled + // background executions) + logger.error("Error while executing the task {}", task, t); + throw t; + } + }; } @Override @@ -97,44 +99,40 @@ public final class DefaultBackgroundExecutor implements SpiBackgroundExecutor { return pool.submit(wrap(task)); } + @Override public void execute(Runnable task) { - submit(() -> { - try { - task.run(); - } catch (Throwable t) { - logger.error("Error while executing the task {}", task, t); - } - }); + submit(logExceptions(task)); } @Override public void executePeriodically(Runnable task, long delay, TimeUnit unit) { - schedulePool.scheduleWithFixedDelay(wrap(task), delay, delay, unit); + schedulePool.scheduleWithFixedDelay(wrap(logExceptions(task)), delay, delay, unit); } @Override public void executePeriodically(Runnable task, long initialDelay, long delay, TimeUnit unit) { - schedulePool.scheduleWithFixedDelay(wrap(task), initialDelay, delay, unit); + schedulePool.scheduleWithFixedDelay(wrap(logExceptions(task)), initialDelay, delay, unit); } @Override public ScheduledFuture scheduleWithFixedDelay(Runnable task, long initialDelay, long delay, TimeUnit unit) { - return schedulePool.scheduleWithFixedDelay(wrap(task), initialDelay, delay, unit); + return schedulePool.scheduleWithFixedDelay(wrap(logExceptions(task)), initialDelay, delay, unit); } @Override public ScheduledFuture scheduleAtFixedRate(Runnable task, long initialDelay, long delay, TimeUnit unit) { - return schedulePool.scheduleAtFixedRate(wrap(task), initialDelay, delay, unit); + return schedulePool.scheduleAtFixedRate(wrap(logExceptions(task)), initialDelay, delay, unit); } @Override public ScheduledFuture schedule(Runnable task, long delay, TimeUnit unit) { - return schedulePool.schedule(wrap(task), delay, unit); + return schedulePool.schedule(wrap(logExceptions(task)), delay, unit); } @Override public ScheduledFuture schedule(Callable task, long delay, TimeUnit unit) { + // Note: Here is no "logExceptions", because it is intended to check Future.get() by the invoker return schedulePool.schedule(wrap(task), delay, unit); } diff --git a/ebean-test/src/test/java/org/tests/cache/TestBeanCacheAsync.java b/ebean-test/src/test/java/org/tests/cache/TestBeanCacheAsync.java index 41430f246..7dd1303a4 100644 --- a/ebean-test/src/test/java/org/tests/cache/TestBeanCacheAsync.java +++ b/ebean-test/src/test/java/org/tests/cache/TestBeanCacheAsync.java @@ -12,6 +12,7 @@ import io.ebean.BaseTestCase; import io.ebean.DB; import io.ebean.Database; import io.ebean.DatabaseFactory; +import io.ebean.config.BackgroundExecutorWrapper; import io.ebean.config.CurrentTenantProvider; import io.ebean.config.DatabaseConfig; import io.ebean.config.MdcBackgroundExecutorWrapper; @@ -31,42 +32,35 @@ public class TestBeanCacheAsync extends BaseTestCase { return tenantId.get(); } } + /** * Copy tenant info to the background thread. */ - class TenantCopyBackgroundExecutorWrapper extends MdcBackgroundExecutorWrapper { + class TenantCopyBackgroundExecutorWrapper implements BackgroundExecutorWrapper { @Override public Callable wrap(Callable task) { - String tenant = tenantId.get(); - if (tenant == null) { - return super.wrap(task); - } else { - return () -> { - tenantId.set(tenant); - try { - return super.wrap(task).call(); - } finally { - tenantId.remove(); - } - }; - } + String tenant = tenantId.get(); // executed in current thread + return () -> { + tenantId.set(tenant); // executed in other thread + try { + return task.call(); + } finally { + tenantId.remove(); + } + }; } - + @Override public Runnable wrap(Runnable task) { String tenant = tenantId.get(); - if (tenant == null) { - return super.wrap(task); - } else { - return () -> { - tenantId.set(tenant); - try { - super.wrap(task).run(); - } finally { - tenantId.remove(); - } - }; - } + return () -> { + tenantId.set(tenant); + try { + task.run(); + } finally { + tenantId.remove(); + } + }; } } @@ -84,7 +78,8 @@ public class TestBeanCacheAsync extends BaseTestCase { config.setRegister(false); config.setServerCachePlugin(new DefaultServerCachePlugin()); // disables foreground local caching (as it is done in Hz/Ignite) config.setCurrentTenantProvider(new ThreadLocalTenantProvider()); - config.setBackgroundExecutorWrapper(new TenantCopyBackgroundExecutorWrapper()); + config.setBackgroundExecutorWrapper( + new MdcBackgroundExecutorWrapper().with(new TenantCopyBackgroundExecutorWrapper())); tenantId.set("4711"); Database db = DatabaseFactory.create(config); From 6867c4568ce97abc88b693813c5893e8baa19fe3 Mon Sep 17 00:00:00 2001 From: Noemi Szemenyei Date: Fri, 11 Mar 2022 09:59:10 +0100 Subject: [PATCH 077/114] fix db.shutdown() (cherry picked from commit 33d17d0f49bb4617ea3c5a56bcf8e1c3712bf865) --- .../src/test/java/org/tests/cache/TestBeanCacheAsync.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ebean-test/src/test/java/org/tests/cache/TestBeanCacheAsync.java b/ebean-test/src/test/java/org/tests/cache/TestBeanCacheAsync.java index 7dd1303a4..a08e30f0f 100644 --- a/ebean-test/src/test/java/org/tests/cache/TestBeanCacheAsync.java +++ b/ebean-test/src/test/java/org/tests/cache/TestBeanCacheAsync.java @@ -101,7 +101,7 @@ public class TestBeanCacheAsync extends BaseTestCase { assertThat(bean0.getName()).isEqualTo("findById2"); } finally { - db.shutdown(); + db.shutdown(false, false); } } From d927b8c2c2ad3e870cdb665ce851f75a595eded3 Mon Sep 17 00:00:00 2001 From: Roland Praml Date: Fri, 11 Mar 2022 15:34:37 +0100 Subject: [PATCH 078/114] [DDL-refactor] Sorted the statements, so that they are going to the correct buffers --- .../dbmigration/ddlgeneration/DdlWrite.java | 13 +- .../ddlgeneration/platform/BaseTableDdl.java | 4 +- .../platform/DbTriggerBasedHistoryDdl.java | 16 +- .../ddlgeneration/platform/MySqlDdl.java | 8 +- .../ddlgeneration/platform/PlatformDdl.java | 15 ++ .../ddlgeneration/platform/PostgresDdl.java | 9 +- .../platform/PostgresHistoryDdl.java | 11 +- .../ddlgeneration/platform/SqlServerDdl.java | 27 +-- .../platform/SqlServerHistoryDdl.java | 20 +- .../platform/PlatformDdl_AlterColumnTest.java | 175 +++++++++++------- 10 files changed, 178 insertions(+), 120 deletions(-) diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/DdlWrite.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/DdlWrite.java index 701887824..c8ac57fcd 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/DdlWrite.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/DdlWrite.java @@ -11,7 +11,18 @@ import io.ebeaninternal.dbmigration.model.MTable; import io.ebeaninternal.dbmigration.model.ModelContainer; /** - * Write context holding the buffers for both apply and rollback DDL. + * Write context holding the buffers for both apply and rollback DDL. Description of the apply buffers: + *
    + *
  • applyDropDependencies: Contains drops for foreign keys, indices, constraint or drop history table
  • + *
  • apply: Contains @DbMigraion.before, create table, create sequence or disable system versioning statements
  • + *
  • applyAlterTables: Contains table alters (only that change the table data structure, there may be table alters like + * constraints etc. in postAlter)
  • + *
  • applyPostAlter: Contains check constraints, unique constraints (which CAN be an index), column and table comments, + * @DbMigraion.after, drop tables, drop sequences or enable system versioning statement
  • + *
  • applyForeignKeys: Contains foreign keys and indices. + *
  • applyHistoryView: The views for trigger based history support
  • + *
  • applyHistoryTrigger: The triggers for trigger based history support
  • + *
*/ public class DdlWrite { diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/BaseTableDdl.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/BaseTableDdl.java index dd1a2f282..85e0e4624 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/BaseTableDdl.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/BaseTableDdl.java @@ -558,7 +558,7 @@ public class BaseTableDdl implements TableDdl { @Override public void generate(DdlWrite writer, CreateIndex index) { if (platformInclude(index.getPlatforms())) { - writer.applyPostAlter().appendStatement(platformDdl.createIndex(new WriteCreateIndex(index))); + writer.applyForeignKeys().appendStatement(platformDdl.createIndex(new WriteCreateIndex(index))); writer.dropAll().appendStatement(platformDdl.dropIndex(index.getIndexName(), index.getTableName(), Boolean.TRUE.equals(index.isConcurrent()))); } } @@ -678,7 +678,7 @@ public class BaseTableDdl implements TableDdl { if (!hasValue(sequenceName)) { sequenceName = namingConvention.getSequenceName(dropTable.getName(), dropTable.getSequenceCol()); } - dropSequence(writer.apply(), sequenceName); + dropSequence(writer.applyPostAlter(), sequenceName); } } diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/DbTriggerBasedHistoryDdl.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/DbTriggerBasedHistoryDdl.java index 10644a8a1..e85a6055f 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/DbTriggerBasedHistoryDdl.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/DbTriggerBasedHistoryDdl.java @@ -109,7 +109,7 @@ public abstract class DbTriggerBasedHistoryDdl implements PlatformHistoryDdl { String baseTable = table.getName(); - addSysPeriodColumns(writer.apply(), baseTable, table.getWhenCreatedColumn()); + addSysPeriodColumns(writer, baseTable, table.getWhenCreatedColumn()); createHistoryTable(writer.applyPostAlter(), table); createTriggers(writer, table); @@ -161,20 +161,18 @@ public abstract class DbTriggerBasedHistoryDdl implements PlatformHistoryDdl { DdlBuffer apply = writer.applyHistoryView(); - addSysPeriodColumns(apply, baseTableName, whenCreatedColumn); + addSysPeriodColumns(writer, baseTableName, whenCreatedColumn); createHistoryTable(writer.applyPostAlter(), table); createWithHistoryView(apply, baseTableName); } - protected void addSysPeriodColumns(DdlBuffer apply, String baseTableName, String whenCreatedColumn) { - - apply.append("alter table ").append(baseTableName).append(" add column ") - .append(sysPeriodStart).append(" ").append(sysPeriodType).append(" default ").append(now).endOfStatement(); - apply.append("alter table ").append(baseTableName).append(" add column ") - .append(sysPeriodEnd).append(" ").append(sysPeriodType).endOfStatement(); + protected void addSysPeriodColumns(DdlWrite writer, String baseTableName, String whenCreatedColumn) { + platformDdl.alterTableAddColumn(writer, baseTableName, sysPeriodStart, sysPeriodType, now); + platformDdl.alterTableAddColumn(writer, baseTableName, sysPeriodEnd, sysPeriodType, null); if (whenCreatedColumn != null) { - apply.append("update ").append(baseTableName).append(" set ").append(sysPeriodStart).append(" = ").append(whenCreatedColumn).endOfStatement(); + writer.applyPostAlter() + .append("update ").append(baseTableName).append(" set ").append(sysPeriodStart).append(" = ").append(whenCreatedColumn).endOfStatement(); } } diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/MySqlDdl.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/MySqlDdl.java index 492584fd5..3ce034b46 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/MySqlDdl.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/MySqlDdl.java @@ -40,7 +40,7 @@ public class MySqlDdl extends PlatformDdl { @Override public void alterTableDropColumn(DdlWrite writer, String tableName, String columnName) { if (this.useMigrationStoredProcedures) { - writer.apply().append("CALL usp_ebean_drop_column('").append(tableName).append("', '").append(columnName).append("')").endOfStatement(); + alterTable(writer, tableName).raw("CALL usp_ebean_drop_column('").append(tableName).append("', '").append(columnName).append("')"); } else { super.alterTableDropColumn(writer, tableName, columnName); } @@ -108,16 +108,14 @@ public class MySqlDdl extends PlatformDdl { boolean notnull = (alter.isNotnull() != null) ? alter.isNotnull() : Boolean.TRUE.equals(alter.isCurrentNotnull()); String defaultValue = alter.getDefaultValue() != null ? alter.getDefaultValue() : alter.getCurrentDefaultValue(); - DdlBuffer buffer = writer.apply().append("alter table ").append(tableName) - .appendWithSpace("modify").appendWithSpace(columnName); - buffer.appendWithSpace(type); + DdlBuffer buffer = alterTable(writer, tableName).append("modify", columnName); + buffer.append(type); if (notnull) { buffer.append(" not null"); } if (hasValue(defaultValue) && !DdlHelp.isDropDefault(defaultValue)) { buffer.append(" default ").append(convertDefaultValue(defaultValue)); } - buffer.endOfStatement(); } } diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformDdl.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformDdl.java index 454682a04..3011f2c4a 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformDdl.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformDdl.java @@ -555,6 +555,21 @@ public class PlatformDdl { } + /** + * This method is used from DbTriggerBasedHistoryDdl to add the sysPeriodColumns. + */ + public void alterTableAddColumn(DdlWrite writer, String tableName, String columnName, String columnType, String defaultValue) { + + String convertedType = convert(columnType); + DdlBuffer buffer = alterTable(writer, tableName).append(addColumn, columnName); + buffer.append(convertedType); + + if (defaultValue != null) { + buffer.append(" default "); + buffer.append(defaultValue); + } + } + public void alterTableDropColumn(DdlWrite writer, String tableName, String columnName) { alterTable(writer, tableName).append(dropColumn, columnName); } diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PostgresDdl.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PostgresDdl.java index 984333fbb..1618cfd9e 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PostgresDdl.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PostgresDdl.java @@ -60,11 +60,8 @@ public class PostgresDdl extends PlatformDdl { @Override protected void alterColumnType(DdlWrite writer, AlterColumn alter) { String type = convert(alter.getType()); - - writer.apply().append("alter table ").append(alter.getTableName()) - .appendWithSpace(alterColumn).appendWithSpace(alter.getColumnName()) - .appendWithSpace(columnSetType).append(type) - .append(" using ").append(alter.getColumnName()).append("::").append(type) - .endOfStatement(); + alterTable(writer, alter.getTableName()).append(alterColumn, alter.getColumnName()) + .append(columnSetType).append(type) + .append(" using ").append(alter.getColumnName()).append("::").append(type); } } diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PostgresHistoryDdl.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PostgresHistoryDdl.java index 228b1c529..e4d4d41aa 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PostgresHistoryDdl.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PostgresHistoryDdl.java @@ -29,14 +29,11 @@ public class PostgresHistoryDdl extends DbTriggerBasedHistoryDdl { * Use Postgres range type rather than start and end timestamps. */ @Override - protected void addSysPeriodColumns(DdlBuffer apply, String baseTableName, String whenCreatedColumn) { - apply - .append("alter table ").append(baseTableName) - .append(" add column ").append(sysPeriod).append(" tstzrange not null default tstzrange(").append(now).append(", null)") - .endOfStatement(); - + protected void addSysPeriodColumns(DdlWrite writer, String baseTableName, String whenCreatedColumn) { + platformDdl.alterTableAddColumn(writer, baseTableName, sysPeriod, "tstzrange not null", "tstzrange(" + now + ", null)"); if (whenCreatedColumn != null) { - apply.append("update ").append(baseTableName).append(" set ") + writer.applyPostAlter() + .append("update ").append(baseTableName).append(" set ") .append(sysPeriod).append(" = tstzrange(").append(whenCreatedColumn).append(", null)").endOfStatement(); } } diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/SqlServerDdl.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/SqlServerDdl.java index 0cd256c30..b3d27ddee 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/SqlServerDdl.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/SqlServerDdl.java @@ -142,9 +142,9 @@ public class SqlServerDdl extends PlatformDdl { String columnName = alter.getColumnName(); String defaultValue = alter.getDefaultValue(); if (DdlHelp.isDropDefault(defaultValue)) { - writer.apply().appendStatement(execUspDropDefaultConstraint(tableName, columnName)); + execUspDropDefaultConstraint(writer, tableName, columnName); } else { - writer.apply().appendStatement(execUspDropDefaultConstraint(tableName, columnName)); + execUspDropDefaultConstraint(writer, tableName, columnName); setDefaultValue(writer, tableName, columnName, defaultValue); } } @@ -164,21 +164,17 @@ public class SqlServerDdl extends PlatformDdl { type = convert(type); boolean notnull = (alter.isNotnull() != null) ? alter.isNotnull() : Boolean.TRUE.equals(alter.isCurrentNotnull()); String defaultValue = alter.getDefaultValue() != null ? alter.getDefaultValue() : alter.getCurrentDefaultValue(); - DdlBuffer buffer = writer.apply(); if (hasValue(defaultValue)) { // default value present -> drop default constraint before altering - buffer.appendStatement(execUspDropDefaultConstraint(tableName, columnName)); + execUspDropDefaultConstraint(writer, tableName, columnName); } - buffer = writer.apply().append("alter table ").append(tableName) - .appendWithSpace(alterColumn).appendWithSpace(columnName); - buffer.appendWithSpace(type); + DdlBuffer buffer = alterTable(writer, tableName).append(alterColumn, columnName); + buffer.append(type); if (notnull) { buffer.append(" not null"); } - buffer.endOfStatement(); - // re add - default constraint if (hasValue(defaultValue) && !DdlHelp.isDropDefault(defaultValue)) { setDefaultValue(writer, tableName, columnName, defaultValue); @@ -210,7 +206,7 @@ public class SqlServerDdl extends PlatformDdl { */ @Override public void alterTableDropColumn(DdlWrite writer, String tableName, String columnName) { - writer.apply().append("EXEC usp_ebean_drop_column ").append(tableName).append(", ").append(columnName).endOfStatement(); + alterTable(writer, tableName).raw("EXEC usp_ebean_drop_column ").append(tableName).append(", ").append(columnName); } /** @@ -252,18 +248,15 @@ public class SqlServerDdl extends PlatformDdl { .endOfStatement(); } - private String ifObjectExists(String object, String objectType) { + public static String ifObjectExists(String object, String objectType) { return "IF OBJECT_ID('" + object + "', '" + objectType + "') IS NOT NULL "; } - private String execUspDropDefaultConstraint(String tableName, String columnName) { - return "EXEC usp_ebean_drop_default_constraint " + tableName + ", " + columnName; + private void execUspDropDefaultConstraint(DdlWrite writer, String tableName, String columnName) { + alterTable(writer, tableName).raw("EXEC usp_ebean_drop_default_constraint " + tableName + ", " + columnName); } private void setDefaultValue(DdlWrite writer, String tableName, String columnName, String defaultValue) { - writer.apply().append("alter table ").append(tableName) - .append(" add default ").append(convertDefaultValue(defaultValue)).append(" for ").append(columnName) - .endOfStatement(); + alterTable(writer, tableName).append("add default " + convertDefaultValue(defaultValue) + " for", columnName); } - } diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/SqlServerHistoryDdl.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/SqlServerHistoryDdl.java index 812389c2d..7a10110e3 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/SqlServerHistoryDdl.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/SqlServerHistoryDdl.java @@ -60,27 +60,25 @@ public class SqlServerHistoryDdl implements PlatformHistoryDdl { @Override public void dropHistoryTable(DdlWrite writer, DropHistoryTable dropHistoryTable) { String baseTable = dropHistoryTable.getBaseTable(); - DdlBuffer apply = writer.applyHistoryView(); - apply.append("-- dropping history support for ").append(baseTable).endOfStatement(); // drop default constraints - DdlWrite tmpWriter = new DdlWrite(); AlterColumn alter = new AlterColumn(); alter.setTableName(baseTable); alter.setDefaultValue(DdlHelp.DROP_DEFAULT); alter.setColumnName(systemPeriodStart); - platformDdl.alterColumn(tmpWriter, alter); + platformDdl.alterColumn(writer, alter); alter.setColumnName(systemPeriodEnd); - platformDdl.alterColumn(tmpWriter, alter); - apply.append(tmpWriter.apply().getBuffer()); // workaround - will be refactored later + platformDdl.alterColumn(writer, alter); - // switch of versioning & period + // switch of versioning & period - must be done before altering + DdlBuffer apply = writer.apply(); + apply.append("-- dropping history support for ").append(baseTable).endOfStatement(); apply.append("alter table ").append(baseTable).append(" set (system_versioning = off)").endOfStatement(); apply.append("alter table ").append(baseTable).append(" drop period for system_time").endOfStatement(); - // now drop tables & columns - apply.append("alter table ").append(baseTable).append(" drop column ").append(systemPeriodStart).endOfStatement(); - apply.append("alter table ").append(baseTable).append(" drop column ").append(systemPeriodEnd).endOfStatement(); - apply.append("IF OBJECT_ID('").append(baseTable).append("_history', 'U') IS NOT NULL drop table ").append(baseTable).append("_history").endOfStatement(); apply.end(); + // now drop tables & columns, they will go to alter table/post alter buffers + platformDdl.alterTableDropColumn(writer, baseTable, systemPeriodStart); + platformDdl.alterTableDropColumn(writer, baseTable, systemPeriodEnd); + writer.applyPostAlter().appendStatement(platformDdl.dropTable(baseTable + "_history")); } @Override diff --git a/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformDdl_AlterColumnTest.java b/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformDdl_AlterColumnTest.java index 93042bce0..c6d884c3a 100644 --- a/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformDdl_AlterColumnTest.java +++ b/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformDdl_AlterColumnTest.java @@ -19,7 +19,6 @@ import io.ebeaninternal.dbmigration.migration.Column; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.Test; - import org.assertj.core.api.SoftAssertions; public class PlatformDdl_AlterColumnTest { @@ -101,36 +100,40 @@ public class PlatformDdl_AlterColumnTest { alter.setType("varchar(50)"); // and alter type String sql = alterColumn(h2Ddl, alter); - softly.assertThat(sql).isEqualTo("-- apply alter tables\nalter table mytab alter column acol varchar(50);\n" + softly.assertThat(sql).isEqualTo("-- apply alter tables\n" + + "alter table mytab alter column acol varchar(50);\n" + "alter table mytab alter column acol set default 'hi';\n" + "alter table mytab alter column acol set not null;\n"); sql = alterColumn(pgDdl, alter); - softly.assertThat(sql).isEqualTo("-- apply changes\n" + softly.assertThat(sql).isEqualTo("-- apply alter tables\n" + "alter table mytab alter column acol type varchar(50) using acol::varchar(50);\n" - + "-- apply alter tables\nalter table mytab alter column acol set default 'hi';\n" + + "alter table mytab alter column acol set default 'hi';\n" + "alter table mytab alter column acol set not null;\n"); sql = alterColumn(oraDdl, alter); - softly.assertThat(sql).isEqualTo("-- apply alter tables\nalter table mytab modify acol varchar2(50);\n" + softly.assertThat(sql).isEqualTo("-- apply alter tables\n" + + "alter table mytab modify acol varchar2(50);\n" + "alter table mytab modify acol default 'hi';\n" + "alter table mytab modify acol not null;\n"); sql = alterColumn(mysqlDdl, alter); - softly.assertThat(sql).isEqualTo("-- apply changes\n" + softly.assertThat(sql).isEqualTo("-- apply alter tables\n" + "alter table mytab modify acol varchar(50) not null default 'hi';\n"); sql = alterColumn(sqlServerDdl, alter); - softly.assertThat(sql).isEqualTo("-- apply changes\n" + softly.assertThat(sql).isEqualTo("-- apply alter tables\n" + "EXEC usp_ebean_drop_default_constraint mytab, acol;\n" + "alter table mytab alter column acol nvarchar(50) not null;\n" + "alter table mytab add default 'hi' for acol;\n"); sql = alterColumn(hanaDdl, alter); - softly.assertThat(sql).isEqualTo("-- apply alter tables\nalter table mytab alter (acol nvarchar(50) default 'hi' not null);\n"); + softly.assertThat(sql).isEqualTo("-- apply alter tables\n" + + "alter table mytab alter (acol nvarchar(50) default 'hi' not null);\n"); sql = alterColumn(db2Ddl, alter); - softly.assertThat(sql).isEqualTo("-- apply alter tables\nalter table mytab alter column acol set data type varchar(50);\n" + softly.assertThat(sql).isEqualTo("-- apply alter tables\n" + + "alter table mytab alter column acol set data type varchar(50);\n" + "alter table mytab alter column acol set default 'hi';\n" + "alter table mytab alter column acol set not null;\n"); @@ -141,31 +144,36 @@ public class PlatformDdl_AlterColumnTest { alter.setType(null); // do not alter type sql = alterColumn(h2Ddl, alter); - softly.assertThat(sql).isEqualTo("-- apply alter tables\nalter table mytab alter column acol drop default;\n" + softly.assertThat(sql).isEqualTo("-- apply alter tables\n" + + "alter table mytab alter column acol drop default;\n" + "alter table mytab alter column acol set null;\n"); sql = alterColumn(pgDdl, alter); - softly.assertThat(sql).isEqualTo("-- apply alter tables\nalter table mytab alter column acol drop default;\n" + softly.assertThat(sql).isEqualTo("-- apply alter tables\n" + + "alter table mytab alter column acol drop default;\n" + "alter table mytab alter column acol drop not null;\n"); sql = alterColumn(oraDdl, alter); - softly.assertThat(sql).isEqualTo("-- apply alter tables\nalter table mytab modify acol default null;\n" + softly.assertThat(sql).isEqualTo("-- apply alter tables\n" + + "alter table mytab modify acol default null;\n" + "alter table mytab modify acol null;\n"); sql = alterColumn(mysqlDdl, alter); - softly.assertThat(sql).isEqualTo("-- apply changes\n" + softly.assertThat(sql).isEqualTo("-- apply alter tables\n" + "alter table mytab modify acol varchar(5);\n"); sql = alterColumn(sqlServerDdl, alter); - softly.assertThat(sql).isEqualTo("-- apply changes\n" + softly.assertThat(sql).isEqualTo("-- apply alter tables\n" + "EXEC usp_ebean_drop_default_constraint mytab, acol;\n" + "alter table mytab alter column acol nvarchar(5);\n"); sql = alterColumn(hanaDdl, alter); - softly.assertThat(sql).isEqualTo("-- apply alter tables\nalter table mytab alter (acol nvarchar(5) default null);\n"); + softly.assertThat(sql).isEqualTo("-- apply alter tables\n" + + "alter table mytab alter (acol nvarchar(5) default null);\n"); sql = alterColumn(db2Ddl, alter); - softly.assertThat(sql).isEqualTo("-- apply alter tables\nalter table mytab alter column acol drop default;\n" + softly.assertThat(sql).isEqualTo("-- apply alter tables\n" + + "alter table mytab alter column acol drop default;\n" + "alter table mytab alter column acol drop not null;\n"); } @@ -180,40 +188,50 @@ public class PlatformDdl_AlterColumnTest { alter.setType("varchar(20)"); String sql = alterColumn(h2Ddl, alter); - softly.assertThat(sql).isEqualTo("-- apply alter tables\nalter table mytab alter column acol varchar(20);\n"); + softly.assertThat(sql).isEqualTo("-- apply alter tables\n" + + "alter table mytab alter column acol varchar(20);\n"); sql = alterColumn(pgDdl, alter); - softly.assertThat(sql).isEqualTo("-- apply changes\nalter table mytab alter column acol type varchar(20) using acol::varchar(20);\n"); + softly.assertThat(sql).isEqualTo("-- apply alter tables\n" + + "alter table mytab alter column acol type varchar(20) using acol::varchar(20);\n"); sql = alterColumn(oraDdl, alter); - softly.assertThat(sql).isEqualTo("-- apply alter tables\nalter table mytab modify acol varchar2(20);\n"); + softly.assertThat(sql).isEqualTo("-- apply alter tables\n" + + "alter table mytab modify acol varchar2(20);\n"); sql = alterColumn(mysqlDdl, alter); - softly.assertThat(sql).isEqualTo("-- apply changes\nalter table mytab modify acol varchar(20);\n"); + softly.assertThat(sql).isEqualTo("-- apply alter tables\n" + + "alter table mytab modify acol varchar(20);\n"); sql = alterColumn(sqlServerDdl, alter); - softly.assertThat(sql).isEqualTo("-- apply changes\nalter table mytab alter column acol nvarchar(20);\n"); + softly.assertThat(sql).isEqualTo("-- apply alter tables\n" + + "alter table mytab alter column acol nvarchar(20);\n"); sql = alterColumn(hanaDdl, alter); - softly.assertThat(sql).isEqualTo("-- apply alter tables\nalter table mytab alter (acol nvarchar(20));\n"); + softly.assertThat(sql).isEqualTo("-- apply alter tables\n" + + "alter table mytab alter (acol nvarchar(20));\n"); sql = alterColumn(db2Ddl, alter); - softly.assertThat(sql).isEqualTo("-- apply alter tables\nalter table mytab alter column acol set data type varchar(20);\n"); + softly.assertThat(sql).isEqualTo("-- apply alter tables\n" + + "alter table mytab alter column acol set data type varchar(20);\n"); alter.setType("bigint"); sql = alterColumn(pgDdl, alter); - softly.assertThat(sql).isEqualTo("-- apply changes\nalter table mytab alter column acol type bigint using acol::bigint;\n"); + softly.assertThat(sql).isEqualTo("-- apply alter tables\n" + + "alter table mytab alter column acol type bigint using acol::bigint;\n"); alter.setCurrentType("bigint"); alter.setType("integer"); sql = alterColumn(hanaDdl, alter); - softly.assertThat(sql).isEqualTo("-- apply alter tables\nalter table mytab alter (acol decimal);\n" + softly.assertThat(sql).isEqualTo("-- apply alter tables\n" + + "alter table mytab alter (acol decimal);\n" + "alter table mytab alter (acol integer);\n"); alter.setCurrentType("varchar(20)"); alter.setType("varchar(10)"); sql = alterColumn(hanaDdl, alter); - softly.assertThat(sql).isEqualTo("-- apply alter tables\nalter table mytab alter (acol nclob);\n" + softly.assertThat(sql).isEqualTo("-- apply alter tables\n" + + "alter table mytab alter (acol nclob);\n" + "alter table mytab alter (acol nvarchar(10));\n"); } @@ -228,27 +246,32 @@ public class PlatformDdl_AlterColumnTest { alter.setNotnull(Boolean.TRUE); String sql = alterColumn(h2Ddl, alter); - softly.assertThat(sql).isEqualTo("-- apply alter tables\nalter table mytab alter column acol set not null;\n"); + softly.assertThat(sql).isEqualTo("-- apply alter tables\n" + + "alter table mytab alter column acol set not null;\n"); sql = alterColumn(pgDdl, alter); - softly.assertThat(sql).isEqualTo("-- apply alter tables\nalter table mytab alter column acol set not null;\n"); + softly.assertThat(sql).isEqualTo("-- apply alter tables\n" + + "alter table mytab alter column acol set not null;\n"); sql = alterColumn(oraDdl, alter); - softly.assertThat(sql).isEqualTo("-- apply alter tables\nalter table mytab modify acol not null;\n"); + softly.assertThat(sql).isEqualTo("-- apply alter tables\n" + + "alter table mytab modify acol not null;\n"); sql = alterColumn(mysqlDdl, alter); - softly.assertThat(sql).isEqualTo("-- apply changes\n" + softly.assertThat(sql).isEqualTo("-- apply alter tables\n" + "alter table mytab modify acol varchar(20) not null;\n"); sql = alterColumn(sqlServerDdl, alter); - softly.assertThat(sql).isEqualTo("-- apply changes\n" + softly.assertThat(sql).isEqualTo("-- apply alter tables\n" + "alter table mytab alter column acol nvarchar(20) not null;\n"); sql = alterColumn(hanaDdl, alter); - softly.assertThat(sql).isEqualTo("-- apply alter tables\nalter table mytab alter (acol nvarchar(20) not null);\n"); + softly.assertThat(sql).isEqualTo("-- apply alter tables\n" + + "alter table mytab alter (acol nvarchar(20) not null);\n"); sql = alterColumn(db2Ddl, alter); - softly.assertThat(sql).isEqualTo("-- apply alter tables\nalter table mytab alter column acol set not null;\n"); + softly.assertThat(sql).isEqualTo("-- apply alter tables\n" + + "alter table mytab alter column acol set not null;\n"); } @@ -264,27 +287,34 @@ public class PlatformDdl_AlterColumnTest { alter.setNotnull(Boolean.FALSE); String sql = alterColumn(h2Ddl, alter); - softly.assertThat(sql).isEqualTo("-- apply alter tables\nalter table mytab alter column acol set null;\n"); + softly.assertThat(sql).isEqualTo("-- apply alter tables\n" + + "alter table mytab alter column acol set null;\n"); sql = alterColumn(pgDdl, alter); - softly.assertThat(sql).isEqualTo("-- apply alter tables\nalter table mytab alter column acol drop not null;\n"); + softly.assertThat(sql).isEqualTo("-- apply alter tables\n" + + "alter table mytab alter column acol drop not null;\n"); sql = alterColumn(oraDdl, alter); - softly.assertThat(sql).isEqualTo("-- apply alter tables\nalter table mytab modify acol null;\n"); + softly.assertThat(sql).isEqualTo("-- apply alter tables\n" + + "alter table mytab modify acol null;\n"); sql = alterColumn(mysqlDdl, alter); - softly.assertThat(sql).isEqualTo("-- apply changes\nalter table mytab modify acol varchar(20) default 'hi';\n"); + softly.assertThat(sql).isEqualTo("-- apply alter tables\n" + + "alter table mytab modify acol varchar(20) default 'hi';\n"); sql = alterColumn(sqlServerDdl, alter); - softly.assertThat(sql).isEqualTo("-- apply changes\nEXEC usp_ebean_drop_default_constraint mytab, acol;\n" + softly.assertThat(sql).isEqualTo("-- apply alter tables\n" + + "EXEC usp_ebean_drop_default_constraint mytab, acol;\n" + "alter table mytab alter column acol nvarchar(20);\n" + "alter table mytab add default 'hi' for acol;\n"); sql = alterColumn(hanaDdl, alter); - softly.assertThat(sql).isEqualTo("-- apply alter tables\nalter table mytab alter (acol nvarchar(20) default 'hi');\n"); + softly.assertThat(sql).isEqualTo("-- apply alter tables\n" + + "alter table mytab alter (acol nvarchar(20) default 'hi');\n"); sql = alterColumn(db2Ddl, alter); - softly.assertThat(sql).isEqualTo("-- apply alter tables\nalter table mytab alter column acol drop not null;\n"); + softly.assertThat(sql).isEqualTo("-- apply alter tables\n" + + "alter table mytab alter column acol drop not null;\n"); } @Test @@ -297,27 +327,33 @@ public class PlatformDdl_AlterColumnTest { alter.setDefaultValue("'hi'"); String sql = alterColumn(h2Ddl, alter); - softly.assertThat(sql).isEqualTo("-- apply alter tables\nalter table mytab alter column acol set default 'hi';\n"); + softly.assertThat(sql).isEqualTo("-- apply alter tables\n" + + "alter table mytab alter column acol set default 'hi';\n"); sql = alterColumn(pgDdl, alter); - softly.assertThat(sql).isEqualTo("-- apply alter tables\nalter table mytab alter column acol set default 'hi';\n"); + softly.assertThat(sql).isEqualTo("-- apply alter tables\n" + + "alter table mytab alter column acol set default 'hi';\n"); sql = alterColumn(oraDdl, alter); - softly.assertThat(sql).isEqualTo("-- apply alter tables\nalter table mytab modify acol default 'hi';\n"); + softly.assertThat(sql).isEqualTo("-- apply alter tables\n" + + "alter table mytab modify acol default 'hi';\n"); sql = alterColumn(mysqlDdl, alter); - softly.assertThat(sql).isEqualTo("-- apply alter tables\nalter table mytab alter acol set default 'hi';\n"); + softly.assertThat(sql).isEqualTo("-- apply alter tables\n" + + "alter table mytab alter acol set default 'hi';\n"); sql = alterColumn(sqlServerDdl, alter); - softly.assertThat(sql).isEqualTo("-- apply changes\n" + softly.assertThat(sql).isEqualTo("-- apply alter tables\n" + "EXEC usp_ebean_drop_default_constraint mytab, acol;\n" + "alter table mytab add default 'hi' for acol;\n"); sql = alterColumn(hanaDdl, alter); - softly.assertThat(sql).isEqualTo("-- apply alter tables\nalter table mytab alter (acol nvarchar(20) default 'hi' not null);\n"); + softly.assertThat(sql).isEqualTo("-- apply alter tables\n" + + "alter table mytab alter (acol nvarchar(20) default 'hi' not null);\n"); sql = alterColumn(db2Ddl, alter); - softly.assertThat(sql).isEqualTo("-- apply alter tables\nalter table mytab alter column acol set default 'hi';\n"); + softly.assertThat(sql).isEqualTo("-- apply alter tables\n" + + "alter table mytab alter column acol set default 'hi';\n"); } @Test @@ -331,26 +367,33 @@ public class PlatformDdl_AlterColumnTest { alter.setDefaultValue("'hi'"); String sql = alterColumn(h2Ddl, alter); - softly.assertThat(sql).isEqualTo("-- apply alter tables\nalter table mytab alter column acol set default 'hi';\n"); + softly.assertThat(sql).isEqualTo("-- apply alter tables\n" + + "alter table mytab alter column acol set default 'hi';\n"); sql = alterColumn(pgDdl, alter); - softly.assertThat(sql).isEqualTo("-- apply alter tables\nalter table mytab alter column acol set default 'hi';\n"); + softly.assertThat(sql).isEqualTo("-- apply alter tables\n" + + "alter table mytab alter column acol set default 'hi';\n"); sql = alterColumn(oraDdl, alter); - softly.assertThat(sql).isEqualTo("-- apply alter tables\nalter table mytab modify acol default 'hi';\n"); + softly.assertThat(sql).isEqualTo("-- apply alter tables\n" + + "alter table mytab modify acol default 'hi';\n"); sql = alterColumn(mysqlDdl, alter); - softly.assertThat(sql).isEqualTo("-- apply alter tables\nalter table mytab alter acol set default 'hi';\n"); + softly.assertThat(sql).isEqualTo("-- apply alter tables\n" + + "alter table mytab alter acol set default 'hi';\n"); sql = alterColumn(sqlServerDdl, alter); - softly.assertThat(sql).isEqualTo("-- apply changes\nEXEC usp_ebean_drop_default_constraint mytab, acol;\n" + softly.assertThat(sql).isEqualTo("-- apply alter tables\n" + + "EXEC usp_ebean_drop_default_constraint mytab, acol;\n" + "alter table mytab add default 'hi' for acol;\n"); sql = alterColumn(hanaDdl, alter); - softly.assertThat(sql).isEqualTo("-- apply alter tables\nalter table mytab alter (acol nvarchar(20) default 'hi' not null);\n"); + softly.assertThat(sql).isEqualTo("-- apply alter tables\n" + + "alter table mytab alter (acol nvarchar(20) default 'hi' not null);\n"); sql = alterColumn(db2Ddl, alter); - softly.assertThat(sql).isEqualTo("-- apply alter tables\nalter table mytab alter column acol set default 'hi';\n"); + softly.assertThat(sql).isEqualTo("-- apply alter tables\n" + + "alter table mytab alter column acol set default 'hi';\n"); } @Test @@ -365,25 +408,32 @@ public class PlatformDdl_AlterColumnTest { alter.setDefaultValue("DROP DEFAULT"); String sql = alterColumn(h2Ddl, alter); - softly.assertThat(sql).isEqualTo("-- apply alter tables\nalter table mytab alter column acol drop default;\n"); + softly.assertThat(sql).isEqualTo("-- apply alter tables\n" + + "alter table mytab alter column acol drop default;\n"); sql = alterColumn(pgDdl, alter); - softly.assertThat(sql).isEqualTo("-- apply alter tables\nalter table mytab alter column acol drop default;\n"); + softly.assertThat(sql).isEqualTo("-- apply alter tables\n" + + "alter table mytab alter column acol drop default;\n"); sql = alterColumn(oraDdl, alter); - softly.assertThat(sql).isEqualTo("-- apply alter tables\nalter table mytab modify acol default null;\n"); + softly.assertThat(sql).isEqualTo("-- apply alter tables\n" + + "alter table mytab modify acol default null;\n"); sql = alterColumn(mysqlDdl, alter); - softly.assertThat(sql).isEqualTo("-- apply alter tables\nalter table mytab alter acol drop default;\n"); + softly.assertThat(sql).isEqualTo("-- apply alter tables\n" + + "alter table mytab alter acol drop default;\n"); sql = alterColumn(sqlServerDdl, alter); - softly.assertThat(sql).isEqualTo("-- apply changes\nEXEC usp_ebean_drop_default_constraint mytab, acol;\n"); + softly.assertThat(sql).isEqualTo("-- apply alter tables\n" + + "EXEC usp_ebean_drop_default_constraint mytab, acol;\n"); sql = alterColumn(hanaDdl, alter); - softly.assertThat(sql).isEqualTo("-- apply alter tables\nalter table mytab alter (acol nvarchar(20) default null not null);\n"); + softly.assertThat(sql).isEqualTo("-- apply alter tables\n" + + "alter table mytab alter (acol nvarchar(20) default null not null);\n"); sql = alterColumn(db2Ddl, alter); - softly.assertThat(sql).isEqualTo("-- apply alter tables\nalter table mytab alter column acol drop default;\n"); + softly.assertThat(sql).isEqualTo("-- apply alter tables\n" + + "alter table mytab alter column acol drop default;\n"); } @@ -392,7 +442,8 @@ public class PlatformDdl_AlterColumnTest { DdlWrite writer = new DdlWrite(); oraDdl.alterTableAddColumn(writer, "my_table", simpleColumn(), false, "1"); softly.assertThat(writer.toString()) - .isEqualTo("-- apply alter tables\nalter table my_table add my_column int default 1 not null;\n"); + .isEqualTo("-- apply alter tables\n" + + "alter table my_table add my_column int default 1 not null;\n"); } private Column simpleColumn() { From 89da952b154fcef659e0a048012ec813fac0833e Mon Sep 17 00:00:00 2001 From: Roland Praml Date: Fri, 11 Mar 2022 15:35:15 +0100 Subject: [PATCH 079/114] updated scripts --- .../dbmigration/1.0__initial.sql | 3 +- .../dbmigration/cockroach/1.0__initial.sql | 5 +- .../dbmigration/cockroach/1.1.sql | 4 +- .../cockroach/1.2__dropsFor_1.1.sql | 3 +- .../dbmigration/cockroach/1.3.sql | 4 +- .../cockroach/1.4__dropsFor_1.3.sql | 3 +- .../cockroach/idx_cockroach.migrations | 10 ++-- .../dbmigration/db2fori/1.0__initial.sql | 4 +- .../migrationtest/dbmigration/db2fori/1.1.sql | 4 +- .../dbmigration/db2fori/1.2__dropsFor_1.1.sql | 3 +- .../migrationtest/dbmigration/db2fori/1.3.sql | 4 +- .../dbmigration/db2fori/1.4__dropsFor_1.3.sql | 3 +- .../dbmigration/db2fori/idx_db2.migrations | 10 ++-- .../dbmigration/db2legacy/1.0__initial.sql | 4 +- .../dbmigration/db2legacy/1.1.sql | 4 +- .../db2legacy/1.2__dropsFor_1.1.sql | 3 +- .../dbmigration/db2legacy/1.3.sql | 4 +- .../db2legacy/1.4__dropsFor_1.3.sql | 3 +- .../dbmigration/db2legacy/idx_db2.migrations | 10 ++-- .../dbmigration/db2luw/1.0__initial.sql | 4 +- .../migrationtest/dbmigration/db2luw/1.1.sql | 4 +- .../dbmigration/db2luw/1.2__dropsFor_1.1.sql | 3 +- .../migrationtest/dbmigration/db2luw/1.3.sql | 4 +- .../dbmigration/db2luw/1.4__dropsFor_1.3.sql | 3 +- .../dbmigration/db2luw/idx_db2.migrations | 10 ++-- .../dbmigration/db2zos/1.0__initial.sql | 4 +- .../migrationtest/dbmigration/db2zos/1.1.sql | 4 +- .../dbmigration/db2zos/1.2__dropsFor_1.1.sql | 3 +- .../migrationtest/dbmigration/db2zos/1.3.sql | 4 +- .../dbmigration/db2zos/1.4__dropsFor_1.3.sql | 3 +- .../dbmigration/db2zos/idx_db2.migrations | 10 ++-- .../dbmigration/generic/1.0__initial.sql | 5 +- .../migrationtest/dbmigration/generic/1.1.sql | 4 +- .../migrationtest/dbmigration/generic/1.3.sql | 4 +- .../generic/idx_generic.migrations | 6 +-- .../dbmigration/h2/1.0__initial.sql | 25 +++++----- .../migrationtest/dbmigration/h2/1.1.sql | 8 +-- .../dbmigration/h2/1.2__dropsFor_1.1.sql | 3 +- .../migrationtest/dbmigration/h2/1.3.sql | 4 +- .../dbmigration/h2/1.4__dropsFor_1.3.sql | 3 +- .../dbmigration/h2/idx_h2.migrations | 10 ++-- .../dbmigration/hana/1.0__initial.sql | 5 +- .../migrationtest/dbmigration/hana/1.1.sql | 4 +- .../migrationtest/dbmigration/hana/1.3.sql | 4 +- .../dbmigration/hana/idx_hana.migrations | 6 +-- .../dbmigration/hsqldb/1.0__initial.sql | 5 +- .../migrationtest/dbmigration/hsqldb/1.1.sql | 4 +- .../dbmigration/hsqldb/1.2__dropsFor_1.1.sql | 3 +- .../migrationtest/dbmigration/hsqldb/1.3.sql | 4 +- .../dbmigration/hsqldb/1.4__dropsFor_1.3.sql | 3 +- .../dbmigration/hsqldb/idx_hsqldb.migrations | 10 ++-- .../mariadb-noprocs/1.0__initial.sql | 5 +- .../dbmigration/mariadb-noprocs/1.1.sql | 20 ++++---- .../mariadb-noprocs/1.2__dropsFor_1.1.sql | 3 +- .../dbmigration/mariadb-noprocs/1.3.sql | 18 +++---- .../mariadb-noprocs/1.4__dropsFor_1.3.sql | 3 +- .../mariadb-noprocs/idx_mariadb.migrations | 10 ++-- .../dbmigration/mariadb/1.0__initial.sql | 5 +- .../migrationtest/dbmigration/mariadb/1.1.sql | 20 ++++---- .../dbmigration/mariadb/1.2__dropsFor_1.1.sql | 4 +- .../migrationtest/dbmigration/mariadb/1.3.sql | 18 +++---- .../dbmigration/mariadb/1.4__dropsFor_1.3.sql | 4 +- .../mariadb/idx_mariadb.migrations | 10 ++-- .../dbmigration/mysql/1.0__initial.sql | 25 +++++----- .../migrationtest/dbmigration/mysql/1.1.sql | 26 +++++----- .../dbmigration/mysql/1.2__dropsFor_1.1.sql | 4 +- .../migrationtest/dbmigration/mysql/1.3.sql | 24 ++++----- .../dbmigration/mysql/1.4__dropsFor_1.3.sql | 6 +-- .../dbmigration/mysql/idx_mysql.migrations | 10 ++-- .../dbmigration/mysql55/1.0__initial.sql | 25 +++++----- .../migrationtest/dbmigration/mysql55/1.1.sql | 26 +++++----- .../dbmigration/mysql55/1.2__dropsFor_1.1.sql | 4 +- .../migrationtest/dbmigration/mysql55/1.3.sql | 24 ++++----- .../dbmigration/mysql55/1.4__dropsFor_1.3.sql | 6 +-- .../dbmigration/mysql55/idx_mysql.migrations | 10 ++-- .../dbmigration/nuodb/1.0__initial.sql | 25 +++++----- .../migrationtest/dbmigration/nuodb/1.1.sql | 8 +-- .../dbmigration/nuodb/1.2__dropsFor_1.1.sql | 3 +- .../migrationtest/dbmigration/nuodb/1.3.sql | 4 +- .../dbmigration/nuodb/1.4__dropsFor_1.3.sql | 3 +- .../dbmigration/nuodb/idx_nuodb.migrations | 10 ++-- .../dbmigration/oracle/1.0__initial.sql | 5 +- .../migrationtest/dbmigration/oracle/1.1.sql | 4 +- .../dbmigration/oracle/1.2__dropsFor_1.1.sql | 19 ++++--- .../migrationtest/dbmigration/oracle/1.3.sql | 4 +- .../dbmigration/oracle/1.4__dropsFor_1.3.sql | 21 ++++---- .../dbmigration/oracle/idx_oracle.migrations | 10 ++-- .../dbmigration/oracle11/1.0__initial.sql | 5 +- .../dbmigration/oracle11/1.1.sql | 4 +- .../oracle11/1.2__dropsFor_1.1.sql | 19 ++++--- .../dbmigration/oracle11/1.3.sql | 4 +- .../oracle11/1.4__dropsFor_1.3.sql | 21 ++++---- .../oracle11/idx_oracle.migrations | 10 ++-- .../dbmigration/postgres/1.0__initial.sql | 21 ++++---- .../dbmigration/postgres/1.1.sql | 16 +++--- .../postgres/1.2__dropsFor_1.1.sql | 3 +- .../dbmigration/postgres/1.3.sql | 16 +++--- .../postgres/1.4__dropsFor_1.3.sql | 3 +- .../postgres/idx_postgres.migrations | 10 ++-- .../dbmigration/postgres9/1.0__initial.sql | 21 ++++---- .../dbmigration/postgres9/1.1.sql | 16 +++--- .../postgres9/1.2__dropsFor_1.1.sql | 3 +- .../dbmigration/postgres9/1.3.sql | 16 +++--- .../postgres9/1.4__dropsFor_1.3.sql | 3 +- .../postgres9/idx_postgres.migrations | 10 ++-- .../dbmigration/sqlanywhere/1.0__initial.sql | 5 +- .../dbmigration/sqlanywhere/1.1.sql | 4 +- .../dbmigration/sqlanywhere/1.3.sql | 4 +- .../sqlanywhere/idx_sqlanywhere.migrations | 6 +-- .../dbmigration/sqlite/1.0__initial.sql | 2 +- .../migrationtest/dbmigration/sqlite/1.1.sql | 4 +- .../migrationtest/dbmigration/sqlite/1.3.sql | 4 +- .../dbmigration/sqlite/idx_sqlite.migrations | 6 +-- .../dbmigration/sqlserver16/1.0__initial.sql | 4 +- .../dbmigration/sqlserver16/1.1.sql | 50 +++++++++---------- .../sqlserver16/1.2__dropsFor_1.1.sql | 4 +- .../dbmigration/sqlserver16/1.3.sql | 36 ++++++------- .../sqlserver16/1.4__dropsFor_1.3.sql | 22 ++++---- .../sqlserver16/idx_sqlserver.migrations | 10 ++-- .../dbmigration/sqlserver17/1.0__initial.sql | 4 +- .../dbmigration/sqlserver17/1.1.sql | 50 +++++++++---------- .../sqlserver17/1.2__dropsFor_1.1.sql | 4 +- .../dbmigration/sqlserver17/1.3.sql | 36 ++++++------- .../sqlserver17/1.4__dropsFor_1.3.sql | 22 ++++---- .../sqlserver17/idx_sqlserver.migrations | 10 ++-- .../dbmigration/yugabyte/1.0__initial.sql | 15 +++--- .../dbmigration/yugabyte/1.1.sql | 14 +++--- .../yugabyte/1.2__dropsFor_1.1.sql | 3 +- .../dbmigration/yugabyte/1.3.sql | 10 ++-- .../yugabyte/1.4__dropsFor_1.3.sql | 3 +- .../yugabyte/idx_yugabyte.migrations | 10 ++-- 131 files changed, 602 insertions(+), 631 deletions(-) diff --git a/ebean-test/src/test/resources/migrationtest-history/dbmigration/1.0__initial.sql b/ebean-test/src/test/resources/migrationtest-history/dbmigration/1.0__initial.sql index 0d622f63b..43a438d07 100644 --- a/ebean-test/src/test/resources/migrationtest-history/dbmigration/1.0__initial.sql +++ b/ebean-test/src/test/resources/migrationtest-history/dbmigration/1.0__initial.sql @@ -4,9 +4,10 @@ create table migtest_e_history7 ( id integer generated by default as identity not null, constraint pk_migtest_e_history7 primary key (id) ); + +-- apply alter tables alter table migtest_e_history7 add column sys_period_start timestamp default now(); alter table migtest_e_history7 add column sys_period_end timestamp; - -- apply post alter create table migtest_e_history7_history( id integer, 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 index d114fcfb6..b9b139994 100644 --- 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 @@ -162,9 +162,6 @@ create table migtest_oto_master ( constraint pk_migtest_oto_master primary key (id) ); --- apply post alter -create index ix_migtest_e_basic_indextest1 on migtest_e_basic (indextest1); -create index ix_migtest_e_basic_indextest5 on migtest_e_basic (indextest5); -- foreign keys and indices 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; @@ -175,3 +172,5 @@ 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; +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/cockroach/1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/cockroach/1.1.sql index 0d9764f59..11933d07c 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 @@ -83,8 +83,6 @@ alter table migtest_e_basic add constraint uq_migtest_e_basic_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); -create index ix_migtest_e_basic_indextest3 on migtest_e_basic (indextest3); -create index ix_migtest_e_basic_indextest6 on migtest_e_basic (indextest6); -- foreign keys and indices 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; @@ -112,3 +110,5 @@ alter table migtest_fk_set_null add constraint fk_migtest_fk_set_null_one_id for 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_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 index ix_migtest_e_basic_indextest3 on migtest_e_basic (indextest3); +create index ix_migtest_e_basic_indextest6 on migtest_e_basic (indextest6); 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 index 1014909e1..e3450aa6a 100644 --- 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 @@ -1,6 +1,4 @@ -- Migrationscripts for ebean unittest --- apply changes -drop sequence if exists migtest_e_ref_seq; -- apply alter tables alter table migtest_e_basic drop column description_file; alter table migtest_e_basic drop column old_boolean; @@ -10,3 +8,4 @@ alter table migtest_e_history2 drop column obsolete_string1; alter table migtest_e_history2 drop column obsolete_string2; -- apply post alter 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 index f25812e9b..fa5bd5461 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/cockroach/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/cockroach/1.3.sql @@ -58,11 +58,11 @@ alter table migtest_e_basic add constraint ck_migtest_e_basic_status2 check ( st 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 add constraint ck_migtest_e_enum_test_status check ( test_status in ('N','A','I')); -create index ix_migtest_e_basic_indextest1 on migtest_e_basic (indextest1); -create index ix_migtest_e_basic_indextest5 on migtest_e_basic (indextest5); -- foreign keys and indices 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_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; +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/cockroach/1.4__dropsFor_1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/cockroach/1.4__dropsFor_1.3.sql index c84a63353..6db145c5c 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 @@ -1,6 +1,4 @@ -- Migrationscripts for ebean unittest --- apply changes -drop sequence if exists migtest_e_user_seq; -- apply alter tables alter table migtest_ckey_detail drop column one_key; alter table migtest_ckey_detail drop column two_key; @@ -18,6 +16,7 @@ alter table migtest_e_softdelete drop column deleted; alter table migtest_oto_child drop column master_id; -- apply post alter 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 c602c4da1..680ddc8cb 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 @@ -1878005982, 1.0__initial.sql --1761478813, 1.1.sql -28732175, 1.2__dropsFor_1.1.sql -1618620048, 1.3.sql -1999778259, 1.4__dropsFor_1.3.sql +246318791, 1.0__initial.sql +1109849447, 1.1.sql +240919209, 1.2__dropsFor_1.1.sql +612721597, 1.3.sql +-820814009, 1.4__dropsFor_1.3.sql 561281075, R__order_views.sql 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 index a7eab8f65..7afc39559 100644 --- 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 @@ -163,8 +163,6 @@ create table migtest_oto_master ( 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_ref add constraint uq_migtest_e_ref_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); -- foreign keys and indices 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; @@ -175,3 +173,5 @@ 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; +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/db2fori/1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/db2fori/1.1.sql index f5892d818..b459d8c09 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/db2fori/1.1.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2fori/1.1.sql @@ -86,8 +86,6 @@ create unique index uq_migtest_e_basic_indextest4 on migtest_e_basic(indextest4) create unique index uq_migtest_e_basic_indextest5 on migtest_e_basic(indextest5) exclude null keys; comment on column migtest_e_history.test_string is 'Column altered to long now'; comment on table migtest_e_history is 'We have history now'; -create index ix_migtest_e_basic_indextest3 on migtest_e_basic (indextest3); -create index ix_migtest_e_basic_indextest6 on migtest_e_basic (indextest6); -- foreign keys and indices 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; @@ -115,3 +113,5 @@ alter table migtest_fk_set_null add constraint fk_migtest_fk_set_null_one_id for 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_oto_child add constraint fk_migtest_oto_child_master_id foreign key (master_id) references migtest_oto_master (id) on delete restrict; +create index ix_migtest_e_basic_indextest3 on migtest_e_basic (indextest3); +create index ix_migtest_e_basic_indextest6 on migtest_e_basic (indextest6); diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/db2fori/1.2__dropsFor_1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/db2fori/1.2__dropsFor_1.1.sql index 8830fb501..c7f896822 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/db2fori/1.2__dropsFor_1.1.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2fori/1.2__dropsFor_1.1.sql @@ -1,6 +1,4 @@ -- Migrationscripts for ebean unittest --- apply changes -drop sequence migtest_e_ref_seq; -- apply alter tables alter table migtest_e_basic drop column description_file; alter table migtest_e_basic drop column old_boolean; @@ -10,3 +8,4 @@ alter table migtest_e_history2 drop column obsolete_string1; alter table migtest_e_history2 drop column obsolete_string2; -- apply post alter drop table migtest_e_ref; +drop sequence migtest_e_ref_seq; 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 index 58eac737a..7e64cc664 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/db2fori/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2fori/1.3.sql @@ -60,11 +60,11 @@ create unique index uq_migtest_e_basic_indextest6 on migtest_e_basic(indextest6) 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 ''; -create index ix_migtest_e_basic_indextest1 on migtest_e_basic (indextest1); -create index ix_migtest_e_basic_indextest5 on migtest_e_basic (indextest5); -- foreign keys and indices 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_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; +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/db2fori/1.4__dropsFor_1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/db2fori/1.4__dropsFor_1.3.sql index 60a4a5766..43523ab64 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/db2fori/1.4__dropsFor_1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2fori/1.4__dropsFor_1.3.sql @@ -1,6 +1,4 @@ -- Migrationscripts for ebean unittest --- apply changes -drop sequence migtest_e_user_seq; -- apply alter tables alter table migtest_ckey_detail drop column one_key; alter table migtest_ckey_detail drop column two_key; @@ -18,6 +16,7 @@ alter table migtest_e_softdelete drop column deleted; alter table migtest_oto_child drop column master_id; -- apply post alter 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/db2fori/idx_db2.migrations b/ebean-test/src/test/resources/migrationtest/dbmigration/db2fori/idx_db2.migrations index c2b1bd03e..85f2f8601 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/db2fori/idx_db2.migrations +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2fori/idx_db2.migrations @@ -1,7 +1,7 @@ -579518381, 1.0__initial.sql -6421452, 1.1.sql -1337198247, 1.2__dropsFor_1.1.sql --1403790229, 1.3.sql --1778697851, 1.4__dropsFor_1.3.sql +101990988, 1.0__initial.sql +1882152352, 1.1.sql +-2081356955, 1.2__dropsFor_1.1.sql +-1397487290, 1.3.sql +-1610622815, 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 index 2467d628e..bfc570b84 100644 --- 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 @@ -163,8 +163,6 @@ create table migtest_oto_master ( 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_ref add constraint uq_mgtst__rf_nm unique (name); -create index ix_mgtst__b_eu8csq on migtest_e_basic (indextest1); -create index ix_mgtst__b_eu8csu on migtest_e_basic (indextest5); -- foreign keys and indices 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; @@ -175,3 +173,5 @@ alter table migtest_fk_set_null add constraint fk_mgtst_fk_wicx8x foreign key (o 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; +create index ix_mgtst__b_eu8csq on migtest_e_basic (indextest1); +create index ix_mgtst__b_eu8csu on migtest_e_basic (indextest5); 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 index 97a658a2c..058fce09a 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/db2legacy/1.1.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2legacy/1.1.sql @@ -86,8 +86,6 @@ create unique index uq_migtest_e_basic_indextest4 on migtest_e_basic(indextest4) create unique index uq_migtest_e_basic_indextest5 on migtest_e_basic(indextest5) exclude null keys; comment on column migtest_e_history.test_string is 'Column altered to long now'; comment on table migtest_e_history is 'We have history now'; -create index ix_mgtst__b_eu8css on migtest_e_basic (indextest3); -create index ix_mgtst__b_eu8csv on migtest_e_basic (indextest6); -- foreign keys and indices 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; @@ -115,3 +113,5 @@ alter table migtest_fk_set_null add constraint fk_mgtst_fk_wicx8x foreign key (o 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_oto_child add constraint fk_mgtst_t__csyl38 foreign key (master_id) references migtest_oto_master (id) on delete restrict; +create index ix_mgtst__b_eu8css on migtest_e_basic (indextest3); +create index ix_mgtst__b_eu8csv on migtest_e_basic (indextest6); 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 index 8830fb501..c7f896822 100644 --- 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 @@ -1,6 +1,4 @@ -- Migrationscripts for ebean unittest --- apply changes -drop sequence migtest_e_ref_seq; -- apply alter tables alter table migtest_e_basic drop column description_file; alter table migtest_e_basic drop column old_boolean; @@ -10,3 +8,4 @@ alter table migtest_e_history2 drop column obsolete_string1; alter table migtest_e_history2 drop column obsolete_string2; -- apply post alter 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 index ab7160575..5adb11e10 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/db2legacy/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2legacy/1.3.sql @@ -60,11 +60,11 @@ create unique index uq_migtest_e_basic_indextest6 on migtest_e_basic(indextest6) 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 ''; -create index ix_mgtst__b_eu8csq on migtest_e_basic (indextest1); -create index ix_mgtst__b_eu8csu on migtest_e_basic (indextest5); -- foreign keys and indices 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_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; +create index ix_mgtst__b_eu8csq on migtest_e_basic (indextest1); +create index ix_mgtst__b_eu8csu on migtest_e_basic (indextest5); 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 index 60a4a5766..43523ab64 100644 --- 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 @@ -1,6 +1,4 @@ -- Migrationscripts for ebean unittest --- apply changes -drop sequence migtest_e_user_seq; -- apply alter tables alter table migtest_ckey_detail drop column one_key; alter table migtest_ckey_detail drop column two_key; @@ -18,6 +16,7 @@ alter table migtest_e_softdelete drop column deleted; alter table migtest_oto_child drop column master_id; -- apply post alter 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/idx_db2.migrations b/ebean-test/src/test/resources/migrationtest/dbmigration/db2legacy/idx_db2.migrations index 80170d60d..58003092b 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/db2legacy/idx_db2.migrations +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2legacy/idx_db2.migrations @@ -1,7 +1,7 @@ --1323401755, 1.0__initial.sql --1188471856, 1.1.sql -1337198247, 1.2__dropsFor_1.1.sql --1336058490, 1.3.sql --1778697851, 1.4__dropsFor_1.3.sql +1364985791, 1.0__initial.sql +1265418767, 1.1.sql +-2081356955, 1.2__dropsFor_1.1.sql +-46810481, 1.3.sql +-1610622815, 1.4__dropsFor_1.3.sql 561281075, R__order_views.sql diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/db2luw/1.0__initial.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/db2luw/1.0__initial.sql index 59f21111c..714ed5d30 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/db2luw/1.0__initial.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2luw/1.0__initial.sql @@ -163,8 +163,6 @@ create table migtest_oto_master ( 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_ref add constraint uq_migtest_e_ref_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); -- foreign keys and indices 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; @@ -175,3 +173,5 @@ 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; +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/db2luw/1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/db2luw/1.1.sql index ad5b24dae..365d84144 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/db2luw/1.1.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2luw/1.1.sql @@ -86,8 +86,6 @@ create unique index uq_migtest_e_basic_indextest4 on migtest_e_basic(indextest4) create unique index uq_migtest_e_basic_indextest5 on migtest_e_basic(indextest5) exclude null keys; comment on column migtest_e_history.test_string is 'Column altered to long now'; comment on table migtest_e_history is 'We have history now'; -create index ix_migtest_e_basic_indextest3 on migtest_e_basic (indextest3); -create index ix_migtest_e_basic_indextest6 on migtest_e_basic (indextest6); -- foreign keys and indices 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; @@ -115,3 +113,5 @@ alter table migtest_fk_set_null add constraint fk_migtest_fk_set_null_one_id for 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_oto_child add constraint fk_migtest_oto_child_master_id foreign key (master_id) references migtest_oto_master (id) on delete restrict; +create index ix_migtest_e_basic_indextest3 on migtest_e_basic (indextest3); +create index ix_migtest_e_basic_indextest6 on migtest_e_basic (indextest6); 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 index 8830fb501..c7f896822 100644 --- 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 @@ -1,6 +1,4 @@ -- Migrationscripts for ebean unittest --- apply changes -drop sequence migtest_e_ref_seq; -- apply alter tables alter table migtest_e_basic drop column description_file; alter table migtest_e_basic drop column old_boolean; @@ -10,3 +8,4 @@ alter table migtest_e_history2 drop column obsolete_string1; alter table migtest_e_history2 drop column obsolete_string2; -- apply post alter drop table migtest_e_ref; +drop sequence migtest_e_ref_seq; diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/db2luw/1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/db2luw/1.3.sql index 082757e88..6c4433f9d 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/db2luw/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2luw/1.3.sql @@ -60,11 +60,11 @@ create unique index uq_migtest_e_basic_indextest6 on migtest_e_basic(indextest6) 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 ''; -create index ix_migtest_e_basic_indextest1 on migtest_e_basic (indextest1); -create index ix_migtest_e_basic_indextest5 on migtest_e_basic (indextest5); -- foreign keys and indices 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_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; +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/db2luw/1.4__dropsFor_1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/db2luw/1.4__dropsFor_1.3.sql index 60a4a5766..43523ab64 100644 --- 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 @@ -1,6 +1,4 @@ -- Migrationscripts for ebean unittest --- apply changes -drop sequence migtest_e_user_seq; -- apply alter tables alter table migtest_ckey_detail drop column one_key; alter table migtest_ckey_detail drop column two_key; @@ -18,6 +16,7 @@ alter table migtest_e_softdelete drop column deleted; alter table migtest_oto_child drop column master_id; -- apply post alter 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/idx_db2.migrations b/ebean-test/src/test/resources/migrationtest/dbmigration/db2luw/idx_db2.migrations index 2648358d7..99b573f52 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/db2luw/idx_db2.migrations +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2luw/idx_db2.migrations @@ -1,7 +1,7 @@ -377550917, 1.0__initial.sql --1004566762, 1.1.sql -1337198247, 1.2__dropsFor_1.1.sql --996351148, 1.3.sql --1778697851, 1.4__dropsFor_1.3.sql +840828324, 1.0__initial.sql +-1269751430, 1.1.sql +-2081356955, 1.2__dropsFor_1.1.sql +-998558087, 1.3.sql +-1610622815, 1.4__dropsFor_1.3.sql 561281075, R__order_views.sql 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 index 59f21111c..714ed5d30 100644 --- 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 @@ -163,8 +163,6 @@ create table migtest_oto_master ( 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_ref add constraint uq_migtest_e_ref_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); -- foreign keys and indices 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; @@ -175,3 +173,5 @@ 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; +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/db2zos/1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/db2zos/1.1.sql index ad5b24dae..365d84144 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/db2zos/1.1.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2zos/1.1.sql @@ -86,8 +86,6 @@ create unique index uq_migtest_e_basic_indextest4 on migtest_e_basic(indextest4) create unique index uq_migtest_e_basic_indextest5 on migtest_e_basic(indextest5) exclude null keys; comment on column migtest_e_history.test_string is 'Column altered to long now'; comment on table migtest_e_history is 'We have history now'; -create index ix_migtest_e_basic_indextest3 on migtest_e_basic (indextest3); -create index ix_migtest_e_basic_indextest6 on migtest_e_basic (indextest6); -- foreign keys and indices 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; @@ -115,3 +113,5 @@ alter table migtest_fk_set_null add constraint fk_migtest_fk_set_null_one_id for 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_oto_child add constraint fk_migtest_oto_child_master_id foreign key (master_id) references migtest_oto_master (id) on delete restrict; +create index ix_migtest_e_basic_indextest3 on migtest_e_basic (indextest3); +create index ix_migtest_e_basic_indextest6 on migtest_e_basic (indextest6); 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 index 8830fb501..c7f896822 100644 --- 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 @@ -1,6 +1,4 @@ -- Migrationscripts for ebean unittest --- apply changes -drop sequence migtest_e_ref_seq; -- apply alter tables alter table migtest_e_basic drop column description_file; alter table migtest_e_basic drop column old_boolean; @@ -10,3 +8,4 @@ alter table migtest_e_history2 drop column obsolete_string1; alter table migtest_e_history2 drop column obsolete_string2; -- apply post alter 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 index 082757e88..6c4433f9d 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/db2zos/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2zos/1.3.sql @@ -60,11 +60,11 @@ create unique index uq_migtest_e_basic_indextest6 on migtest_e_basic(indextest6) 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 ''; -create index ix_migtest_e_basic_indextest1 on migtest_e_basic (indextest1); -create index ix_migtest_e_basic_indextest5 on migtest_e_basic (indextest5); -- foreign keys and indices 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_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; +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/db2zos/1.4__dropsFor_1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/db2zos/1.4__dropsFor_1.3.sql index 60a4a5766..43523ab64 100644 --- 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 @@ -1,6 +1,4 @@ -- Migrationscripts for ebean unittest --- apply changes -drop sequence migtest_e_user_seq; -- apply alter tables alter table migtest_ckey_detail drop column one_key; alter table migtest_ckey_detail drop column two_key; @@ -18,6 +16,7 @@ alter table migtest_e_softdelete drop column deleted; alter table migtest_oto_child drop column master_id; -- apply post alter 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/idx_db2.migrations b/ebean-test/src/test/resources/migrationtest/dbmigration/db2zos/idx_db2.migrations index 2648358d7..99b573f52 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/db2zos/idx_db2.migrations +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2zos/idx_db2.migrations @@ -1,7 +1,7 @@ -377550917, 1.0__initial.sql --1004566762, 1.1.sql -1337198247, 1.2__dropsFor_1.1.sql --996351148, 1.3.sql --1778697851, 1.4__dropsFor_1.3.sql +840828324, 1.0__initial.sql +-1269751430, 1.1.sql +-2081356955, 1.2__dropsFor_1.1.sql +-998558087, 1.3.sql +-1610622815, 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 index 9f6e075c4..d816db2f9 100644 --- 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 @@ -162,9 +162,6 @@ create table migtest_oto_master ( constraint pk_migtest_oto_master primary key (id) ); --- apply post alter -create index ix_migtest_e_basic_indextest1 on migtest_e_basic (indextest1); -create index ix_migtest_e_basic_indextest5 on migtest_e_basic (indextest5); -- foreign keys and indices 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; @@ -175,3 +172,5 @@ 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; +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/generic/1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/generic/1.1.sql index 8bb1a8a35..4397ca096 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 @@ -85,8 +85,6 @@ alter table migtest_e_basic add constraint uq_migtest_e_basic_indextest4 unique alter table migtest_e_basic add constraint uq_migtest_e_basic_indextest5 unique (indextest5); comment on column migtest_e_history.test_string is 'Column altered to long now'; comment on table migtest_e_history is 'We have history now'; -create index ix_migtest_e_basic_indextest3 on migtest_e_basic (indextest3); -create index ix_migtest_e_basic_indextest6 on migtest_e_basic (indextest6); -- foreign keys and indices 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; @@ -114,3 +112,5 @@ alter table migtest_fk_set_null add constraint fk_migtest_fk_set_null_one_id for 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_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 index ix_migtest_e_basic_indextest3 on migtest_e_basic (indextest3); +create index ix_migtest_e_basic_indextest6 on migtest_e_basic (indextest6); 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 index 646c698cc..9b70e9ce7 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/generic/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/generic/1.3.sql @@ -60,11 +60,11 @@ alter table migtest_e_basic add constraint uq_migtest_e_basic_indextest6 unique 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 ''; -create index ix_migtest_e_basic_indextest1 on migtest_e_basic (indextest1); -create index ix_migtest_e_basic_indextest5 on migtest_e_basic (indextest5); -- foreign keys and indices 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_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; +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/generic/idx_generic.migrations b/ebean-test/src/test/resources/migrationtest/dbmigration/generic/idx_generic.migrations index 0508561f5..763650cdd 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 @@ --1019203661, 1.0__initial.sql -523189619, 1.1.sql +-1254950549, 1.0__initial.sql +-905429129, 1.1.sql 1279151426, 1.2__dropsFor_1.1.sql -1114563224, 1.3.sql +110210997, 1.3.sql 80209848, 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 index 620887caf..c2e7c9fea 100644 --- 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 @@ -99,32 +99,24 @@ create table migtest_e_history2 ( obsolete_string2 varchar(255), constraint pk_migtest_e_history2 primary key (id) ); -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_history3 ( id integer generated by default as identity not null, test_string varchar(255), constraint pk_migtest_e_history3 primary key (id) ); -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_history4 ( id integer generated by default as identity not null, test_number integer, constraint pk_migtest_e_history4 primary key (id) ); -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_history5 ( id integer generated by default as identity not null, test_number integer, constraint pk_migtest_e_history5 primary key (id) ); -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_history6 ( id integer generated by default as identity not null, @@ -132,8 +124,6 @@ create table migtest_e_history6 ( test_number2 integer not null, constraint pk_migtest_e_history6 primary key (id) ); -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_ref ( id integer generated by default as identity not null, @@ -172,6 +162,17 @@ create table migtest_oto_master ( constraint pk_migtest_oto_master primary key (id) ); +-- apply alter tables +alter table migtest_e_history2 add column sys_period_start timestamp default now(); +alter table migtest_e_history2 add column sys_period_end timestamp; +alter table migtest_e_history3 add column sys_period_start timestamp default now(); +alter table migtest_e_history3 add column sys_period_end timestamp; +alter table migtest_e_history4 add column sys_period_start timestamp default now(); +alter table migtest_e_history4 add column sys_period_end timestamp; +alter table migtest_e_history5 add column sys_period_start timestamp default now(); +alter table migtest_e_history5 add column sys_period_end timestamp; +alter table migtest_e_history6 add column sys_period_start timestamp default now(); +alter table migtest_e_history6 add column sys_period_end timestamp; -- apply post alter create table migtest_e_history2_history( id integer, @@ -216,8 +217,6 @@ create table migtest_e_history6_history( ); create view migtest_e_history6_with_history as select * from migtest_e_history6 union all select * from migtest_e_history6_history; -create index ix_migtest_e_basic_indextest1 on migtest_e_basic (indextest1); -create index ix_migtest_e_basic_indextest5 on migtest_e_basic (indextest5); -- foreign keys and indices 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; @@ -228,6 +227,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; +create index ix_migtest_e_basic_indextest1 on migtest_e_basic (indextest1); +create index ix_migtest_e_basic_indextest5 on migtest_e_basic (indextest5); -- apply history trigger 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"; 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 186ab2a4c..860ca30d5 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 @@ -42,8 +42,6 @@ update migtest_e_basic set status = 'A' where status is null; -- rename all collisions; insert into migtest_e_user (id) select distinct user_id from migtest_e_basic; -alter table migtest_e_history add column sys_period_start timestamp default now(); -alter table migtest_e_history add column sys_period_end timestamp; -- NOTE: table has @History - special migration may be necessary update migtest_e_history2 set test_string = 'unknown' where test_string is null; @@ -65,6 +63,8 @@ alter table migtest_e_basic add column new_boolean_field boolean default true no 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 column new_integer integer default 42 not null; +alter table migtest_e_history add column sys_period_start timestamp default now(); +alter table migtest_e_history add column sys_period_end timestamp; alter table migtest_e_history alter column test_string bigint; alter table migtest_e_history2 alter column test_string set default 'unknown'; alter table migtest_e_history2 alter column test_string set not null; @@ -104,8 +104,6 @@ create view migtest_e_history_with_history as select * from migtest_e_history un comment on column migtest_e_history.test_string is 'Column altered to long now'; comment on table migtest_e_history is 'We have history now'; -create index ix_migtest_e_basic_indextest3 on migtest_e_basic (indextest3); -create index ix_migtest_e_basic_indextest6 on migtest_e_basic (indextest6); -- foreign keys and indices 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; @@ -133,6 +131,8 @@ alter table migtest_fk_set_null add constraint fk_migtest_fk_set_null_one_id for 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_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 index ix_migtest_e_basic_indextest3 on migtest_e_basic (indextest3); +create index ix_migtest_e_basic_indextest6 on migtest_e_basic (indextest6); -- apply history view 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/h2/1.2__dropsFor_1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/h2/1.2__dropsFor_1.1.sql index bd026762c..1d3691cc8 100644 --- 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 @@ -1,8 +1,6 @@ -- Migrationscripts for ebean unittest -- drop dependencies drop view if exists migtest_e_history2_with_history; --- apply changes -drop sequence if exists migtest_e_ref_seq; -- apply alter tables alter table migtest_e_basic drop column description_file; alter table migtest_e_basic drop column old_boolean; @@ -14,6 +12,7 @@ alter table migtest_e_history2_history drop column obsolete_string1; alter table migtest_e_history2_history drop column obsolete_string2; -- apply post alter drop table if exists migtest_e_ref; +drop sequence if exists migtest_e_ref_seq; -- apply history view 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/h2/1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/h2/1.3.sql index b4162cd3b..d7e856699 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/h2/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/h2/1.3.sql @@ -66,14 +66,14 @@ alter table migtest_e_basic add constraint uq_migtest_e_basic_indextest6 unique 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 ''; -create index ix_migtest_e_basic_indextest1 on migtest_e_basic (indextest1); -create index ix_migtest_e_basic_indextest5 on migtest_e_basic (indextest5); -- foreign keys and indices 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_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; +create index ix_migtest_e_basic_indextest1 on migtest_e_basic (indextest1); +create index ix_migtest_e_basic_indextest5 on migtest_e_basic (indextest5); -- apply history view 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/h2/1.4__dropsFor_1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/h2/1.4__dropsFor_1.3.sql index cab0b04e3..d6ce59146 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 @@ -6,8 +6,6 @@ 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 -drop sequence if exists migtest_e_user_seq; -- apply alter tables alter table migtest_ckey_detail drop column one_key; alter table migtest_ckey_detail drop column two_key; @@ -31,6 +29,7 @@ alter table migtest_e_softdelete drop column deleted; alter table migtest_oto_child drop column master_id; -- apply post alter 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/h2/idx_h2.migrations b/ebean-test/src/test/resources/migrationtest/dbmigration/h2/idx_h2.migrations index 9e6920241..a9f4a8b34 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 @@ -235308122, 1.0__initial.sql --1285933972, 1.1.sql --97126202, 1.2__dropsFor_1.1.sql --1371177335, 1.3.sql --1491167595, 1.4__dropsFor_1.3.sql +-698689813, 1.0__initial.sql +2028346373, 1.1.sql +-2063980912, 1.2__dropsFor_1.1.sql +-508824171, 1.3.sql +511468518, 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 index 94b968702..ef35b959a 100644 --- 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 @@ -163,9 +163,6 @@ create column table migtest_oto_master ( ); -- apply alter tables --- apply post alter --- 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; -- foreign keys and indices -- 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; @@ -176,6 +173,8 @@ alter table migtest_fk_set_null add constraint fk_migtest_fk_set_null_one_id for -- 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; +-- 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; -- apply history view create column table migtest_e_history2_history ( id integer, 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 6127958eb..85c0c0c24 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 @@ -140,8 +140,6 @@ alter table migtest_e_history3 add system versioning history table migtest_e_his alter table migtest_e_history4 add system versioning history table migtest_e_history4_history not validated; alter table migtest_e_history5 add system versioning history table migtest_e_history5_history not validated; alter table migtest_e_history6 add system versioning history table migtest_e_history6_history not validated; --- 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; -- foreign keys and indices -- 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; @@ -169,6 +167,8 @@ alter table migtest_fk_set_null add constraint fk_migtest_fk_set_null_one_id for 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_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; +-- 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; -- apply history view create column table migtest_e_history_history ( id integer, 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 index 4a9911a7a..00e190b9c 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/hana/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/hana/1.3.sql @@ -130,11 +130,11 @@ alter table migtest_e_history2 add system versioning history table migtest_e_his alter table migtest_e_history3 add system versioning history table migtest_e_history3_history not validated; alter table migtest_e_history4 add system versioning history table migtest_e_history4_history not validated; alter table migtest_e_history6 add system versioning history table migtest_e_history6_history not validated; --- 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; -- foreign keys and indices 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_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; +-- 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; 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 9a7f8b9e4..5c4367d3b 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,8 +1,8 @@ -745347271, I__create_procs.sql -1110470847, 1.0__initial.sql --750750591, 1.1.sql +1671978053, 1.0__initial.sql +945235204, 1.1.sql 197547825, 1.2__dropsFor_1.1.sql -1403985020, 1.3.sql +1030116997, 1.3.sql 1812245353, 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 index d1984004f..2daf407bc 100644 --- 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 @@ -162,9 +162,6 @@ create table migtest_oto_master ( constraint pk_migtest_oto_master primary key (id) ); --- apply post alter -create index ix_migtest_e_basic_indextest1 on migtest_e_basic (indextest1); -create index ix_migtest_e_basic_indextest5 on migtest_e_basic (indextest5); -- foreign keys and indices 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; @@ -175,3 +172,5 @@ 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; +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/hsqldb/1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/hsqldb/1.1.sql index 74863033d..0d1f86821 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 @@ -85,8 +85,6 @@ alter table migtest_e_basic add constraint uq_migtest_e_basic_indextest4 unique alter table migtest_e_basic add constraint uq_migtest_e_basic_indextest5 unique (indextest5); comment on column migtest_e_history.test_string is 'Column altered to long now'; comment on table migtest_e_history is 'We have history now'; -create index ix_migtest_e_basic_indextest3 on migtest_e_basic (indextest3); -create index ix_migtest_e_basic_indextest6 on migtest_e_basic (indextest6); -- foreign keys and indices 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; @@ -114,3 +112,5 @@ alter table migtest_fk_set_null add constraint fk_migtest_fk_set_null_one_id for 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_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 index ix_migtest_e_basic_indextest3 on migtest_e_basic (indextest3); +create index ix_migtest_e_basic_indextest6 on migtest_e_basic (indextest6); 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 index 90cf21bdb..f33b6874f 100644 --- 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 @@ -1,6 +1,4 @@ -- Migrationscripts for ebean unittest --- apply changes -drop sequence if exists migtest_e_ref_seq; -- apply alter tables alter table migtest_e_basic drop column description_file; alter table migtest_e_basic drop column old_boolean; @@ -10,3 +8,4 @@ alter table migtest_e_history2 drop column obsolete_string1; alter table migtest_e_history2 drop column obsolete_string2; -- apply post alter 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 index bd7a074f3..b3adec42a 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/hsqldb/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/hsqldb/1.3.sql @@ -60,11 +60,11 @@ alter table migtest_e_basic add constraint uq_migtest_e_basic_indextest6 unique 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 ''; -create index ix_migtest_e_basic_indextest1 on migtest_e_basic (indextest1); -create index ix_migtest_e_basic_indextest5 on migtest_e_basic (indextest5); -- foreign keys and indices 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_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; +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/hsqldb/1.4__dropsFor_1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/hsqldb/1.4__dropsFor_1.3.sql index 6c2ca5765..19c77f211 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 @@ -1,6 +1,4 @@ -- Migrationscripts for ebean unittest --- apply changes -drop sequence if exists migtest_e_user_seq; -- apply alter tables alter table migtest_ckey_detail drop column one_key; alter table migtest_ckey_detail drop column two_key; @@ -18,6 +16,7 @@ alter table migtest_e_softdelete drop column deleted; alter table migtest_oto_child drop column master_id; -- apply post alter 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 6eec65376..32896a876 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 @@ --287760616, 1.0__initial.sql -1240370138, 1.1.sql -1300559201, 1.2__dropsFor_1.1.sql --1618431338, 1.3.sql --510002583, 1.4__dropsFor_1.3.sql +442457363, 1.0__initial.sql +-1664513570, 1.1.sql +-300925212, 1.2__dropsFor_1.1.sql +-612892741, 1.3.sql +-972999284, 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.0__initial.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb-noprocs/1.0__initial.sql index 75e492b61..3533dde95 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb-noprocs/1.0__initial.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb-noprocs/1.0__initial.sql @@ -159,9 +159,6 @@ create table migtest_oto_master ( constraint pk_migtest_oto_master primary key (id) ); --- apply post alter -create index ix_migtest_e_basic_indextest1 on migtest_e_basic (indextest1); -create index ix_migtest_e_basic_indextest5 on migtest_e_basic (indextest5); -- foreign keys and indices 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; @@ -172,6 +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; +create index ix_migtest_e_basic_indextest1 on migtest_e_basic (indextest1); +create index ix_migtest_e_basic_indextest5 on migtest_e_basic (indextest5); -- apply history view alter table migtest_e_history2 add system versioning; alter table migtest_e_history3 add system versioning; 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 ddfb0a1f8..b1fa065d3 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 @@ -31,38 +31,38 @@ create table migtest_mtm_m_phone_numbers ( update migtest_e_basic set status = 'A' where status is null; -alter table migtest_e_basic modify status varchar(1) not null default 'A'; -alter table migtest_e_basic modify status2 varchar(127); -- rename all collisions; insert into migtest_e_user (id) select distinct user_id from migtest_e_basic; -alter table migtest_e_basic modify user_id integer; -alter table migtest_e_history modify test_string bigint; -- 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 modify test_string varchar(255) not null default 'unknown'; -alter table migtest_e_history4 modify test_number bigint; -- 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 integer not null default 42; -alter table migtest_e_history6 modify test_number2 integer; -- apply alter tables 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_e_basic modify status varchar(1) not null default 'A'; +alter table migtest_e_basic modify status2 varchar(127); +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; 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_history modify test_string bigint; +alter table migtest_e_history2 modify test_string varchar(255) not null default 'unknown'; 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; +alter table migtest_e_history6 modify test_number1 integer not null default 42; +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; -- apply post alter @@ -75,8 +75,6 @@ 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 comment = 'We have history now'; -create index ix_migtest_e_basic_indextest3 on migtest_e_basic (indextest3); -create index ix_migtest_e_basic_indextest6 on migtest_e_basic (indextest6); -- foreign keys and indices 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; @@ -104,6 +102,8 @@ alter table migtest_fk_set_null add constraint fk_migtest_fk_set_null_one_id for 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_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 index ix_migtest_e_basic_indextest3 on migtest_e_basic (indextest3); +create index ix_migtest_e_basic_indextest6 on migtest_e_basic (indextest6); -- apply history view alter table migtest_e_history add system versioning; -- apply history trigger diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb-noprocs/1.2__dropsFor_1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb-noprocs/1.2__dropsFor_1.1.sql index 90cf21bdb..f33b6874f 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb-noprocs/1.2__dropsFor_1.1.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb-noprocs/1.2__dropsFor_1.1.sql @@ -1,6 +1,4 @@ -- Migrationscripts for ebean unittest --- apply changes -drop sequence if exists migtest_e_ref_seq; -- apply alter tables alter table migtest_e_basic drop column description_file; alter table migtest_e_basic drop column old_boolean; @@ -10,3 +8,4 @@ alter table migtest_e_history2 drop column obsolete_string1; alter table migtest_e_history2 drop column obsolete_string2; -- apply post alter 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-noprocs/1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb-noprocs/1.3.sql index ec0d2b884..3063a1427 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb-noprocs/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb-noprocs/1.3.sql @@ -21,39 +21,39 @@ create table migtest_e_ref ( constraint pk_migtest_e_ref primary key (id) ); -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 modify status2 varchar(1) not null default 'N'; update migtest_e_basic set user_id = 23 where user_id is null; -alter table migtest_e_basic modify user_id integer not null default 23; -alter table migtest_e_history2 modify test_string varchar(255); -alter table migtest_e_history4 modify test_number integer; -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 modify test_number2 integer not null default 7; -- apply alter tables +alter table migtest_e_basic modify status varchar(1); +alter table migtest_e_basic modify status2 varchar(1) not null default 'N'; +alter table migtest_e_basic modify user_id integer not null default 23; alter table migtest_e_basic add column description_file longblob; 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_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 modify test_number1 integer; +alter table migtest_e_history6 modify test_number2 integer not null default 7; -- apply post alter 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 = ''; -create index ix_migtest_e_basic_indextest1 on migtest_e_basic (indextest1); -create index ix_migtest_e_basic_indextest5 on migtest_e_basic (indextest5); -- foreign keys and indices 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_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; +create index ix_migtest_e_basic_indextest1 on migtest_e_basic (indextest1); +create index ix_migtest_e_basic_indextest5 on migtest_e_basic (indextest5); -- apply history trigger lock tables migtest_e_history3 write; unlock tables; 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 3cccf3ce1..f3cc59238 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 @@ -1,6 +1,4 @@ -- Migrationscripts for ebean unittest --- apply changes -drop sequence if exists migtest_e_user_seq; -- apply alter tables alter table migtest_ckey_detail drop column one_key; alter table migtest_ckey_detail drop column two_key; @@ -18,6 +16,7 @@ alter table migtest_e_softdelete drop column deleted; alter table migtest_oto_child drop column master_id; -- apply post alter 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/mariadb-noprocs/idx_mariadb.migrations b/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb-noprocs/idx_mariadb.migrations index 4374e4e65..5f13ba80f 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 @@ --236478024, 1.0__initial.sql -1650543949, 1.1.sql -1300559201, 1.2__dropsFor_1.1.sql --1408500849, 1.3.sql --1110228228, 1.4__dropsFor_1.3.sql +2035483098, 1.0__initial.sql +-924429039, 1.1.sql +-300925212, 1.2__dropsFor_1.1.sql +-773358828, 1.3.sql +-1978922691, 1.4__dropsFor_1.3.sql 561281075, R__order_views.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 index 75e492b61..3533dde95 100644 --- 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 @@ -159,9 +159,6 @@ create table migtest_oto_master ( constraint pk_migtest_oto_master primary key (id) ); --- apply post alter -create index ix_migtest_e_basic_indextest1 on migtest_e_basic (indextest1); -create index ix_migtest_e_basic_indextest5 on migtest_e_basic (indextest5); -- foreign keys and indices 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; @@ -172,6 +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; +create index ix_migtest_e_basic_indextest1 on migtest_e_basic (indextest1); +create index ix_migtest_e_basic_indextest5 on migtest_e_basic (indextest5); -- apply history view alter table migtest_e_history2 add system versioning; alter table migtest_e_history3 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 index ddfb0a1f8..b1fa065d3 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 @@ -31,38 +31,38 @@ create table migtest_mtm_m_phone_numbers ( update migtest_e_basic set status = 'A' where status is null; -alter table migtest_e_basic modify status varchar(1) not null default 'A'; -alter table migtest_e_basic modify status2 varchar(127); -- rename all collisions; insert into migtest_e_user (id) select distinct user_id from migtest_e_basic; -alter table migtest_e_basic modify user_id integer; -alter table migtest_e_history modify test_string bigint; -- 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 modify test_string varchar(255) not null default 'unknown'; -alter table migtest_e_history4 modify test_number bigint; -- 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 integer not null default 42; -alter table migtest_e_history6 modify test_number2 integer; -- apply alter tables 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_e_basic modify status varchar(1) not null default 'A'; +alter table migtest_e_basic modify status2 varchar(127); +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; 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_history modify test_string bigint; +alter table migtest_e_history2 modify test_string varchar(255) not null default 'unknown'; 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; +alter table migtest_e_history6 modify test_number1 integer not null default 42; +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; -- apply post alter @@ -75,8 +75,6 @@ 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 comment = 'We have history now'; -create index ix_migtest_e_basic_indextest3 on migtest_e_basic (indextest3); -create index ix_migtest_e_basic_indextest6 on migtest_e_basic (indextest6); -- foreign keys and indices 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; @@ -104,6 +102,8 @@ alter table migtest_fk_set_null add constraint fk_migtest_fk_set_null_one_id for 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_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 index ix_migtest_e_basic_indextest3 on migtest_e_basic (indextest3); +create index ix_migtest_e_basic_indextest6 on migtest_e_basic (indextest6); -- apply history view alter table migtest_e_history add system versioning; -- apply history trigger 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 3a55160b8..832cfb31f 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,11 +1,11 @@ -- Migrationscripts for ebean unittest --- apply changes +-- apply alter tables CALL usp_ebean_drop_column('migtest_e_basic', 'description_file'); 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', 'obsolete_string2'); -drop sequence if exists migtest_e_ref_seq; -- apply post alter 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 index ec0d2b884..3063a1427 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb/1.3.sql @@ -21,39 +21,39 @@ create table migtest_e_ref ( constraint pk_migtest_e_ref primary key (id) ); -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 modify status2 varchar(1) not null default 'N'; update migtest_e_basic set user_id = 23 where user_id is null; -alter table migtest_e_basic modify user_id integer not null default 23; -alter table migtest_e_history2 modify test_string varchar(255); -alter table migtest_e_history4 modify test_number integer; -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 modify test_number2 integer not null default 7; -- apply alter tables +alter table migtest_e_basic modify status varchar(1); +alter table migtest_e_basic modify status2 varchar(1) not null default 'N'; +alter table migtest_e_basic modify user_id integer not null default 23; alter table migtest_e_basic add column description_file longblob; 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_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 modify test_number1 integer; +alter table migtest_e_history6 modify test_number2 integer not null default 7; -- apply post alter 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 = ''; -create index ix_migtest_e_basic_indextest1 on migtest_e_basic (indextest1); -create index ix_migtest_e_basic_indextest5 on migtest_e_basic (indextest5); -- foreign keys and indices 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_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; +create index ix_migtest_e_basic_indextest1 on migtest_e_basic (indextest1); +create index ix_migtest_e_basic_indextest5 on migtest_e_basic (indextest5); -- apply history trigger 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 index 13b52ccec..7b20bd958 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,5 +1,5 @@ -- Migrationscripts for ebean unittest --- apply changes +-- apply alter tables 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'); @@ -14,9 +14,9 @@ CALL usp_ebean_drop_column('migtest_e_history2', 'new_column'); CALL usp_ebean_drop_column('migtest_e_history5', 'test_boolean'); CALL usp_ebean_drop_column('migtest_e_softdelete', 'deleted'); CALL usp_ebean_drop_column('migtest_oto_child', 'master_id'); -drop sequence if exists migtest_e_user_seq; -- apply post alter 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/mariadb/idx_mariadb.migrations b/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb/idx_mariadb.migrations index bf4a5b49b..10fdd6684 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 --236478024, 1.0__initial.sql -1650543949, 1.1.sql --394047497, 1.2__dropsFor_1.1.sql --1408500849, 1.3.sql -1479728551, 1.4__dropsFor_1.3.sql +2035483098, 1.0__initial.sql +-924429039, 1.1.sql +-17652545, 1.2__dropsFor_1.1.sql +-773358828, 1.3.sql +-171059083, 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 6e8742c51..469183640 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 @@ -96,32 +96,24 @@ create table migtest_e_history2 ( obsolete_string2 varchar(255), constraint pk_migtest_e_history2 primary key (id) ); -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_history3 ( id integer auto_increment not null, test_string varchar(255), constraint pk_migtest_e_history3 primary key (id) ); -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_history4 ( id integer auto_increment not null, test_number integer, constraint pk_migtest_e_history4 primary key (id) ); -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_history5 ( id integer auto_increment not null, test_number integer, constraint pk_migtest_e_history5 primary key (id) ); -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_history6 ( id integer auto_increment not null, @@ -129,8 +121,6 @@ create table migtest_e_history6 ( test_number2 integer not null, constraint pk_migtest_e_history6 primary key (id) ); -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_ref ( id integer auto_increment not null, @@ -169,6 +159,17 @@ create table migtest_oto_master ( constraint pk_migtest_oto_master primary key (id) ); +-- apply alter tables +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); +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); +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); +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); +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); -- apply post alter create table migtest_e_history2_history( id integer, @@ -213,8 +214,6 @@ create table migtest_e_history6_history( ); create view migtest_e_history6_with_history as select * from migtest_e_history6 union all select * from migtest_e_history6_history; -create index ix_migtest_e_basic_indextest1 on migtest_e_basic (indextest1); -create index ix_migtest_e_basic_indextest5 on migtest_e_basic (indextest5); -- foreign keys and indices 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; @@ -225,6 +224,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; +create index ix_migtest_e_basic_indextest1 on migtest_e_basic (indextest1); +create index ix_migtest_e_basic_indextest5 on migtest_e_basic (indextest5); -- apply history trigger delimiter $$ create trigger migtest_e_history2_history_upd before update on migtest_e_history2 for each row begin 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 a4c4ca642..fa6a97be3 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 @@ -35,44 +35,44 @@ create table migtest_mtm_m_phone_numbers ( update migtest_e_basic set status = 'A' where status is null; -alter table migtest_e_basic modify status varchar(1) not null default 'A'; -alter table migtest_e_basic modify status2 varchar(127); -- rename all collisions; insert into migtest_e_user (id) select distinct user_id from migtest_e_basic; -alter table migtest_e_basic modify user_id integer; -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); -alter table migtest_e_history modify 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 modify test_string varchar(255) not null default 'unknown'; -alter table migtest_e_history4 modify test_number bigint; -alter table migtest_e_history4_history modify test_number bigint; -- 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 integer not null default 42; -alter table migtest_e_history6 modify test_number2 integer; -- apply alter tables 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_e_basic modify status varchar(1) not null default 'A'; +alter table migtest_e_basic modify status2 varchar(127); +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; 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_history add column sys_period_start datetime(6) default now(6); +alter table migtest_e_history add column sys_period_end datetime(6); +alter table migtest_e_history modify test_string bigint; +alter table migtest_e_history2 modify test_string varchar(255) not null default 'unknown'; 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; +alter table migtest_e_history6 modify test_number1 integer not null default 42; +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; -- apply post alter @@ -93,8 +93,6 @@ create table migtest_e_history_history( create view migtest_e_history_with_history as select * from migtest_e_history union all select * from migtest_e_history_history; alter table migtest_e_history comment = 'We have history now'; -create index ix_migtest_e_basic_indextest3 on migtest_e_basic (indextest3); -create index ix_migtest_e_basic_indextest6 on migtest_e_basic (indextest6); -- foreign keys and indices 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; @@ -122,6 +120,8 @@ alter table migtest_fk_set_null add constraint fk_migtest_fk_set_null_one_id for 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_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 index ix_migtest_e_basic_indextest3 on migtest_e_basic (indextest3); +create index ix_migtest_e_basic_indextest6 on migtest_e_basic (indextest6); -- apply history view 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.2__dropsFor_1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/mysql/1.2__dropsFor_1.1.sql index 72d889059..714f28069 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 @@ -1,14 +1,14 @@ -- Migrationscripts for ebean unittest -- drop dependencies drop view if exists migtest_e_history2_with_history; --- apply changes +-- apply alter tables CALL usp_ebean_drop_column('migtest_e_basic', 'description_file'); 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_string1'); CALL usp_ebean_drop_column('migtest_e_history2_history', 'obsolete_string2'); -- apply post alter drop table if exists migtest_e_ref; 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 index 5dee0b540..55e12654c 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/mysql/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/mysql/1.3.sql @@ -24,46 +24,46 @@ create table migtest_e_ref ( constraint pk_migtest_e_ref primary key (id) ); -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 modify status2 varchar(1) not null default 'N'; update migtest_e_basic set user_id = 23 where user_id is null; -alter table migtest_e_basic modify user_id integer not null default 23; -alter table migtest_e_history2 modify test_string 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 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 modify test_number2 integer not null default 7; -- apply alter tables +alter table migtest_e_basic modify status varchar(1); +alter table migtest_e_basic modify status2 varchar(1) not null default 'N'; +alter table migtest_e_basic modify user_id integer not null default 23; alter table migtest_e_basic add column description_file longblob; 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_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 modify test_number1 integer; +alter table migtest_e_history6 modify test_number2 integer not null default 7; -- apply post alter 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_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); -- foreign keys and indices 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_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; +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); -- apply history view 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 38b1d2503..f02e1d3e7 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 @@ -7,7 +7,7 @@ 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 +-- apply alter tables 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'); @@ -19,10 +19,10 @@ CALL usp_ebean_drop_column('migtest_e_basic', 'new_integer'); CALL usp_ebean_drop_column('migtest_e_history', 'sys_period_start'); CALL usp_ebean_drop_column('migtest_e_history', 'sys_period_end'); 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', 'test_string2'); +CALL usp_ebean_drop_column('migtest_e_history2_history', 'test_string3'); 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'); 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 d27defc4b..f56552467 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 -1536043334, 1.0__initial.sql --67000941, 1.1.sql --849327648, 1.2__dropsFor_1.1.sql -1023253480, 1.3.sql -1322560169, 1.4__dropsFor_1.3.sql +-1593712798, 1.0__initial.sql +567923852, 1.1.sql +434939997, 1.2__dropsFor_1.1.sql +1523214469, 1.3.sql +-487286618, 1.4__dropsFor_1.3.sql 561281075, R__order_views.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 index 71e49383c..584c09874 100644 --- 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 @@ -96,32 +96,24 @@ create table migtest_e_history2 ( obsolete_string2 varchar(255), constraint pk_migtest_e_history2 primary key (id) ); -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_history3 ( id integer auto_increment not null, test_string varchar(255), constraint pk_migtest_e_history3 primary key (id) ); -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_history4 ( id integer auto_increment not null, test_number integer, constraint pk_migtest_e_history4 primary key (id) ); -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_history5 ( id integer auto_increment not null, test_number integer, constraint pk_migtest_e_history5 primary key (id) ); -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_history6 ( id integer auto_increment not null, @@ -129,8 +121,6 @@ create table migtest_e_history6 ( test_number2 integer not null, constraint pk_migtest_e_history6 primary key (id) ); -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_ref ( id integer auto_increment not null, @@ -169,6 +159,17 @@ create table migtest_oto_master ( constraint pk_migtest_oto_master primary key (id) ); +-- apply alter tables +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); +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); +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); +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); +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); -- apply post alter create table migtest_e_history2_history( id integer, @@ -213,8 +214,6 @@ create table migtest_e_history6_history( ); create view migtest_e_history6_with_history as select * from migtest_e_history6 union all select * from migtest_e_history6_history; -create index ix_migtest_e_basic_indextest1 on migtest_e_basic (indextest1); -create index ix_migtest_e_basic_indextest5 on migtest_e_basic (indextest5); -- foreign keys and indices 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; @@ -225,6 +224,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; +create index ix_migtest_e_basic_indextest1 on migtest_e_basic (indextest1); +create index ix_migtest_e_basic_indextest5 on migtest_e_basic (indextest5); -- apply history trigger delimiter $$ create trigger migtest_e_history2_history_upd before update on migtest_e_history2 for each row begin 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 index a4c4ca642..fa6a97be3 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/mysql55/1.1.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/mysql55/1.1.sql @@ -35,44 +35,44 @@ create table migtest_mtm_m_phone_numbers ( update migtest_e_basic set status = 'A' where status is null; -alter table migtest_e_basic modify status varchar(1) not null default 'A'; -alter table migtest_e_basic modify status2 varchar(127); -- rename all collisions; insert into migtest_e_user (id) select distinct user_id from migtest_e_basic; -alter table migtest_e_basic modify user_id integer; -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); -alter table migtest_e_history modify 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 modify test_string varchar(255) not null default 'unknown'; -alter table migtest_e_history4 modify test_number bigint; -alter table migtest_e_history4_history modify test_number bigint; -- 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 integer not null default 42; -alter table migtest_e_history6 modify test_number2 integer; -- apply alter tables 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_e_basic modify status varchar(1) not null default 'A'; +alter table migtest_e_basic modify status2 varchar(127); +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; 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_history add column sys_period_start datetime(6) default now(6); +alter table migtest_e_history add column sys_period_end datetime(6); +alter table migtest_e_history modify test_string bigint; +alter table migtest_e_history2 modify test_string varchar(255) not null default 'unknown'; 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; +alter table migtest_e_history6 modify test_number1 integer not null default 42; +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; -- apply post alter @@ -93,8 +93,6 @@ create table migtest_e_history_history( create view migtest_e_history_with_history as select * from migtest_e_history union all select * from migtest_e_history_history; alter table migtest_e_history comment = 'We have history now'; -create index ix_migtest_e_basic_indextest3 on migtest_e_basic (indextest3); -create index ix_migtest_e_basic_indextest6 on migtest_e_basic (indextest6); -- foreign keys and indices 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; @@ -122,6 +120,8 @@ alter table migtest_fk_set_null add constraint fk_migtest_fk_set_null_one_id for 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_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 index ix_migtest_e_basic_indextest3 on migtest_e_basic (indextest3); +create index ix_migtest_e_basic_indextest6 on migtest_e_basic (indextest6); -- apply history view 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/mysql55/1.2__dropsFor_1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/mysql55/1.2__dropsFor_1.1.sql index 72d889059..714f28069 100644 --- 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 @@ -1,14 +1,14 @@ -- Migrationscripts for ebean unittest -- drop dependencies drop view if exists migtest_e_history2_with_history; --- apply changes +-- apply alter tables CALL usp_ebean_drop_column('migtest_e_basic', 'description_file'); 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_string1'); CALL usp_ebean_drop_column('migtest_e_history2_history', 'obsolete_string2'); -- apply post alter drop table if exists migtest_e_ref; 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 index 5dee0b540..55e12654c 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/mysql55/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/mysql55/1.3.sql @@ -24,46 +24,46 @@ create table migtest_e_ref ( constraint pk_migtest_e_ref primary key (id) ); -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 modify status2 varchar(1) not null default 'N'; update migtest_e_basic set user_id = 23 where user_id is null; -alter table migtest_e_basic modify user_id integer not null default 23; -alter table migtest_e_history2 modify test_string 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 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 modify test_number2 integer not null default 7; -- apply alter tables +alter table migtest_e_basic modify status varchar(1); +alter table migtest_e_basic modify status2 varchar(1) not null default 'N'; +alter table migtest_e_basic modify user_id integer not null default 23; alter table migtest_e_basic add column description_file longblob; 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_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 modify test_number1 integer; +alter table migtest_e_history6 modify test_number2 integer not null default 7; -- apply post alter 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_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); -- foreign keys and indices 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_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; +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); -- apply history view 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/mysql55/1.4__dropsFor_1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/mysql55/1.4__dropsFor_1.3.sql index 38b1d2503..f02e1d3e7 100644 --- 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 @@ -7,7 +7,7 @@ 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 +-- apply alter tables 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'); @@ -19,10 +19,10 @@ CALL usp_ebean_drop_column('migtest_e_basic', 'new_integer'); CALL usp_ebean_drop_column('migtest_e_history', 'sys_period_start'); CALL usp_ebean_drop_column('migtest_e_history', 'sys_period_end'); 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', 'test_string2'); +CALL usp_ebean_drop_column('migtest_e_history2_history', 'test_string3'); 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'); 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 index 4fbd8e133..1206ec256 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/mysql55/idx_mysql.migrations +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/mysql55/idx_mysql.migrations @@ -1,8 +1,8 @@ 1835064798, I__create_procs.sql -1122959299, 1.0__initial.sql --67000941, 1.1.sql --849327648, 1.2__dropsFor_1.1.sql -1023253480, 1.3.sql -1322560169, 1.4__dropsFor_1.3.sql +-1722692121, 1.0__initial.sql +567923852, 1.1.sql +434939997, 1.2__dropsFor_1.1.sql +1523214469, 1.3.sql +-487286618, 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 index a2d78605e..c1f425d97 100644 --- 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 @@ -99,32 +99,24 @@ create table migtest_e_history2 ( obsolete_string2 varchar(255), constraint pk_migtest_e_history2 primary key (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_history3 ( id integer generated by default as identity not null, test_string varchar(255), constraint pk_migtest_e_history3 primary key (id) ); -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_history4 ( id integer generated by default as identity not null, test_number integer, constraint pk_migtest_e_history4 primary key (id) ); -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_history5 ( id integer generated by default as identity not null, test_number integer, constraint pk_migtest_e_history5 primary key (id) ); -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_history6 ( id integer generated by default as identity not null, @@ -132,8 +124,6 @@ create table migtest_e_history6 ( test_number2 integer not null, constraint pk_migtest_e_history6 primary key (id) ); -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_ref ( id integer generated by default as identity not null, @@ -172,6 +162,17 @@ create table migtest_oto_master ( constraint pk_migtest_oto_master primary key (id) ); +-- apply alter tables +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); +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); +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); +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); +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); -- apply post alter create table migtest_e_history2_history( id integer, @@ -216,8 +217,6 @@ create table migtest_e_history6_history( ); create view migtest_e_history6_with_history as select * from migtest_e_history6 union all select * from migtest_e_history6_history; -create index ix_migtest_e_basic_indextest1 on migtest_e_basic (indextest1); -create index ix_migtest_e_basic_indextest5 on migtest_e_basic (indextest5); -- foreign keys and indices 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; @@ -228,6 +227,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); +create index ix_migtest_e_basic_indextest1 on migtest_e_basic (indextest1); +create index ix_migtest_e_basic_indextest5 on migtest_e_basic (indextest5); -- apply history trigger delimiter $$ create or replace trigger migtest_e_history2_history_upd for migtest_e_history2 before update for each row as 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 7f3a24f9f..280a3c93a 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 @@ -42,8 +42,6 @@ update migtest_e_basic set status = 'A' where status is null; -- rename all collisions; insert into migtest_e_user (id) select distinct user_id from migtest_e_basic; -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); -- NOTE: table has @History - special migration may be necessary update migtest_e_history2 set test_string = 'unknown' where test_string is null; @@ -65,6 +63,8 @@ alter table migtest_e_basic add column new_boolean_field boolean default true no 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 column new_integer integer default 42 not null; +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); alter table migtest_e_history alter column test_string bigint; alter table migtest_e_history2 alter column test_string set default 'unknown'; alter table migtest_e_history2 alter column test_string set not null; @@ -102,8 +102,6 @@ create table migtest_e_history_history( ); create view migtest_e_history_with_history as select * from migtest_e_history union all select * from migtest_e_history_history; -create index ix_migtest_e_basic_indextest3 on migtest_e_basic (indextest3); -create index ix_migtest_e_basic_indextest6 on migtest_e_basic (indextest6); -- foreign keys and indices 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); @@ -131,6 +129,8 @@ alter table migtest_fk_set_null add constraint fk_migtest_fk_set_null_one_id for 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_oto_child add constraint fk_migtest_oto_child_master_id foreign key (master_id) references migtest_oto_master (id); +create index ix_migtest_e_basic_indextest3 on migtest_e_basic (indextest3); +create index ix_migtest_e_basic_indextest6 on migtest_e_basic (indextest6); -- apply history view 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/nuodb/1.2__dropsFor_1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/nuodb/1.2__dropsFor_1.1.sql index 2f6843c67..e9a580609 100644 --- 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 @@ -1,8 +1,6 @@ -- Migrationscripts for ebean unittest -- drop dependencies drop view if exists migtest_e_history2_with_history; --- apply changes -drop sequence if exists migtest_e_ref_seq; -- apply alter tables alter table migtest_e_basic drop column description_file; alter table migtest_e_basic drop column old_boolean; @@ -14,6 +12,7 @@ alter table migtest_e_history2_history drop column obsolete_string1; alter table migtest_e_history2_history drop column obsolete_string2; -- apply post alter drop table if exists migtest_e_ref; +drop sequence if exists migtest_e_ref_seq; -- apply history view 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/nuodb/1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/nuodb/1.3.sql index 9dd55f8d9..14325fff2 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/nuodb/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/nuodb/1.3.sql @@ -64,14 +64,14 @@ alter table migtest_e_basic add constraint ck_migtest_e_basic_status2 check ( st 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 add constraint ck_migtest_e_enum_test_status check ( test_status in ('N','A','I')); -create index ix_migtest_e_basic_indextest1 on migtest_e_basic (indextest1); -create index ix_migtest_e_basic_indextest5 on migtest_e_basic (indextest5); -- foreign keys and indices 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_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); +create index ix_migtest_e_basic_indextest1 on migtest_e_basic (indextest1); +create index ix_migtest_e_basic_indextest5 on migtest_e_basic (indextest5); -- apply history view 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/nuodb/1.4__dropsFor_1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/nuodb/1.4__dropsFor_1.3.sql index 2f22a6227..3164bea0d 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 @@ -7,8 +7,6 @@ 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 -drop sequence if exists migtest_e_user_seq; -- apply alter tables alter table migtest_ckey_detail drop column one_key; alter table migtest_ckey_detail drop column two_key; @@ -32,6 +30,7 @@ alter table migtest_e_softdelete drop column deleted; alter table migtest_oto_child drop column master_id; -- apply post alter 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/nuodb/idx_nuodb.migrations b/ebean-test/src/test/resources/migrationtest/dbmigration/nuodb/idx_nuodb.migrations index 3dfa45c4c..1737ab36f 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 @@ -1609926578, 1.0__initial.sql --712334769, 1.1.sql -2006095001, 1.2__dropsFor_1.1.sql -710219599, 1.3.sql -457206948, 1.4__dropsFor_1.3.sql +-2130050389, 1.0__initial.sql +-575692842, 1.1.sql +-1790075022, 1.2__dropsFor_1.1.sql +-1755422280, 1.3.sql +782350608, 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 36433cfbb..8654939bf 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 @@ -162,9 +162,6 @@ create table migtest_oto_master ( constraint pk_migtest_oto_master primary key (id) ); --- apply post alter -create index ix_migtest_e_basic_indextest1 on migtest_e_basic (indextest1); -create index ix_migtest_e_basic_indextest5 on migtest_e_basic (indextest5); -- foreign keys and indices 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; @@ -175,3 +172,5 @@ 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); +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 a545c2b46..f07e7603e 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 @@ -130,8 +130,6 @@ alter table migtest_e_basic add constraint ck_migtest_e_basic_progress check ( p -- NOT YET IMPLEMENTED: alter table migtest_e_basic add constraint uq_migtest_e_basic_indextest5 unique (indextest5); comment on column migtest_e_history.test_string is 'Column altered to long now'; comment on table migtest_e_history is 'We have history now'; -create index ix_migtest_e_basic_indextest3 on migtest_e_basic (indextest3); -create index ix_migtest_e_basic_indextest6 on migtest_e_basic (indextest6); -- foreign keys and indices 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); @@ -159,3 +157,5 @@ alter table migtest_fk_set_null add constraint fk_migtest_fk_set_null_one_id for 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_oto_child add constraint fk_migtest_oto_child_master_id foreign key (master_id) references migtest_oto_master (id); +create index ix_migtest_e_basic_indextest3 on migtest_e_basic (indextest3); +create index ix_migtest_e_basic_indextest6 on migtest_e_basic (indextest6); 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 index 49614c56a..ccecef36d 100644 --- 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 @@ -1,5 +1,13 @@ -- Migrationscripts for ebean unittest --- apply changes +-- apply alter tables +alter table migtest_e_basic drop column description_file; +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; +-- apply post alter +drop table migtest_e_ref cascade constraints purge; delimiter $$ declare expected_error exception; @@ -10,12 +18,3 @@ exception when expected_error then null; end; $$; --- apply alter tables -alter table migtest_e_basic drop column description_file; -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; --- apply post alter -drop table migtest_e_ref cascade constraints purge; 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 511fa9f21..e3eded2c5 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 @@ -132,11 +132,11 @@ alter table migtest_e_basic add constraint ck_migtest_e_basic_status2 check ( st 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 ''; -create index ix_migtest_e_basic_indextest1 on migtest_e_basic (indextest1); -create index ix_migtest_e_basic_indextest5 on migtest_e_basic (indextest5); -- foreign keys and indices 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_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); +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.4__dropsFor_1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/oracle/1.4__dropsFor_1.3.sql index 0db97fced..38e77cae7 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 @@ -1,15 +1,4 @@ -- Migrationscripts for ebean unittest --- apply changes -delimiter $$ -declare - expected_error exception; - pragma exception_init(expected_error, -2289); -begin - execute immediate 'drop sequence migtest_e_user_seq'; -exception - when expected_error then null; -end; -$$; -- apply alter tables alter table migtest_ckey_detail drop column one_key; alter table migtest_ckey_detail drop column two_key; @@ -27,6 +16,16 @@ alter table migtest_e_softdelete drop column deleted; alter table migtest_oto_child drop column master_id; -- apply post alter drop table migtest_e_user cascade constraints purge; +delimiter $$ +declare + expected_error exception; + pragma exception_init(expected_error, -2289); +begin + execute immediate 'drop sequence migtest_e_user_seq'; +exception + when expected_error then null; +end; +$$; 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 c3114ac3f..668715769 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 @@ --622073680, 1.0__initial.sql --1746822270, 1.1.sql --762185259, 1.2__dropsFor_1.1.sql -306379757, 1.3.sql --748734592, 1.4__dropsFor_1.3.sql +-554067191, 1.0__initial.sql +187324506, 1.1.sql +-582436324, 1.2__dropsFor_1.1.sql +-283226837, 1.3.sql +663051206, 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 index 9e403f7c1..7886fee5f 100644 --- 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 @@ -184,9 +184,6 @@ create table migtest_oto_master ( ); create sequence migtest_oto_master_seq; --- apply post alter -create index ix_migtest_e_basic_indextest1 on migtest_e_basic (indextest1); -create index ix_migtest_e_basic_indextest5 on migtest_e_basic (indextest5); -- foreign keys and indices 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; @@ -197,3 +194,5 @@ 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); +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/oracle11/1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/oracle11/1.1.sql index e7d4963b5..944a30188 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/oracle11/1.1.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/oracle11/1.1.sql @@ -131,8 +131,6 @@ alter table migtest_e_basic add constraint ck_migtest_e_basic_progress check ( p -- NOT YET IMPLEMENTED: alter table migtest_e_basic add constraint uq_migtest_e_basic_indextest5 unique (indextest5); comment on column migtest_e_history.test_string is 'Column altered to long now'; comment on table migtest_e_history is 'We have history now'; -create index ix_migtest_e_basic_indextest3 on migtest_e_basic (indextest3); -create index ix_migtest_e_basic_indextest6 on migtest_e_basic (indextest6); -- foreign keys and indices 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); @@ -160,3 +158,5 @@ alter table migtest_fk_set_null add constraint fk_migtest_fk_set_null_one_id for 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_oto_child add constraint fk_migtest_oto_child_master_id foreign key (master_id) references migtest_oto_master (id); +create index ix_migtest_e_basic_indextest3 on migtest_e_basic (indextest3); +create index ix_migtest_e_basic_indextest6 on migtest_e_basic (indextest6); 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 index 49614c56a..ccecef36d 100644 --- 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 @@ -1,5 +1,13 @@ -- Migrationscripts for ebean unittest --- apply changes +-- apply alter tables +alter table migtest_e_basic drop column description_file; +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; +-- apply post alter +drop table migtest_e_ref cascade constraints purge; delimiter $$ declare expected_error exception; @@ -10,12 +18,3 @@ exception when expected_error then null; end; $$; --- apply alter tables -alter table migtest_e_basic drop column description_file; -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; --- apply post alter -drop table migtest_e_ref cascade constraints purge; 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 index 06f32cbd8..30535ac51 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/oracle11/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/oracle11/1.3.sql @@ -133,11 +133,11 @@ alter table migtest_e_basic add constraint ck_migtest_e_basic_status2 check ( st 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 ''; -create index ix_migtest_e_basic_indextest1 on migtest_e_basic (indextest1); -create index ix_migtest_e_basic_indextest5 on migtest_e_basic (indextest5); -- foreign keys and indices 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_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); +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/oracle11/1.4__dropsFor_1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/oracle11/1.4__dropsFor_1.3.sql index 0db97fced..38e77cae7 100644 --- 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 @@ -1,15 +1,4 @@ -- Migrationscripts for ebean unittest --- apply changes -delimiter $$ -declare - expected_error exception; - pragma exception_init(expected_error, -2289); -begin - execute immediate 'drop sequence migtest_e_user_seq'; -exception - when expected_error then null; -end; -$$; -- apply alter tables alter table migtest_ckey_detail drop column one_key; alter table migtest_ckey_detail drop column two_key; @@ -27,6 +16,16 @@ alter table migtest_e_softdelete drop column deleted; alter table migtest_oto_child drop column master_id; -- apply post alter drop table migtest_e_user cascade constraints purge; +delimiter $$ +declare + expected_error exception; + pragma exception_init(expected_error, -2289); +begin + execute immediate 'drop sequence migtest_e_user_seq'; +exception + when expected_error then null; +end; +$$; 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/idx_oracle.migrations b/ebean-test/src/test/resources/migrationtest/dbmigration/oracle11/idx_oracle.migrations index f5561b586..caea324e2 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/oracle11/idx_oracle.migrations +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/oracle11/idx_oracle.migrations @@ -1,8 +1,8 @@ --69967756, 1.0__initial.sql -224068094, 1.1.sql --762185259, 1.2__dropsFor_1.1.sql -694608752, 1.3.sql --748734592, 1.4__dropsFor_1.3.sql +-712978357, 1.0__initial.sql +-1852784090, 1.1.sql +-582436324, 1.2__dropsFor_1.1.sql +-734374474, 1.3.sql +663051206, 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 abdabb877..ae003966b 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 @@ -99,28 +99,24 @@ create table migtest_e_history2 ( obsolete_string2 varchar(255), constraint pk_migtest_e_history2 primary key (id) ); -alter table migtest_e_history2 add column sys_period tstzrange not null default tstzrange(current_timestamp, null); 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) ); -alter table migtest_e_history3 add column sys_period tstzrange not null default tstzrange(current_timestamp, null); 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) ); -alter table migtest_e_history4 add column sys_period tstzrange not null default tstzrange(current_timestamp, null); 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) ); -alter table migtest_e_history5 add column sys_period tstzrange not null default tstzrange(current_timestamp, null); create table migtest_e_history6 ( id integer generated by default as identity not null, @@ -128,7 +124,6 @@ create table migtest_e_history6 ( test_number2 integer not null, constraint pk_migtest_e_history6 primary key (id) ); -alter table migtest_e_history6 add column sys_period tstzrange not null default tstzrange(current_timestamp, null); create table migtest_e_ref ( id integer generated by default as identity not null, @@ -167,6 +162,12 @@ create table migtest_oto_master ( constraint pk_migtest_oto_master primary key (id) ); +-- apply alter tables +alter table migtest_e_history2 add column sys_period tstzrange not null default tstzrange(current_timestamp, null); +alter table migtest_e_history3 add column sys_period tstzrange not null default tstzrange(current_timestamp, null); +alter table migtest_e_history4 add column sys_period tstzrange not null default tstzrange(current_timestamp, null); +alter table migtest_e_history5 add column sys_period tstzrange not null default tstzrange(current_timestamp, null); +alter table migtest_e_history6 add column sys_period tstzrange not null default tstzrange(current_timestamp, null); -- apply post alter 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; @@ -183,11 +184,6 @@ create view migtest_e_history5_with_history as select * from migtest_e_history5 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 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)); -- foreign keys and indices 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; @@ -198,6 +194,11 @@ 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; +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)); -- apply history trigger create or replace function migtest_e_history2_history_version() returns trigger as $$ declare 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 d56a58827..b585cc248 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 @@ -41,20 +41,15 @@ create table migtest_mtm_m_phone_numbers ( update migtest_e_basic set status = 'A' where status is null; -alter table migtest_e_basic alter column status2 type varchar(127) using status2::varchar(127); -- rename all collisions; insert into migtest_e_user (id) select distinct user_id from migtest_e_basic; -alter table migtest_e_history add column sys_period tstzrange not null default tstzrange(current_timestamp, null); alter table migtest_e_history alter column test_string TYPE bigint USING (test_string::integer); -alter table migtest_e_history alter column test_string type bigint using 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_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; -- NOTE: table has @History - special migration may be necessary update migtest_e_history6 set test_number1 = 42 where test_number1 is null; @@ -64,6 +59,7 @@ alter table migtest_ckey_detail add column two_key varchar(127); alter table migtest_ckey_parent add column assoc_id integer; 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 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; alter table migtest_e_basic alter column user_id drop not null; @@ -72,6 +68,8 @@ alter table migtest_e_basic add column new_boolean_field boolean default true no 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 column new_integer integer default 42 not null; +alter table migtest_e_history add column sys_period tstzrange not null default tstzrange(current_timestamp, null); +alter table migtest_e_history alter column test_string type bigint using test_string::bigint; 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); @@ -80,6 +78,8 @@ 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; alter table migtest_e_history6 alter column test_number1 set default 42; @@ -103,9 +103,6 @@ create view migtest_e_history_with_history as select * from migtest_e_history un comment on column migtest_e_history.test_string is 'Column altered to long now'; comment on table migtest_e_history is 'We have history now'; -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); -- foreign keys and indices 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; @@ -133,6 +130,9 @@ alter table migtest_fk_set_null add constraint fk_migtest_fk_set_null_one_id for 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_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 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); -- apply history view 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/postgres/1.2__dropsFor_1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/postgres/1.2__dropsFor_1.1.sql index 6cb98c684..f3eb208a1 100644 --- 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 @@ -1,8 +1,6 @@ -- Migrationscripts for ebean unittest -- drop dependencies drop view if exists migtest_e_history2_with_history; --- apply changes -drop sequence if exists migtest_e_ref_seq; -- apply alter tables alter table migtest_e_basic drop column description_file; alter table migtest_e_basic drop column old_boolean; @@ -14,6 +12,7 @@ alter table migtest_e_history2_history drop column obsolete_string1; alter table migtest_e_history2_history drop column obsolete_string2; -- apply post alter drop table if exists migtest_e_ref cascade; +drop sequence if exists migtest_e_ref_seq; -- apply history view 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/postgres/1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/postgres/1.3.sql index f2e623957..3d0f451f9 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 @@ -29,17 +29,15 @@ create table migtest_e_ref ( update migtest_e_basic set status2 = 'N' where status2 is null; -alter table migtest_e_basic alter column status2 type varchar(1) using status2::varchar(1); update migtest_e_basic set user_id = 23 where user_id is null; -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; -- NOTE: table has @History - special migration may be necessary update migtest_e_history6 set test_number2 = 7 where test_number2 is null; -- apply alter tables 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 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 alter column user_id set default 23; @@ -54,6 +52,8 @@ 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; alter table migtest_e_history6 alter column test_number2 set default 7; @@ -66,17 +66,17 @@ alter table migtest_e_basic add constraint uq_migtest_e_basic_indextest6 unique 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 ''; -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)); -- foreign keys and indices 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_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; +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)); -- apply history view 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/postgres/1.4__dropsFor_1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/postgres/1.4__dropsFor_1.3.sql index 619739537..bea42a3cf 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 @@ -8,8 +8,6 @@ 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 -drop sequence if exists migtest_e_user_seq; -- apply alter tables alter table migtest_ckey_detail drop column one_key; alter table migtest_ckey_detail drop column two_key; @@ -32,6 +30,7 @@ alter table migtest_e_softdelete drop column deleted; alter table migtest_oto_child drop column master_id; -- apply post alter 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/postgres/idx_postgres.migrations b/ebean-test/src/test/resources/migrationtest/dbmigration/postgres/idx_postgres.migrations index 59aabf7d3..784ddf976 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 @@ --281382086, 1.0__initial.sql -1309236536, 1.1.sql -23016453, 1.2__dropsFor_1.1.sql --1558640409, 1.3.sql -2062908930, 1.4__dropsFor_1.3.sql +1040369575, 1.0__initial.sql +45294494, 1.1.sql +1770819182, 1.2__dropsFor_1.1.sql +-223959883, 1.3.sql +739723472, 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/postgres9/1.0__initial.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/postgres9/1.0__initial.sql index 6c93a4829..6ab514bf2 100644 --- 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 @@ -99,28 +99,24 @@ create table migtest_e_history2 ( obsolete_string2 varchar(255), constraint pk_migtest_e_history2 primary key (id) ); -alter table migtest_e_history2 add column sys_period tstzrange not null default tstzrange(current_timestamp, null); create table migtest_e_history3 ( id serial not null, test_string varchar(255), constraint pk_migtest_e_history3 primary key (id) ); -alter table migtest_e_history3 add column sys_period tstzrange not null default tstzrange(current_timestamp, null); create table migtest_e_history4 ( id serial not null, test_number integer, constraint pk_migtest_e_history4 primary key (id) ); -alter table migtest_e_history4 add column sys_period tstzrange not null default tstzrange(current_timestamp, null); create table migtest_e_history5 ( id serial not null, test_number integer, constraint pk_migtest_e_history5 primary key (id) ); -alter table migtest_e_history5 add column sys_period tstzrange not null default tstzrange(current_timestamp, null); create table migtest_e_history6 ( id serial not null, @@ -128,7 +124,6 @@ create table migtest_e_history6 ( test_number2 integer not null, constraint pk_migtest_e_history6 primary key (id) ); -alter table migtest_e_history6 add column sys_period tstzrange not null default tstzrange(current_timestamp, null); create table migtest_e_ref ( id serial not null, @@ -167,6 +162,12 @@ create table migtest_oto_master ( constraint pk_migtest_oto_master primary key (id) ); +-- apply alter tables +alter table migtest_e_history2 add column sys_period tstzrange not null default tstzrange(current_timestamp, null); +alter table migtest_e_history3 add column sys_period tstzrange not null default tstzrange(current_timestamp, null); +alter table migtest_e_history4 add column sys_period tstzrange not null default tstzrange(current_timestamp, null); +alter table migtest_e_history5 add column sys_period tstzrange not null default tstzrange(current_timestamp, null); +alter table migtest_e_history6 add column sys_period tstzrange not null default tstzrange(current_timestamp, null); -- apply post alter 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; @@ -183,11 +184,6 @@ create view migtest_e_history5_with_history as select * from migtest_e_history5 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 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)); -- foreign keys and indices 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; @@ -198,6 +194,11 @@ 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; +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)); -- apply history trigger create or replace function migtest_e_history2_history_version() returns trigger as $$ declare 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 index 4c87d8179..dbace0ad1 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/postgres9/1.1.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/postgres9/1.1.sql @@ -41,20 +41,15 @@ create table migtest_mtm_m_phone_numbers ( update migtest_e_basic set status = 'A' where status is null; -alter table migtest_e_basic alter column status2 type varchar(127) using status2::varchar(127); -- rename all collisions; insert into migtest_e_user (id) select distinct user_id from migtest_e_basic; -alter table migtest_e_history add column sys_period tstzrange not null default tstzrange(current_timestamp, null); alter table migtest_e_history alter column test_string TYPE bigint USING (test_string::integer); -alter table migtest_e_history alter column test_string type bigint using 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_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; -- NOTE: table has @History - special migration may be necessary update migtest_e_history6 set test_number1 = 42 where test_number1 is null; @@ -64,6 +59,7 @@ alter table migtest_ckey_detail add column two_key varchar(127); alter table migtest_ckey_parent add column assoc_id integer; 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 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; alter table migtest_e_basic alter column user_id drop not null; @@ -72,6 +68,8 @@ alter table migtest_e_basic add column new_boolean_field boolean default true no 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 column new_integer integer default 42 not null; +alter table migtest_e_history add column sys_period tstzrange not null default tstzrange(current_timestamp, null); +alter table migtest_e_history alter column test_string type bigint using test_string::bigint; 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); @@ -80,6 +78,8 @@ 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; alter table migtest_e_history6 alter column test_number1 set default 42; @@ -103,9 +103,6 @@ create view migtest_e_history_with_history as select * from migtest_e_history un comment on column migtest_e_history.test_string is 'Column altered to long now'; comment on table migtest_e_history is 'We have history now'; -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); -- foreign keys and indices 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; @@ -133,6 +130,9 @@ alter table migtest_fk_set_null add constraint fk_migtest_fk_set_null_one_id for 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_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 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); -- apply history view 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/postgres9/1.2__dropsFor_1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/postgres9/1.2__dropsFor_1.1.sql index 6cb98c684..f3eb208a1 100644 --- 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 @@ -1,8 +1,6 @@ -- Migrationscripts for ebean unittest -- drop dependencies drop view if exists migtest_e_history2_with_history; --- apply changes -drop sequence if exists migtest_e_ref_seq; -- apply alter tables alter table migtest_e_basic drop column description_file; alter table migtest_e_basic drop column old_boolean; @@ -14,6 +12,7 @@ alter table migtest_e_history2_history drop column obsolete_string1; alter table migtest_e_history2_history drop column obsolete_string2; -- apply post alter drop table if exists migtest_e_ref cascade; +drop sequence if exists migtest_e_ref_seq; -- apply history view 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/postgres9/1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/postgres9/1.3.sql index c61552550..0f24e4551 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/postgres9/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/postgres9/1.3.sql @@ -29,17 +29,15 @@ create table migtest_e_ref ( update migtest_e_basic set status2 = 'N' where status2 is null; -alter table migtest_e_basic alter column status2 type varchar(1) using status2::varchar(1); update migtest_e_basic set user_id = 23 where user_id is null; -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; -- NOTE: table has @History - special migration may be necessary update migtest_e_history6 set test_number2 = 7 where test_number2 is null; -- apply alter tables 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 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 alter column user_id set default 23; @@ -54,6 +52,8 @@ 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; alter table migtest_e_history6 alter column test_number2 set default 7; @@ -66,17 +66,17 @@ alter table migtest_e_basic add constraint uq_migtest_e_basic_indextest6 unique 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 ''; -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)); -- foreign keys and indices 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_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; +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)); -- apply history view 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/postgres9/1.4__dropsFor_1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/postgres9/1.4__dropsFor_1.3.sql index 619739537..bea42a3cf 100644 --- 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 @@ -8,8 +8,6 @@ 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 -drop sequence if exists migtest_e_user_seq; -- apply alter tables alter table migtest_ckey_detail drop column one_key; alter table migtest_ckey_detail drop column two_key; @@ -32,6 +30,7 @@ alter table migtest_e_softdelete drop column deleted; alter table migtest_oto_child drop column master_id; -- apply post alter 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/postgres9/idx_postgres.migrations b/ebean-test/src/test/resources/migrationtest/dbmigration/postgres9/idx_postgres.migrations index 2586ecb2d..89cdeaa30 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/postgres9/idx_postgres.migrations +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/postgres9/idx_postgres.migrations @@ -1,8 +1,8 @@ -1964004480, 1.0__initial.sql --678864681, 1.1.sql -23016453, 1.2__dropsFor_1.1.sql -858145606, 1.3.sql -2062908930, 1.4__dropsFor_1.3.sql +1333804171, 1.0__initial.sql +-1691146639, 1.1.sql +1770819182, 1.2__dropsFor_1.1.sql +1654255380, 1.3.sql +739723472, 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 index 506cf08dc..a9b87d1e1 100644 --- 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 @@ -162,9 +162,6 @@ create table migtest_oto_master ( constraint pk_migtest_oto_master primary key (id) ); --- apply post alter -create index ix_migtest_e_basic_indextest1 on migtest_e_basic (indextest1); -create index ix_migtest_e_basic_indextest5 on migtest_e_basic (indextest5); -- foreign keys and indices 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; @@ -175,3 +172,5 @@ 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; +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/sqlanywhere/1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlanywhere/1.1.sql index ba24ed39b..a1422148b 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 @@ -85,8 +85,6 @@ alter table migtest_e_basic add constraint uq_migtest_e_basic_indextest4 unique alter table migtest_e_basic add constraint uq_migtest_e_basic_indextest5 unique (indextest5); comment on column migtest_e_history.test_string is 'Column altered to long now'; comment on table migtest_e_history is 'We have history now'; -create index ix_migtest_e_basic_indextest3 on migtest_e_basic (indextest3); -create index ix_migtest_e_basic_indextest6 on migtest_e_basic (indextest6); -- foreign keys and indices 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; @@ -114,3 +112,5 @@ alter table migtest_fk_set_null add constraint fk_migtest_fk_set_null_one_id for 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_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 index ix_migtest_e_basic_indextest3 on migtest_e_basic (indextest3); +create index ix_migtest_e_basic_indextest6 on migtest_e_basic (indextest6); 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 index ac474a234..95888a2ae 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlanywhere/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlanywhere/1.3.sql @@ -60,11 +60,11 @@ alter table migtest_e_basic add constraint uq_migtest_e_basic_indextest6 unique 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 ''; -create index ix_migtest_e_basic_indextest1 on migtest_e_basic (indextest1); -create index ix_migtest_e_basic_indextest5 on migtest_e_basic (indextest5); -- foreign keys and indices 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_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; +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/sqlanywhere/idx_sqlanywhere.migrations b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlanywhere/idx_sqlanywhere.migrations index f0ef0b25b..4300368c8 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 @@ -1724156929, 1.0__initial.sql --507265792, 1.1.sql +-2005091128, 1.0__initial.sql +887406340, 1.1.sql 1279151426, 1.2__dropsFor_1.1.sql --1828599751, 1.3.sql +-671185644, 1.3.sql 80209848, 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 index b6bc32578..cf3ffe5d2 100644 --- 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 @@ -165,6 +165,6 @@ create table migtest_oto_master ( constraint pk_migtest_oto_master primary key (id) ); --- apply post alter +-- foreign keys and indices 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 index 24c69d51b..a8880c063 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 @@ -88,8 +88,6 @@ update migtest_e_basic set new_boolean_field = old_boolean; -- not supported: alter table migtest_e_basic add constraint uq_migtest_e_basic_name unique (name); -- not supported: alter table migtest_e_basic add constraint uq_migtest_e_basic_indextest4 unique (indextest4); -- not supported: alter table migtest_e_basic add constraint uq_migtest_e_basic_indextest5 unique (indextest5); -create index ix_migtest_e_basic_indextest3 on migtest_e_basic (indextest3); -create index ix_migtest_e_basic_indextest6 on migtest_e_basic (indextest6); -- foreign keys and indices -- not supported: 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; create index ix_migtest_ckey_parent_assoc_id on migtest_ckey_parent (assoc_id); @@ -102,3 +100,5 @@ create index ix_migtest_ckey_parent_assoc_id on migtest_ckey_parent (assoc_id); -- not supported: 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; -- not supported: 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 index ix_migtest_e_basic_indextest3 on migtest_e_basic (indextest3); +create index ix_migtest_e_basic_indextest6 on migtest_e_basic (indextest6); 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 index e7851f49c..10f81b07d 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlite/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlite/1.3.sql @@ -58,11 +58,11 @@ alter table migtest_e_history2 add column obsolete_string2 varchar(255); -- not supported: alter table migtest_e_basic add constraint uq_migtest_e_basic_indextest2 unique (indextest2); -- not supported: alter table migtest_e_basic add constraint uq_migtest_e_basic_indextest6 unique (indextest6); -- not supported: alter table migtest_e_enum add constraint ck_migtest_e_enum_test_status check ( test_status in ('N','A','I')); -create index ix_migtest_e_basic_indextest1 on migtest_e_basic (indextest1); -create index ix_migtest_e_basic_indextest5 on migtest_e_basic (indextest5); -- foreign keys and indices -- not supported: 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; -- not supported: 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); -- not supported: 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 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/idx_sqlite.migrations b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlite/idx_sqlite.migrations index 590cab29b..3be0f6a87 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 @@ --2084727461, 1.0__initial.sql -1519850067, 1.1.sql +-990693989, 1.0__initial.sql +-71853945, 1.1.sql 1279151426, 1.2__dropsFor_1.1.sql -557533763, 1.3.sql +1929931571, 1.3.sql 80209848, 1.4__dropsFor_1.3.sql 2034589659, R__order_views_sqlite.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 index 0efeb5d8c..8b975af10 100644 --- 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 @@ -163,8 +163,6 @@ create table migtest_oto_master ( 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; alter table migtest_e_ref add constraint uq_migtest_e_ref_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); -- foreign keys and indices 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; @@ -175,6 +173,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); +create index ix_migtest_e_basic_indextest1 on migtest_e_basic (indextest1); +create index ix_migtest_e_basic_indextest5 on migtest_e_basic (indextest5); -- apply history view alter table migtest_e_history2 add sys_periodFrom datetime2 GENERATED ALWAYS AS ROW START NOT NULL DEFAULT SYSUTCDATETIME(), 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 index 29aa7ed4a..4732b7402 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/1.1.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/1.1.sql @@ -36,44 +36,44 @@ create table migtest_mtm_m_phone_numbers ( update migtest_e_basic set status = 'A' where status is null; + +-- rename all collisions; + +insert into migtest_e_user (id) select distinct user_id from migtest_e_basic; + +-- NOTE: table has @History - special migration may be necessary +update migtest_e_history2 set test_string = 'unknown' where test_string is null; + +-- NOTE: table has @History - special migration may be necessary +update migtest_e_history6 set test_number1 = 42 where test_number1 is null; +-- apply alter tables +alter table migtest_ckey_detail add one_key integer; +alter table migtest_ckey_detail add two_key varchar(127); +alter table migtest_ckey_parent add assoc_id integer; EXEC usp_ebean_drop_default_constraint migtest_e_basic, status; alter table migtest_e_basic alter column status varchar(1) not null; alter table migtest_e_basic add default 'A' for status; EXEC usp_ebean_drop_default_constraint migtest_e_basic, status2; alter table migtest_e_basic alter column status2 varchar(127); - --- rename all collisions; - -insert into migtest_e_user (id) select distinct user_id from migtest_e_basic; alter table migtest_e_basic alter column user_id integer; -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; -EXEC usp_ebean_drop_default_constraint migtest_e_history2, test_string; -alter table migtest_e_history2 alter column test_string varchar(255) not null; -alter table migtest_e_history2 add default 'unknown' for test_string; -alter table migtest_e_history4 alter column test_number numeric(19); - --- NOTE: table has @History - special migration may be necessary -update migtest_e_history6 set test_number1 = 42 where test_number1 is null; -EXEC usp_ebean_drop_default_constraint migtest_e_history6, test_number1; -alter table migtest_e_history6 alter column test_number1 integer not null; -alter table migtest_e_history6 add default 42 for test_number1; -alter table migtest_e_history6 alter column test_number2 integer; --- apply alter tables -alter table migtest_ckey_detail add one_key integer; -alter table migtest_ckey_detail add two_key varchar(127); -alter table migtest_ckey_parent add assoc_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; 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 new_integer integer default 42 not null; +alter table migtest_e_history alter column test_string numeric(19); +EXEC usp_ebean_drop_default_constraint migtest_e_history2, test_string; +alter table migtest_e_history2 alter column test_string varchar(255) not null; +alter table migtest_e_history2 add default 'unknown' for test_string; 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; +EXEC usp_ebean_drop_default_constraint migtest_e_history6, test_number1; +alter table migtest_e_history6 alter column test_number1 integer not null; +alter table migtest_e_history6 add default 42 for test_number1; +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); -- apply post alter @@ -87,8 +87,6 @@ create unique nonclustered index uq_migtest_e_basic_status_indextest1 on migtest 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; -create index ix_migtest_e_basic_indextest3 on migtest_e_basic (indextest3); -create index ix_migtest_e_basic_indextest6 on migtest_e_basic (indextest6); -- foreign keys and indices 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); @@ -116,6 +114,8 @@ alter table migtest_fk_set_null add constraint fk_migtest_fk_set_null_one_id for 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_oto_child add constraint fk_migtest_oto_child_master_id foreign key (master_id) references migtest_oto_master (id); +create index ix_migtest_e_basic_indextest3 on migtest_e_basic (indextest3); +create index ix_migtest_e_basic_indextest6 on migtest_e_basic (indextest6); -- apply history view alter table migtest_e_history add sys_periodFrom datetime2 GENERATED ALWAYS AS ROW START NOT NULL DEFAULT SYSUTCDATETIME(), diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/1.2__dropsFor_1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/1.2__dropsFor_1.1.sql index f3720c11c..a5695632f 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/1.2__dropsFor_1.1.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/1.2__dropsFor_1.1.sql @@ -1,11 +1,11 @@ -- Migrationscripts for ebean unittest --- apply changes +-- apply alter tables EXEC usp_ebean_drop_column migtest_e_basic, description_file; 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_seq', 'SO') IS NOT NULL drop sequence migtest_e_ref_seq; -- apply post alter 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/sqlserver16/1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/1.3.sql index 89198bd71..3d209befa 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/1.3.sql @@ -28,36 +28,36 @@ create table migtest_e_ref ( constraint pk_migtest_e_ref primary key (id) ); -EXEC usp_ebean_drop_default_constraint migtest_e_basic, status; -alter table migtest_e_basic alter column status varchar(1); update migtest_e_basic set status2 = 'N' where status2 is null; -EXEC usp_ebean_drop_default_constraint migtest_e_basic, status2; -alter table migtest_e_basic alter column status2 varchar(1) not null; -alter table migtest_e_basic add default 'N' for status2; update migtest_e_basic set user_id = 23 where user_id is null; -EXEC usp_ebean_drop_default_constraint migtest_e_basic, user_id; -alter table migtest_e_basic alter column user_id integer not null; -alter table migtest_e_basic add default 23 for user_id; -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_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; -EXEC usp_ebean_drop_default_constraint migtest_e_history6, test_number2; -alter table migtest_e_history6 alter column test_number2 integer not null; -alter table migtest_e_history6 add default 7 for test_number2; -- apply alter tables +EXEC usp_ebean_drop_default_constraint migtest_e_basic, status; +alter table migtest_e_basic alter column status varchar(1); +EXEC usp_ebean_drop_default_constraint migtest_e_basic, status2; +alter table migtest_e_basic alter column status2 varchar(1) not null; +alter table migtest_e_basic add default 'N' for status2; +EXEC usp_ebean_drop_default_constraint migtest_e_basic, user_id; +alter table migtest_e_basic alter column user_id integer not null; +alter table migtest_e_basic add default 23 for user_id; alter table migtest_e_basic add description_file image; 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; +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; +EXEC usp_ebean_drop_default_constraint migtest_e_history6, test_number2; +alter table migtest_e_history6 alter column test_number2 integer not null; +alter table migtest_e_history6 add default 7 for test_number2; -- apply post alter alter table migtest_e_ref add constraint uq_migtest_e_ref_name unique (name); alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I')); @@ -65,14 +65,14 @@ alter table migtest_e_basic add constraint ck_migtest_e_basic_status2 check ( st 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; alter table migtest_e_enum add constraint ck_migtest_e_enum_test_status check ( test_status in ('N','A','I')); -create index ix_migtest_e_basic_indextest1 on migtest_e_basic (indextest1); -create index ix_migtest_e_basic_indextest5 on migtest_e_basic (indextest5); -- foreign keys and indices 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_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); +create index ix_migtest_e_basic_indextest1 on migtest_e_basic (indextest1); +create index ix_migtest_e_basic_indextest5 on migtest_e_basic (indextest5); -- apply history view -- alter table migtest_e_history3 set (system_versioning = off (history_table=dbo.migtest_e_history3_history)); -- history migration goes here diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/1.4__dropsFor_1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/1.4__dropsFor_1.3.sql index 2499bb58a..74e4a30ab 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/1.4__dropsFor_1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/1.4__dropsFor_1.3.sql @@ -1,5 +1,10 @@ -- Migrationscripts for ebean unittest -- apply changes +-- dropping history support for migtest_e_history; +alter table migtest_e_history set (system_versioning = off); +alter table migtest_e_history drop period for system_time; + +-- apply alter tables 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; @@ -8,25 +13,20 @@ 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_default_constraint migtest_e_history, sys_periodFrom; +EXEC usp_ebean_drop_default_constraint migtest_e_history, sys_periodTo; +EXEC usp_ebean_drop_column migtest_e_history, sys_periodFrom; +EXEC usp_ebean_drop_column migtest_e_history, sys_periodTo; 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_seq', 'SO') IS NOT NULL drop sequence migtest_e_user_seq; -- apply post alter +IF OBJECT_ID('migtest_e_history_history', 'U') IS NOT NULL drop table migtest_e_history_history; 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; --- apply history view --- 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/sqlserver16/idx_sqlserver.migrations b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/idx_sqlserver.migrations index ab24079d6..86d986e00 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/idx_sqlserver.migrations +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/idx_sqlserver.migrations @@ -1,8 +1,8 @@ -2122378240, I__create_procs.sql -1414352463, 1.0__initial.sql --1012657311, 1.1.sql -1667088563, 1.2__dropsFor_1.1.sql --223101666, 1.3.sql -1725174843, 1.4__dropsFor_1.3.sql +-105831629, 1.0__initial.sql +-904775438, 1.1.sql +1481869712, 1.2__dropsFor_1.1.sql +1426896311, 1.3.sql +1582941540, 1.4__dropsFor_1.3.sql 1607822082, R__order_views_mssql.sql diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/1.0__initial.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/1.0__initial.sql index 1ee38b3f3..47f1754f0 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/1.0__initial.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/1.0__initial.sql @@ -185,8 +185,6 @@ create sequence migtest_oto_master_seq as bigint start with 1; 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; alter table migtest_e_ref add constraint uq_migtest_e_ref_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); -- foreign keys and indices 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; @@ -197,6 +195,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); +create index ix_migtest_e_basic_indextest1 on migtest_e_basic (indextest1); +create index ix_migtest_e_basic_indextest5 on migtest_e_basic (indextest5); -- apply history view alter table migtest_e_history2 add sys_periodFrom datetime2 GENERATED ALWAYS AS ROW START NOT NULL DEFAULT SYSUTCDATETIME(), diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/1.1.sql index dd16610ee..a71c6aff3 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/1.1.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/1.1.sql @@ -37,44 +37,44 @@ create table migtest_mtm_m_phone_numbers ( update migtest_e_basic set status = 'A' where status is null; + +-- rename all collisions; + +insert into migtest_e_user (id) select distinct user_id from migtest_e_basic; + +-- NOTE: table has @History - special migration may be necessary +update migtest_e_history2 set test_string = 'unknown' where test_string is null; + +-- NOTE: table has @History - special migration may be necessary +update migtest_e_history6 set test_number1 = 42 where test_number1 is null; +-- apply alter tables +alter table migtest_ckey_detail add one_key integer; +alter table migtest_ckey_detail add two_key nvarchar(127); +alter table migtest_ckey_parent add assoc_id integer; EXEC usp_ebean_drop_default_constraint migtest_e_basic, status; alter table migtest_e_basic alter column status nvarchar(1) not null; alter table migtest_e_basic add default 'A' for status; EXEC usp_ebean_drop_default_constraint migtest_e_basic, status2; alter table migtest_e_basic alter column status2 nvarchar(127); - --- rename all collisions; - -insert into migtest_e_user (id) select distinct user_id from migtest_e_basic; alter table migtest_e_basic alter column user_id integer; -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; -EXEC usp_ebean_drop_default_constraint migtest_e_history2, test_string; -alter table migtest_e_history2 alter column test_string nvarchar(255) not null; -alter table migtest_e_history2 add default 'unknown' for test_string; -alter table migtest_e_history4 alter column test_number numeric(19); - --- NOTE: table has @History - special migration may be necessary -update migtest_e_history6 set test_number1 = 42 where test_number1 is null; -EXEC usp_ebean_drop_default_constraint migtest_e_history6, test_number1; -alter table migtest_e_history6 alter column test_number1 integer not null; -alter table migtest_e_history6 add default 42 for test_number1; -alter table migtest_e_history6 alter column test_number2 integer; --- apply alter tables -alter table migtest_ckey_detail add one_key integer; -alter table migtest_ckey_detail add two_key nvarchar(127); -alter table migtest_ckey_parent add assoc_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; 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 new_integer integer default 42 not null; +alter table migtest_e_history alter column test_string numeric(19); +EXEC usp_ebean_drop_default_constraint migtest_e_history2, test_string; +alter table migtest_e_history2 alter column test_string nvarchar(255) not null; +alter table migtest_e_history2 add default 'unknown' for test_string; 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; +EXEC usp_ebean_drop_default_constraint migtest_e_history6, test_number1; +alter table migtest_e_history6 alter column test_number1 integer not null; +alter table migtest_e_history6 add default 42 for test_number1; +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); -- apply post alter @@ -88,8 +88,6 @@ create unique nonclustered index uq_migtest_e_basic_status_indextest1 on migtest 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; -create index ix_migtest_e_basic_indextest3 on migtest_e_basic (indextest3); -create index ix_migtest_e_basic_indextest6 on migtest_e_basic (indextest6); -- foreign keys and indices 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); @@ -117,6 +115,8 @@ alter table migtest_fk_set_null add constraint fk_migtest_fk_set_null_one_id for 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_oto_child add constraint fk_migtest_oto_child_master_id foreign key (master_id) references migtest_oto_master (id); +create index ix_migtest_e_basic_indextest3 on migtest_e_basic (indextest3); +create index ix_migtest_e_basic_indextest6 on migtest_e_basic (indextest6); -- apply history view alter table migtest_e_history add sys_periodFrom datetime2 GENERATED ALWAYS AS ROW START NOT NULL DEFAULT SYSUTCDATETIME(), 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 index f3720c11c..a5695632f 100644 --- 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 @@ -1,11 +1,11 @@ -- Migrationscripts for ebean unittest --- apply changes +-- apply alter tables EXEC usp_ebean_drop_column migtest_e_basic, description_file; 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_seq', 'SO') IS NOT NULL drop sequence migtest_e_ref_seq; -- apply post alter 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/sqlserver17/1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/1.3.sql index b303d0bb9..1c2359c77 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/1.3.sql @@ -29,36 +29,36 @@ create table migtest_e_ref ( ); create sequence migtest_e_ref_seq as bigint start with 1; -EXEC usp_ebean_drop_default_constraint migtest_e_basic, status; -alter table migtest_e_basic alter column status nvarchar(1); update migtest_e_basic set status2 = 'N' where status2 is null; -EXEC usp_ebean_drop_default_constraint migtest_e_basic, status2; -alter table migtest_e_basic alter column status2 nvarchar(1) not null; -alter table migtest_e_basic add default 'N' for status2; update migtest_e_basic set user_id = 23 where user_id is null; -EXEC usp_ebean_drop_default_constraint migtest_e_basic, user_id; -alter table migtest_e_basic alter column user_id integer not null; -alter table migtest_e_basic add default 23 for user_id; -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_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; -EXEC usp_ebean_drop_default_constraint migtest_e_history6, test_number2; -alter table migtest_e_history6 alter column test_number2 integer not null; -alter table migtest_e_history6 add default 7 for test_number2; -- apply alter tables +EXEC usp_ebean_drop_default_constraint migtest_e_basic, status; +alter table migtest_e_basic alter column status nvarchar(1); +EXEC usp_ebean_drop_default_constraint migtest_e_basic, status2; +alter table migtest_e_basic alter column status2 nvarchar(1) not null; +alter table migtest_e_basic add default 'N' for status2; +EXEC usp_ebean_drop_default_constraint migtest_e_basic, user_id; +alter table migtest_e_basic alter column user_id integer not null; +alter table migtest_e_basic add default 23 for user_id; alter table migtest_e_basic add description_file image; 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; +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; +EXEC usp_ebean_drop_default_constraint migtest_e_history6, test_number2; +alter table migtest_e_history6 alter column test_number2 integer not null; +alter table migtest_e_history6 add default 7 for test_number2; -- apply post alter alter table migtest_e_ref add constraint uq_migtest_e_ref_name unique (name); alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I')); @@ -66,14 +66,14 @@ alter table migtest_e_basic add constraint ck_migtest_e_basic_status2 check ( st 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; alter table migtest_e_enum add constraint ck_migtest_e_enum_test_status check ( test_status in ('N','A','I')); -create index ix_migtest_e_basic_indextest1 on migtest_e_basic (indextest1); -create index ix_migtest_e_basic_indextest5 on migtest_e_basic (indextest5); -- foreign keys and indices 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_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); +create index ix_migtest_e_basic_indextest1 on migtest_e_basic (indextest1); +create index ix_migtest_e_basic_indextest5 on migtest_e_basic (indextest5); -- apply history view -- alter table migtest_e_history3 set (system_versioning = off (history_table=dbo.migtest_e_history3_history)); -- history migration goes here 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 index 2499bb58a..74e4a30ab 100644 --- 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 @@ -1,5 +1,10 @@ -- Migrationscripts for ebean unittest -- apply changes +-- dropping history support for migtest_e_history; +alter table migtest_e_history set (system_versioning = off); +alter table migtest_e_history drop period for system_time; + +-- apply alter tables 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; @@ -8,25 +13,20 @@ 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_default_constraint migtest_e_history, sys_periodFrom; +EXEC usp_ebean_drop_default_constraint migtest_e_history, sys_periodTo; +EXEC usp_ebean_drop_column migtest_e_history, sys_periodFrom; +EXEC usp_ebean_drop_column migtest_e_history, sys_periodTo; 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_seq', 'SO') IS NOT NULL drop sequence migtest_e_user_seq; -- apply post alter +IF OBJECT_ID('migtest_e_history_history', 'U') IS NOT NULL drop table migtest_e_history_history; 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; --- apply history view --- 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/idx_sqlserver.migrations b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/idx_sqlserver.migrations index 590cf2f31..c544ae3d2 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/idx_sqlserver.migrations +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/idx_sqlserver.migrations @@ -1,8 +1,8 @@ -2122378240, I__create_procs.sql -1292882955, 1.0__initial.sql --494353436, 1.1.sql -1667088563, 1.2__dropsFor_1.1.sql --1529225098, 1.3.sql -1725174843, 1.4__dropsFor_1.3.sql +-520898185, 1.0__initial.sql +339251767, 1.1.sql +1481869712, 1.2__dropsFor_1.1.sql +-2072392503, 1.3.sql +1582941540, 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 index f11a72a97..ff8393190 100644 --- 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 @@ -99,28 +99,24 @@ create table migtest_e_history2 ( obsolete_string2 varchar(255), constraint pk_migtest_e_history2 primary key (id) ); -alter table migtest_e_history2 add column sys_period tstzrange not null default tstzrange(current_timestamp, null); 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) ); -alter table migtest_e_history3 add column sys_period tstzrange not null default tstzrange(current_timestamp, null); 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) ); -alter table migtest_e_history4 add column sys_period tstzrange not null default tstzrange(current_timestamp, null); 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) ); -alter table migtest_e_history5 add column sys_period tstzrange not null default tstzrange(current_timestamp, null); create table migtest_e_history6 ( id integer generated by default as identity not null, @@ -128,7 +124,6 @@ create table migtest_e_history6 ( test_number2 integer not null, constraint pk_migtest_e_history6 primary key (id) ); -alter table migtest_e_history6 add column sys_period tstzrange not null default tstzrange(current_timestamp, null); create table migtest_e_ref ( id integer generated by default as identity not null, @@ -167,6 +162,12 @@ create table migtest_oto_master ( constraint pk_migtest_oto_master primary key (id) ); +-- apply alter tables +alter table migtest_e_history2 add column sys_period tstzrange not null default tstzrange(current_timestamp, null); +alter table migtest_e_history3 add column sys_period tstzrange not null default tstzrange(current_timestamp, null); +alter table migtest_e_history4 add column sys_period tstzrange not null default tstzrange(current_timestamp, null); +alter table migtest_e_history5 add column sys_period tstzrange not null default tstzrange(current_timestamp, null); +alter table migtest_e_history6 add column sys_period tstzrange not null default tstzrange(current_timestamp, null); -- apply post alter create table migtest_e_history2_history( id integer, @@ -206,8 +207,6 @@ create table migtest_e_history6_history( ); create view migtest_e_history6_with_history as select * from migtest_e_history6 union all select * from migtest_e_history6_history; -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); -- foreign keys and indices 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; @@ -218,6 +217,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; +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); -- apply history trigger create or replace function migtest_e_history2_history_version() returns trigger as $$ declare 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 88fd0b445..6fbffe731 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 @@ -38,18 +38,13 @@ create table migtest_mtm_m_phone_numbers ( update migtest_e_basic set status = 'A' where status is null; -alter table migtest_e_basic alter column status2 type varchar(127) using status2::varchar(127); -- rename all collisions; insert into migtest_e_user (id) select distinct user_id from migtest_e_basic; -alter table migtest_e_history add column sys_period tstzrange not null default tstzrange(current_timestamp, null); -alter table migtest_e_history alter column test_string type bigint using 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_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; -- NOTE: table has @History - special migration may be necessary update migtest_e_history6 set test_number1 = 42 where test_number1 is null; @@ -59,6 +54,7 @@ alter table migtest_ckey_detail add column two_key varchar(127); alter table migtest_ckey_parent add column assoc_id integer; 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 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; alter table migtest_e_basic alter column user_id drop not null; @@ -67,6 +63,8 @@ alter table migtest_e_basic add column new_boolean_field boolean default true no 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 column new_integer integer default 42 not null; +alter table migtest_e_history add column sys_period tstzrange not null default tstzrange(current_timestamp, null); +alter table migtest_e_history alter column test_string type bigint using test_string::bigint; 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); @@ -75,6 +73,8 @@ 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; alter table migtest_e_history6 alter column test_number1 set default 42; @@ -102,8 +102,6 @@ create view migtest_e_history_with_history as select * from migtest_e_history un comment on column migtest_e_history.test_string is 'Column altered to long now'; comment on table migtest_e_history is 'We have history now'; -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); -- foreign keys and indices 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; @@ -131,6 +129,8 @@ alter table migtest_fk_set_null add constraint fk_migtest_fk_set_null_one_id for 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_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 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); -- apply history view 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/yugabyte/1.2__dropsFor_1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/yugabyte/1.2__dropsFor_1.1.sql index 6cb98c684..f3eb208a1 100644 --- 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 @@ -1,8 +1,6 @@ -- Migrationscripts for ebean unittest -- drop dependencies drop view if exists migtest_e_history2_with_history; --- apply changes -drop sequence if exists migtest_e_ref_seq; -- apply alter tables alter table migtest_e_basic drop column description_file; alter table migtest_e_basic drop column old_boolean; @@ -14,6 +12,7 @@ alter table migtest_e_history2_history drop column obsolete_string1; alter table migtest_e_history2_history drop column obsolete_string2; -- apply post alter drop table if exists migtest_e_ref cascade; +drop sequence if exists migtest_e_ref_seq; -- apply history view 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/yugabyte/1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/yugabyte/1.3.sql index a981ac966..df3848efc 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/yugabyte/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/yugabyte/1.3.sql @@ -29,17 +29,15 @@ create table migtest_e_ref ( update migtest_e_basic set status2 = 'N' where status2 is null; -alter table migtest_e_basic alter column status2 type varchar(1) using status2::varchar(1); update migtest_e_basic set user_id = 23 where user_id is null; -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; -- NOTE: table has @History - special migration may be necessary update migtest_e_history6 set test_number2 = 7 where test_number2 is null; -- apply alter tables 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 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 alter column user_id set default 23; @@ -54,6 +52,8 @@ 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; alter table migtest_e_history6 alter column test_number2 set default 7; @@ -66,14 +66,14 @@ alter table migtest_e_basic add constraint uq_migtest_e_basic_indextest6 unique 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 ''; -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); -- foreign keys and indices 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_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; +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); -- apply history view 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/yugabyte/1.4__dropsFor_1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/yugabyte/1.4__dropsFor_1.3.sql index 619739537..bea42a3cf 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 @@ -8,8 +8,6 @@ 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 -drop sequence if exists migtest_e_user_seq; -- apply alter tables alter table migtest_ckey_detail drop column one_key; alter table migtest_ckey_detail drop column two_key; @@ -32,6 +30,7 @@ alter table migtest_e_softdelete drop column deleted; alter table migtest_oto_child drop column master_id; -- apply post alter 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/yugabyte/idx_yugabyte.migrations b/ebean-test/src/test/resources/migrationtest/dbmigration/yugabyte/idx_yugabyte.migrations index fb0f3b53b..ceed1a0fb 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 @@ --1227820933, 1.0__initial.sql -750187475, 1.1.sql -23016453, 1.2__dropsFor_1.1.sql --1539328455, 1.3.sql -2062908930, 1.4__dropsFor_1.3.sql +1260183516, 1.0__initial.sql +1193452475, 1.1.sql +1770819182, 1.2__dropsFor_1.1.sql +456034327, 1.3.sql +739723472, 1.4__dropsFor_1.3.sql 561281075, R__order_views.sql From c902caed245092637a847e50810e46c3a29607b3 Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Mon, 14 Mar 2022 15:32:42 +1300 Subject: [PATCH 080/114] Fix is to delay the extra join added via BeanPropertyAssocOne until after the children nodes have joined. In this way the join is ONLY added if not already done so via a child node (SqlTreeNode). --- .../server/query/SqlTreeJoin.java | 2 ++ .../model/join/{Access.java => HAccess.java} | 26 +++++++++---------- .../join/{Account.java => HAccount.java} | 18 ++++++------- .../java/org/tests/model/join/HCustomer.java | 20 ++++++++++++++ 4 files changed, 43 insertions(+), 23 deletions(-) create mode 100644 ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTreeJoin.java rename ebean-test/src/test/java/org/tests/model/join/{Access.java => HAccess.java} (78%) rename ebean-test/src/test/java/org/tests/model/join/{Account.java => HAccount.java} (62%) create mode 100644 ebean-test/src/test/java/org/tests/model/join/HCustomer.java diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTreeJoin.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTreeJoin.java new file mode 100644 index 000000000..f7169fe0f --- /dev/null +++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTreeJoin.java @@ -0,0 +1,2 @@ +package io.ebeaninternal.server.query;public interface SqlTreeJoin { +} diff --git a/ebean-test/src/test/java/org/tests/model/join/Access.java b/ebean-test/src/test/java/org/tests/model/join/HAccess.java similarity index 78% rename from ebean-test/src/test/java/org/tests/model/join/Access.java rename to ebean-test/src/test/java/org/tests/model/join/HAccess.java index 1d394e98d..ebc14d681 100644 --- a/ebean-test/src/test/java/org/tests/model/join/Access.java +++ b/ebean-test/src/test/java/org/tests/model/join/HAccess.java @@ -18,20 +18,20 @@ public abstract class Access { @Id UUID id; - + @ManyToOne @DbForeignKey(noConstraint = true) @JoinColumn(name = "accessor_id") - Customer accessor; + ACustomer accessor; @ManyToOne @DbForeignKey(noConstraint = true) @JoinColumn(name = "principal_id") - Customer principal; + ACustomer principal; @ManyToOne @DbForeignKey(noConstraint = true) - @JoinColumn(name = "account_account_number") + @JoinColumn(name = "access_account_number") Account account; public UUID getId() { @@ -42,22 +42,22 @@ public abstract class Access { this.id = id; } - public Customer getAccessor() { + public ACustomer getAccessor() { return accessor; } - - public void setAccessor(Customer accessor) { + + public void setAccessor(ACustomer accessor) { this.accessor = accessor; } - - public Customer getPrincipal() { + + public ACustomer getPrincipal() { return principal; } - public void setPrincipal(Customer principal) { + public void setPrincipal(ACustomer principal) { this.principal = principal; } - + public Account getAccount() { return account; } @@ -66,5 +66,5 @@ public abstract class Access { this.account = account; setPrincipal(account.getOwner()); } - -} \ No newline at end of file + +} diff --git a/ebean-test/src/test/java/org/tests/model/join/Account.java b/ebean-test/src/test/java/org/tests/model/join/HAccount.java similarity index 62% rename from ebean-test/src/test/java/org/tests/model/join/Account.java rename to ebean-test/src/test/java/org/tests/model/join/HAccount.java index ad2da2099..6820947bd 100644 --- a/ebean-test/src/test/java/org/tests/model/join/Account.java +++ b/ebean-test/src/test/java/org/tests/model/join/HAccount.java @@ -1,9 +1,6 @@ package org.tests.model.join; -import javax.persistence.Entity; -import javax.persistence.Id; -import javax.persistence.Inheritance; -import javax.persistence.ManyToOne; +import javax.persistence.*; import org.tests.model.basic.Customer; @@ -13,9 +10,10 @@ public abstract class Account { @Id String accountNumber; - + @ManyToOne - Customer owner; + @JoinColumn(name = "owner_id")//, referencedColumnName = "id") + ACustomer owner; public String getAccountNumber() { return accountNumber; @@ -25,12 +23,12 @@ public abstract class Account { this.accountNumber = accountNumber; } - public Customer getOwner() { + public ACustomer getOwner() { return owner; } - public void setOwner(Customer owner) { + public void setOwner(ACustomer owner) { this.owner = owner; } - -} \ No newline at end of file + +} diff --git a/ebean-test/src/test/java/org/tests/model/join/HCustomer.java b/ebean-test/src/test/java/org/tests/model/join/HCustomer.java new file mode 100644 index 000000000..a78aaf773 --- /dev/null +++ b/ebean-test/src/test/java/org/tests/model/join/HCustomer.java @@ -0,0 +1,20 @@ +package org.tests.model.join; + +import javax.persistence.Entity; +import javax.persistence.Id; + +@Entity +public class ACustomer { + + @Id + final String cid; + + final String name; + + String status = "A"; + + public ACustomer(String cid, String name) { + this.cid = cid; + this.name = name; + } +} From 267b1b730317048214a7ae6910a14d07d685b1a5 Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Mon, 14 Mar 2022 15:37:12 +1300 Subject: [PATCH 081/114] #2580 - Fix for Wrong join in query with @Inheritance Effectively delays an extra join added via BeanPropertyAssocOne with inheritance, such that this only occurs if a SqlTreeNode child doesn't add the join. --- .../server/deploy/AssocOneHelpRefInherit.java | 22 ++++- .../server/deploy/DbSqlContext.java | 10 +++ .../server/query/DefaultDbSqlContext.java | 23 +++++- .../server/query/SqlTreeBuilder.java | 2 +- .../server/query/SqlTreeJoin.java | 15 +++- .../server/query/SqlTreeNodeBean.java | 4 +- .../TestMTOInheritNoDiscriminator.java | 6 +- .../org/tests/model/join/AccountAccess.java | 4 +- .../org/tests/model/join/BankAccount.java | 6 +- .../org/tests/model/join/CustomerAccess.java | 4 +- .../java/org/tests/model/join/HAccess.java | 22 +++-- .../java/org/tests/model/join/HAccount.java | 12 ++- .../java/org/tests/model/join/HCustomer.java | 4 +- .../query/TestQueryMultiJoinFetchPath.java | 81 ++++++++----------- 14 files changed, 130 insertions(+), 85 deletions(-) diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/AssocOneHelpRefInherit.java b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/AssocOneHelpRefInherit.java index b797c5a0c..72fb828c7 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/AssocOneHelpRefInherit.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/AssocOneHelpRefInherit.java @@ -3,6 +3,7 @@ package io.ebeaninternal.server.deploy; import io.ebean.bean.EntityBean; import io.ebean.bean.PersistenceContext; import io.ebeaninternal.server.query.SqlJoinType; +import io.ebeaninternal.server.query.SqlTreeJoin; import java.sql.SQLException; @@ -60,11 +61,28 @@ final class AssocOneHelpRefInherit extends AssocOneHelp { return ref; } - @Override void appendFrom(DbSqlContext ctx, SqlJoinType joinType) { // add join to support the discriminator column String relativePrefix = ctx.getRelativePrefix(property.name); - property.tableJoin.addJoin(joinType, relativePrefix, ctx); + ctx.addExtraJoin(new Extra(relativePrefix, joinType)); + } + + /** + * Extra join to support the discriminator column. + */ + final class Extra implements SqlTreeJoin { + final String relativePrefix; + final SqlJoinType joinType; + Extra(String relativePrefix, SqlJoinType joinType) { + this.relativePrefix = relativePrefix; + this.joinType = joinType; + } + + @Override + public void addJoin(DbSqlContext ctx) { + // add join to support the discriminator column *IF* join is not already present + property.tableJoin.addJoin(joinType, relativePrefix, ctx); + } } /** diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/DbSqlContext.java b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/DbSqlContext.java index 501a8550f..1fccc46f3 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/DbSqlContext.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/DbSqlContext.java @@ -1,6 +1,7 @@ package io.ebeaninternal.server.deploy; import io.ebeaninternal.server.query.SqlJoinType; +import io.ebeaninternal.server.query.SqlTreeJoin; /** * Used to provide context during sql construction. @@ -133,4 +134,13 @@ public interface DbSqlContext { */ void appendFromForUpdate(); + /** + * Delay adding an extra join to support inheritance discriminator in projection (IF required). + */ + void addExtraJoin(SqlTreeJoin treeJoin); + + /** + * Add extra joins *IF* required to support inheritance discriminator in projection. + */ + void flushExtraJoins(); } diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/DefaultDbSqlContext.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/DefaultDbSqlContext.java index 036cda797..4e45c564c 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/query/DefaultDbSqlContext.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/DefaultDbSqlContext.java @@ -7,6 +7,7 @@ import io.ebeaninternal.server.util.ArrayStack; import java.util.ArrayList; import java.util.HashSet; +import java.util.List; final class DefaultDbSqlContext implements DbSqlContext { @@ -43,7 +44,9 @@ final class DefaultDbSqlContext implements DbSqlContext { private String currentPrefix; - private ArrayList encryptedProps; + private List encryptedProps; + + private List extraJoins; private final CQueryDraftSupport draftSupport; @@ -70,6 +73,24 @@ final class DefaultDbSqlContext implements DbSqlContext { return alias.isIncludeSoftDelete(); } + @Override + public void addExtraJoin(SqlTreeJoin treeJoin) { + if (extraJoins == null) { + extraJoins = new ArrayList<>(); + } + extraJoins.add(treeJoin); + } + + @Override + public void flushExtraJoins() { + if (extraJoins != null) { + for (SqlTreeJoin extra : extraJoins) { + extra.addJoin(this); + } + extraJoins = null; + } + } + @Override public void appendFromForUpdate() { if (fromForUpdate != null) { diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTreeBuilder.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTreeBuilder.java index ed687aff8..0e4f11079 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTreeBuilder.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTreeBuilder.java @@ -256,7 +256,7 @@ public final class SqlTreeBuilder { } addManyWhereJoins(myJoinList); } - extraProps.forEach(props::add); + extraProps.forEach(props::add); //addExtra if (!rawSql && manyWhereJoins.isFormulaWithJoin(prefix)) { for (String property : manyWhereJoins.getFormulaJoinProperties(prefix)) { diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTreeJoin.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTreeJoin.java index f7169fe0f..340ee22b7 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTreeJoin.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTreeJoin.java @@ -1,2 +1,15 @@ -package io.ebeaninternal.server.query;public interface SqlTreeJoin { +package io.ebeaninternal.server.query; + +import io.ebeaninternal.server.deploy.DbSqlContext; + +/** + * Extra Sql joins conditionally added if required (after children are joined). + */ +public interface SqlTreeJoin { + + /** + * Add the extra join if required. + */ + void addJoin(DbSqlContext ctx); + } diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTreeNodeBean.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTreeNodeBean.java index d5ec71aa4..1ed4df10d 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTreeNodeBean.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTreeNodeBean.java @@ -279,18 +279,16 @@ class SqlTreeNodeBean implements SqlTreeNode { ctx.pushTableAlias(prefix); baseTableAlias = ctx.getTableAlias(prefix); - // join and return SqlJoinType to use for child joins joinType = appendFromBaseTable(ctx, joinType); - for (STreeProperty property : properties) { // usually nothing... except for 1-1 Exported property.appendFrom(ctx, joinType, null); } - for (SqlTreeNode child : children) { child.appendFrom(ctx, joinType); } + ctx.flushExtraJoins(); ctx.popTableAlias(); ctx.popJoin(); } diff --git a/ebean-test/src/test/java/org/tests/model/carwheeltruck/TestMTOInheritNoDiscriminator.java b/ebean-test/src/test/java/org/tests/model/carwheeltruck/TestMTOInheritNoDiscriminator.java index 107089063..9f6052b9a 100644 --- a/ebean-test/src/test/java/org/tests/model/carwheeltruck/TestMTOInheritNoDiscriminator.java +++ b/ebean-test/src/test/java/org/tests/model/carwheeltruck/TestMTOInheritNoDiscriminator.java @@ -9,10 +9,10 @@ import java.util.List; import static org.assertj.core.api.Assertions.assertThat; -public class TestMTOInheritNoDiscriminator extends BaseTestCase { +class TestMTOInheritNoDiscriminator extends BaseTestCase { @Test - public void test() { + void test() { final TTruckHolder holder = setup(); @@ -31,7 +31,7 @@ public class TestMTOInheritNoDiscriminator extends BaseTestCase { assertThat(sql).hasSize(1); if (isH2() || isPostgresCompatible()) { - assertSql(sql.get(0)).contains("select t0.id, t0.name, t0.version, t2.type, t0.truck_plate_no, t0.basic_id, t1.id, t1.some_uid, t1.foo, t1.owner_id from ttruck_holder t0 join tcar t2 on t2.plate_no = t0.truck_plate_no left join ttruck_holder_item t1 on t1.owner_id = t0.id where t0.id = ? order by t0.id"); + assertSql(sql.get(0)).contains("select t0.id, t0.name, t0.version, t2.type, t0.truck_plate_no, t0.basic_id, t1.id, t1.some_uid, t1.foo, t1.owner_id from ttruck_holder t0 left join ttruck_holder_item t1 on t1.owner_id = t0.id join tcar t2 on t2.plate_no = t0.truck_plate_no where t0.id = ? order by t0.id"); } } diff --git a/ebean-test/src/test/java/org/tests/model/join/AccountAccess.java b/ebean-test/src/test/java/org/tests/model/join/AccountAccess.java index bf04209de..052d91156 100644 --- a/ebean-test/src/test/java/org/tests/model/join/AccountAccess.java +++ b/ebean-test/src/test/java/org/tests/model/join/AccountAccess.java @@ -5,6 +5,6 @@ import javax.persistence.Entity; @DiscriminatorValue("A") @Entity -public class AccountAccess extends Access { +public class AccountAccess extends HAccess { -} \ No newline at end of file +} diff --git a/ebean-test/src/test/java/org/tests/model/join/BankAccount.java b/ebean-test/src/test/java/org/tests/model/join/BankAccount.java index 8cb93fb70..491303be7 100644 --- a/ebean-test/src/test/java/org/tests/model/join/BankAccount.java +++ b/ebean-test/src/test/java/org/tests/model/join/BankAccount.java @@ -5,6 +5,6 @@ import javax.persistence.Entity; @DiscriminatorValue("B") @Entity -public class BankAccount extends Account { - -} \ No newline at end of file +public class BankAccount extends HAccount { + +} diff --git a/ebean-test/src/test/java/org/tests/model/join/CustomerAccess.java b/ebean-test/src/test/java/org/tests/model/join/CustomerAccess.java index 5897a8833..c9336de17 100644 --- a/ebean-test/src/test/java/org/tests/model/join/CustomerAccess.java +++ b/ebean-test/src/test/java/org/tests/model/join/CustomerAccess.java @@ -5,6 +5,6 @@ import javax.persistence.Entity; @DiscriminatorValue("C") @Entity -public class CustomerAccess extends Access { +public class CustomerAccess extends HAccess { -} \ No newline at end of file +} diff --git a/ebean-test/src/test/java/org/tests/model/join/HAccess.java b/ebean-test/src/test/java/org/tests/model/join/HAccess.java index ebc14d681..e62484d96 100644 --- a/ebean-test/src/test/java/org/tests/model/join/HAccess.java +++ b/ebean-test/src/test/java/org/tests/model/join/HAccess.java @@ -8,13 +8,11 @@ import javax.persistence.Inheritance; import javax.persistence.JoinColumn; import javax.persistence.ManyToOne; -import org.tests.model.basic.Customer; - import io.ebean.annotation.DbForeignKey; @Inheritance @Entity -public abstract class Access { +public abstract class HAccess { @Id UUID id; @@ -22,17 +20,17 @@ public abstract class Access { @ManyToOne @DbForeignKey(noConstraint = true) @JoinColumn(name = "accessor_id") - ACustomer accessor; + HCustomer accessor; @ManyToOne @DbForeignKey(noConstraint = true) @JoinColumn(name = "principal_id") - ACustomer principal; + HCustomer principal; @ManyToOne @DbForeignKey(noConstraint = true) @JoinColumn(name = "access_account_number") - Account account; + HAccount account; public UUID getId() { return id; @@ -42,27 +40,27 @@ public abstract class Access { this.id = id; } - public ACustomer getAccessor() { + public HCustomer getAccessor() { return accessor; } - public void setAccessor(ACustomer accessor) { + public void setAccessor(HCustomer accessor) { this.accessor = accessor; } - public ACustomer getPrincipal() { + public HCustomer getPrincipal() { return principal; } - public void setPrincipal(ACustomer principal) { + public void setPrincipal(HCustomer principal) { this.principal = principal; } - public Account getAccount() { + public HAccount getAccount() { return account; } - public void setAccount(Account account) { + public void setAccount(HAccount account) { this.account = account; setPrincipal(account.getOwner()); } diff --git a/ebean-test/src/test/java/org/tests/model/join/HAccount.java b/ebean-test/src/test/java/org/tests/model/join/HAccount.java index 6820947bd..2ca896403 100644 --- a/ebean-test/src/test/java/org/tests/model/join/HAccount.java +++ b/ebean-test/src/test/java/org/tests/model/join/HAccount.java @@ -2,18 +2,16 @@ package org.tests.model.join; import javax.persistence.*; -import org.tests.model.basic.Customer; - @Entity @Inheritance -public abstract class Account { +public abstract class HAccount { @Id String accountNumber; @ManyToOne - @JoinColumn(name = "owner_id")//, referencedColumnName = "id") - ACustomer owner; + @JoinColumn(name = "owner_id") + HCustomer owner; public String getAccountNumber() { return accountNumber; @@ -23,11 +21,11 @@ public abstract class Account { this.accountNumber = accountNumber; } - public ACustomer getOwner() { + public HCustomer getOwner() { return owner; } - public void setOwner(ACustomer owner) { + public void setOwner(HCustomer owner) { this.owner = owner; } diff --git a/ebean-test/src/test/java/org/tests/model/join/HCustomer.java b/ebean-test/src/test/java/org/tests/model/join/HCustomer.java index a78aaf773..9a5ba3a9d 100644 --- a/ebean-test/src/test/java/org/tests/model/join/HCustomer.java +++ b/ebean-test/src/test/java/org/tests/model/join/HCustomer.java @@ -4,7 +4,7 @@ import javax.persistence.Entity; import javax.persistence.Id; @Entity -public class ACustomer { +public class HCustomer { @Id final String cid; @@ -13,7 +13,7 @@ public class ACustomer { String status = "A"; - public ACustomer(String cid, String name) { + public HCustomer(String cid, String name) { this.cid = cid; this.name = name; } diff --git a/ebean-test/src/test/java/org/tests/query/TestQueryMultiJoinFetchPath.java b/ebean-test/src/test/java/org/tests/query/TestQueryMultiJoinFetchPath.java index 18f77b155..e8f1a81be 100644 --- a/ebean-test/src/test/java/org/tests/query/TestQueryMultiJoinFetchPath.java +++ b/ebean-test/src/test/java/org/tests/query/TestQueryMultiJoinFetchPath.java @@ -1,80 +1,69 @@ package org.tests.query; -import static org.assertj.core.api.Assertions.assertThat; - -import java.util.List; - -import org.junit.jupiter.api.Test; -import org.tests.model.basic.Customer; -import org.tests.model.basic.Customer.Status; -import org.tests.model.basic.ResetBasicData; -import org.tests.model.join.Access; -import org.tests.model.join.Account; -import org.tests.model.join.AccountAccess; -import org.tests.model.join.BankAccount; -import org.tests.model.join.CustomerAccess; - import io.ebean.BaseTestCase; import io.ebean.DB; import io.ebean.Query; +import org.junit.jupiter.api.Test; +import org.tests.model.join.*; -public class TestQueryMultiJoinFetchPath extends BaseTestCase { +import java.util.List; + +import static org.assertj.core.api.Assertions.assertThat; + +class TestQueryMultiJoinFetchPath extends BaseTestCase { @Test - public void test() { + void test() { - ResetBasicData.reset(); - - Customer c1 = new Customer(); - c1.setName("c1"); - c1.setStatus(Status.ACTIVE); + HCustomer c1 = new HCustomer("c1", "c1"); DB.save(c1); - - Customer c2 = new Customer(); - c2.setName("c2"); - c2.setStatus(Status.ACTIVE); + + HCustomer c2 = new HCustomer("c2", "c2"); DB.save(c2); - - Customer c3 = new Customer(); - c3.setName("c3"); - c3.setStatus(Status.ACTIVE); + + HCustomer c3 = new HCustomer("c3", "c3"); DB.save(c3); - - Account a1 = new BankAccount(); + + HAccount a1 = new BankAccount(); a1.setAccountNumber("a1"); a1.setOwner(c1); DB.save(a1); - + CustomerAccess ca = new CustomerAccess(); ca.setAccessor(c3); ca.setPrincipal(c1); DB.save(ca); - + AccountAccess aa = new AccountAccess(); aa.setAccessor(c2); aa.setAccount(a1); DB.save(aa); - - List ids = DB.find(Access.class) + + List ids = DB.find(HAccess.class) .where() - .eq("principal.status", Status.ACTIVE) - .eq("accessor.status", Status.ACTIVE) + .eq("principal.status", "A") + .eq("accessor.status", "A") .findIds(); - + assertThat(ids).hasSize(2); - - Query query = DB.find(Access.class) + + Query query = DB.find(HAccess.class) .fetch("account","accountNumber") .fetch("accessor","name") .where() - .eq("accessor.status", Status.ACTIVE) - .eq("principal.status", Status.ACTIVE) + .eq("accessor.status", "A") + .eq("principal.status", "A") .idIn(ids) .query(); - - List accesses = query.findList(); - + + List accesses = query.findList(); + assertThat(accesses).hasSize(2); + if (isH2()) { + assertThat(query.getGeneratedSql()).isEqualTo("select t0.dtype, t0.id, t0.accessor_id, t0.principal_id, t2.dtype, t0.access_account_number, t0.accessor_id, t2.dtype, t0.access_account_number, t1.cid, t1.name, t2.dtype, t2.account_number from haccess t0 left join hcustomer t1 on t1.cid = t0.accessor_id left join haccount t2 on t2.account_number = t0.access_account_number and t2.dtype = 'B' left join hcustomer t3 on t3.cid = t0.principal_id where t1.status = ? and t3.status = ? and t0.id in (?,?,?,?,?)"); + } else { + assertThat(query.getGeneratedSql()).contains("select t0.dtype, t0.id, t0.accessor_id, t0.principal_id, t2.dtype, t0.access_account_number, t0.accessor_id, t2.dtype, t0.access_account_number, t1.cid, t1.name, t2.dtype, t2.account_number from haccess t0 left join hcustomer t1 on t1.cid = t0.accessor_id left join haccount t2 on t2.account_number = t0.access_account_number and t2.dtype = 'B' left join hcustomer t3 on t3.cid = t0.principal_id where t1.status = ? and t3.status = ? and t0.id "); + } } - + } From 267a81b792d85450b3775ac5fde7f05b76b69676 Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Mon, 14 Mar 2022 15:46:21 +1300 Subject: [PATCH 082/114] #25890 - Tidy only, no effective change for BackgroundExecutorWrapper --- .../config/BackgroundExecutorWrapper.java | 14 ++++----- .../config/MdcBackgroundExecutorWrapper.java | 10 ++++--- .../executor/DefaultBackgroundExecutor.java | 29 ++++++++++--------- 3 files changed, 28 insertions(+), 25 deletions(-) diff --git a/ebean-api/src/main/java/io/ebean/config/BackgroundExecutorWrapper.java b/ebean-api/src/main/java/io/ebean/config/BackgroundExecutorWrapper.java index 306b7e88e..b290e5863 100644 --- a/ebean-api/src/main/java/io/ebean/config/BackgroundExecutorWrapper.java +++ b/ebean-api/src/main/java/io/ebean/config/BackgroundExecutorWrapper.java @@ -3,9 +3,9 @@ package io.ebean.config; import java.util.concurrent.Callable; /** - * BackgroundExecutorWrapper that can be used to wrap tasks that are sent to background (i.e. an other thread). - * It should copy all neccessary thread-local variables. See {@link MdcBackgroundExecutorWrapper} for implementation details. - * + * BackgroundExecutorWrapper that can be used to wrap tasks that are sent to background (i.e. another thread). + * It should copy all necessary thread-local variables. See {@link MdcBackgroundExecutorWrapper} for implementation details. + * * @author Roland Praml, FOCONIS AG */ public interface BackgroundExecutorWrapper { @@ -21,22 +21,22 @@ public interface BackgroundExecutorWrapper { Runnable wrap(Runnable task); /** - * Combines two wrappers by joining them. + * Combines two wrappers by nesting them. */ default BackgroundExecutorWrapper with(BackgroundExecutorWrapper inner) { return new BackgroundExecutorWrapper() { - + @Override public Runnable wrap(Runnable task) { return BackgroundExecutorWrapper.this.wrap(inner.wrap(task)); } - + @Override public Callable wrap(Callable task) { return BackgroundExecutorWrapper.this.wrap(inner.wrap(task)); } }; - + } } diff --git a/ebean-api/src/main/java/io/ebean/config/MdcBackgroundExecutorWrapper.java b/ebean-api/src/main/java/io/ebean/config/MdcBackgroundExecutorWrapper.java index 5a0fa7980..af6a3ac26 100644 --- a/ebean-api/src/main/java/io/ebean/config/MdcBackgroundExecutorWrapper.java +++ b/ebean-api/src/main/java/io/ebean/config/MdcBackgroundExecutorWrapper.java @@ -1,13 +1,15 @@ package io.ebean.config; +import org.slf4j.MDC; + import java.util.Map; import java.util.concurrent.Callable; -import org.slf4j.MDC; +/** + * Propagates MDC context for tasks executed in the background. + */ +public final class MdcBackgroundExecutorWrapper implements BackgroundExecutorWrapper { -public class MdcBackgroundExecutorWrapper implements BackgroundExecutorWrapper { - - /** * Wrap the task with MDC context if defined. */ diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/executor/DefaultBackgroundExecutor.java b/ebean-core/src/main/java/io/ebeaninternal/server/executor/DefaultBackgroundExecutor.java index 468f397ff..6e49ff255 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/executor/DefaultBackgroundExecutor.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/executor/DefaultBackgroundExecutor.java @@ -15,8 +15,8 @@ import org.slf4j.LoggerFactory; @NonNullApi public final class DefaultBackgroundExecutor implements SpiBackgroundExecutor { - protected static final Logger logger = LoggerFactory.getLogger("io.ebean.BackgroundExecutor"); - + private static final Logger log = LoggerFactory.getLogger("io.ebean.BackgroundExecutor"); + private final ScheduledExecutorService schedulePool; private final DaemonExecutorService pool; private final BackgroundExecutorWrapper wrapper; @@ -28,7 +28,7 @@ public final class DefaultBackgroundExecutor implements SpiBackgroundExecutor { this.schedulePool = new DaemonScheduleThreadPool(schedulePoolSize, shutdownWaitSeconds, namePrefix + "-periodic-"); this.pool = new DaemonExecutorService(shutdownWaitSeconds, namePrefix); this.wrapper = wrapper; - logger.debug("Created backgroundExecutor {} (schedulePoolSize={}, shutdownWaitSeconds={})", namePrefix, schedulePoolSize, shutdownWaitSeconds); + log.debug("Created backgroundExecutor {} (schedulePoolSize={}, shutdownWaitSeconds={})", namePrefix, schedulePoolSize, shutdownWaitSeconds); } /** @@ -52,27 +52,27 @@ public final class DefaultBackgroundExecutor implements SpiBackgroundExecutor { return wrapper.wrap(task); } } - + /** * Decorates a runnable by adding an exception handler and some timing metrics. * This is used in methods that accepts a Runnable and return * either void or ScheduledFuture, as there is * normally no Future.get() call. - * + * * Note: When submitting a Callable, you must check * Future.get() for exceptions. */ private Runnable logExceptions(Runnable task) { long queued = System.nanoTime(); - logger.trace("Queued {}", task); + log.trace("Queued {}", task); return () -> { try { - if (logger.isTraceEnabled()) { + if (log.isTraceEnabled()) { long start = System.nanoTime(); - logger.trace("Start {} (delay time {} us)", task, (start - queued) / 1000L); + log.trace("Start {} (delay time {} us)", task, (start - queued) / 1000L); task.run(); - logger.trace("Stop {} (exec time {} us)", task, (System.nanoTime() - start) / 1000L); + log.trace("Stop {} (exec time {} us)", task, (System.nanoTime() - start) / 1000L); } else { task.run(); } @@ -80,7 +80,7 @@ public final class DefaultBackgroundExecutor implements SpiBackgroundExecutor { // log any exception here. Note they will not bubble up to the calling user // unless Future.get() is checked. (Which is almost never done on scheduled // background executions) - logger.error("Error while executing the task {}", task, t); + log.error("Error while executing the task {}", task, t); throw t; } }; @@ -88,6 +88,7 @@ public final class DefaultBackgroundExecutor implements SpiBackgroundExecutor { @Override public Future submit(Callable task) { + // Note: No "logExceptions" as we expect Future.get() by the invoker return pool.submit(wrap(task)); } @@ -99,7 +100,7 @@ public final class DefaultBackgroundExecutor implements SpiBackgroundExecutor { return pool.submit(wrap(task)); } - + @Override public void execute(Runnable task) { submit(logExceptions(task)); @@ -132,16 +133,16 @@ public final class DefaultBackgroundExecutor implements SpiBackgroundExecutor { @Override public ScheduledFuture schedule(Callable task, long delay, TimeUnit unit) { - // Note: Here is no "logExceptions", because it is intended to check Future.get() by the invoker + // Note: No "logExceptions" as we expect Future.get() by the invoker return schedulePool.schedule(wrap(task), delay, unit); } @Override public void shutdown() { - logger.trace("Shutting down backgroundExecutor"); + log.trace("BackgroundExecutor shutting down"); schedulePool.shutdown(); pool.shutdown(); - logger.debug("BackgroundExecutor stopped"); + log.debug("BackgroundExecutor stopped"); } } From fd4be0ca59eefdcef1aded3af342f7a847f4d7fc Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Mon, 14 Mar 2022 16:16:14 +1300 Subject: [PATCH 083/114] #2593 - Tidy SqlTreeBuilder to not add duplicate BeanProperties --- .../io/ebeaninternal/server/query/SqlTreeBuilder.java | 5 ++--- .../ebeaninternal/server/query/SqlTreeProperties.java | 6 ++++++ .../src/test/java/org/tests/model/nofk/TestNoFk.java | 11 +++++++++-- .../org/tests/query/TestQueryMultiJoinFetchPath.java | 5 ++--- 4 files changed, 19 insertions(+), 8 deletions(-) diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTreeBuilder.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTreeBuilder.java index 0e4f11079..c0142ddbc 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTreeBuilder.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTreeBuilder.java @@ -224,8 +224,7 @@ public final class SqlTreeBuilder { * Recursively build the query tree depending on what leaves in the tree * should be included. */ - private SqlTreeNode buildSelectChain(String prefix, STreePropertyAssoc prop, - STreeType desc, List joinList) { + private SqlTreeNode buildSelectChain(String prefix, STreePropertyAssoc prop, STreeType desc, List joinList) { List myJoinList = new ArrayList<>(); List extraProps = new ArrayList<>(); for (STreePropertyAssocOne one : desc.propsOne()) { @@ -256,7 +255,7 @@ public final class SqlTreeBuilder { } addManyWhereJoins(myJoinList); } - extraProps.forEach(props::add); //addExtra + extraProps.forEach(props::addExtra); if (!rawSql && manyWhereJoins.isFormulaWithJoin(prefix)) { for (String property : manyWhereJoins.getFormulaJoinProperties(prefix)) { diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTreeProperties.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTreeProperties.java index 623b1dd36..806af5ef6 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTreeProperties.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTreeProperties.java @@ -33,6 +33,12 @@ public final class SqlTreeProperties { propsList.addAll(Arrays.asList(props)); } + public void addExtra(STreePropertyAssocOne prop) { + if (!propsList.contains(prop)) { + add(prop); + } + } + public void add(STreeProperty prop) { propsList.add(prop); propNames.add(prop.name()); diff --git a/ebean-test/src/test/java/org/tests/model/nofk/TestNoFk.java b/ebean-test/src/test/java/org/tests/model/nofk/TestNoFk.java index e27df52db..ffb853f10 100644 --- a/ebean-test/src/test/java/org/tests/model/nofk/TestNoFk.java +++ b/ebean-test/src/test/java/org/tests/model/nofk/TestNoFk.java @@ -5,6 +5,7 @@ import io.ebean.DB; import io.ebean.SqlRow; import io.ebean.bean.EntityBean; import io.ebean.bean.EntityBeanIntercept; +import io.ebean.test.LoggedSql; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -142,13 +143,16 @@ public class TestNoFk extends BaseTestCase { assertTrue(ownerEbi.isReference()); assertTrue(ownerEbi.isPartial()); assertTrue(ownerEbi.isLazyLoadFailure()); - } @Test public void testEagerLoadFile() { + LoggedSql.start(); List files = DB.find(EFileNoFk.class).fetch("owner").findList(); assertThat(files).hasSize(2); + List sql = LoggedSql.stop(); + assertThat(sql).hasSize(1); + assertThat(sql.get(0)).contains("select t0.file_name, t0.owner_user_id, t0.owner_soft_del_user_id, t1.user_id, t1.user_name from efile_no_fk t0 left join euser_no_fk t1 on t1.user_id = t0.owner_user_id"); EFileNoFk file1 = files.get(0); EFileNoFk file2 = files.get(1); @@ -175,7 +179,6 @@ public class TestNoFk extends BaseTestCase { assertTrue(ownerEbi.isReference()); assertTrue(ownerEbi.isPartial()); assertTrue(ownerEbi.isLazyLoadFailure()); - } @Test @@ -259,8 +262,12 @@ public class TestNoFk extends BaseTestCase { @Test public void testEagerLoadFileSoftDel() { + LoggedSql.start(); List files = DB.find(EFileNoFk.class).fetch("ownerSoftDel").findList(); assertThat(files).hasSize(2); + List sql = LoggedSql.stop(); + assertThat(sql).hasSize(1); + assertThat(sql.get(0)).contains("select t0.file_name, t0.owner_user_id, t0.owner_soft_del_user_id, t1.user_id, t1.user_name, t1.user_id is null from efile_no_fk t0 left join euser_no_fk_soft_del t1 on t1.user_id = t0.owner_soft_del_user_id"); EFileNoFk file1 = files.get(0); EFileNoFk file2 = files.get(1); diff --git a/ebean-test/src/test/java/org/tests/query/TestQueryMultiJoinFetchPath.java b/ebean-test/src/test/java/org/tests/query/TestQueryMultiJoinFetchPath.java index e8f1a81be..4f439a58e 100644 --- a/ebean-test/src/test/java/org/tests/query/TestQueryMultiJoinFetchPath.java +++ b/ebean-test/src/test/java/org/tests/query/TestQueryMultiJoinFetchPath.java @@ -14,7 +14,6 @@ class TestQueryMultiJoinFetchPath extends BaseTestCase { @Test void test() { - HCustomer c1 = new HCustomer("c1", "c1"); DB.save(c1); @@ -60,9 +59,9 @@ class TestQueryMultiJoinFetchPath extends BaseTestCase { assertThat(accesses).hasSize(2); if (isH2()) { - assertThat(query.getGeneratedSql()).isEqualTo("select t0.dtype, t0.id, t0.accessor_id, t0.principal_id, t2.dtype, t0.access_account_number, t0.accessor_id, t2.dtype, t0.access_account_number, t1.cid, t1.name, t2.dtype, t2.account_number from haccess t0 left join hcustomer t1 on t1.cid = t0.accessor_id left join haccount t2 on t2.account_number = t0.access_account_number and t2.dtype = 'B' left join hcustomer t3 on t3.cid = t0.principal_id where t1.status = ? and t3.status = ? and t0.id in (?,?,?,?,?)"); + assertThat(query.getGeneratedSql()).isEqualTo("select t0.dtype, t0.id, t0.accessor_id, t0.principal_id, t2.dtype, t0.access_account_number, t1.cid, t1.name, t2.dtype, t2.account_number from haccess t0 left join hcustomer t1 on t1.cid = t0.accessor_id left join haccount t2 on t2.account_number = t0.access_account_number and t2.dtype = 'B' left join hcustomer t3 on t3.cid = t0.principal_id where t1.status = ? and t3.status = ? and t0.id in (?,?,?,?,?)"); } else { - assertThat(query.getGeneratedSql()).contains("select t0.dtype, t0.id, t0.accessor_id, t0.principal_id, t2.dtype, t0.access_account_number, t0.accessor_id, t2.dtype, t0.access_account_number, t1.cid, t1.name, t2.dtype, t2.account_number from haccess t0 left join hcustomer t1 on t1.cid = t0.accessor_id left join haccount t2 on t2.account_number = t0.access_account_number and t2.dtype = 'B' left join hcustomer t3 on t3.cid = t0.principal_id where t1.status = ? and t3.status = ? and t0.id "); + assertThat(query.getGeneratedSql()).contains("select t0.dtype, t0.id, t0.accessor_id, t0.principal_id, t2.dtype, t0.access_account_number, t1.cid, t1.name, t2.dtype, t2.account_number from haccess t0 left join hcustomer t1 on t1.cid = t0.accessor_id left join haccount t2 on t2.account_number = t0.access_account_number and t2.dtype = 'B' left join hcustomer t3 on t3.cid = t0.principal_id where t1.status = ? and t3.status = ? and t0.id "); } } From d3a765a5323e82513a473b588a9a27d9e7baba34 Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Mon, 14 Mar 2022 16:19:02 +1300 Subject: [PATCH 084/114] Tidy whitespace only, no effective change --- .../java/io/ebeaninternal/server/query/SqlTree.java | 9 --------- .../io/ebeaninternal/server/query/SqlTreeAlias.java | 12 ++---------- 2 files changed, 2 insertions(+), 19 deletions(-) diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTree.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTree.java index 5b11be657..d055b94c9 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTree.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTree.java @@ -13,30 +13,22 @@ import java.util.Set; final class SqlTree { private final SqlTreeNode rootNode; - /** * Property if resultSet contains master and detail rows. */ private final STreePropertyAssocMany manyProperty; - private final String distinctOn; - private final String selectSql; - private final String fromSql; - private final String groupBy; - /** * Encrypted Properties require additional binding. */ private final STreeProperty[] encryptedProps; - /** * Where clause for inheritance. */ private final String inheritanceWhereSql; - private final boolean noJoins; /** @@ -44,7 +36,6 @@ final class SqlTree { */ SqlTree(SqlTreeNode rootNode, String distinctOn, String selectSql, String fromSql, String groupBy, String inheritanceWhereSql, STreeProperty[] encryptedProps, STreePropertyAssocMany manyProperty, boolean includeJoins) { - this.rootNode = rootNode; this.distinctOn = distinctOn; this.selectSql = selectSql; diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTreeAlias.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTreeAlias.java index 9d46d07c3..a3661e816 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTreeAlias.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTreeAlias.java @@ -15,22 +15,14 @@ import java.util.TreeSet; final class SqlTreeAlias { private final SpiQuery.TemporalMode temporalMode; - - private int counter; - - private int manyWhereCounter; - private final TreeSet joinProps = new TreeSet<>(); - private HashSet embeddedPropertyJoins; - private final TreeSet manyWhereJoinProps = new TreeSet<>(); - private final HashMap aliasMap = new HashMap<>(); - private final HashMap manyWhereAliasMap = new HashMap<>(); - private final String rootTableAlias; + private int counter; + private int manyWhereCounter; SqlTreeAlias(String rootTableAlias, SpiQuery.TemporalMode temporalMode) { this.rootTableAlias = rootTableAlias; From 71fce1b4c544c9be7d23105f461b4aaae497f166 Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Mon, 14 Mar 2022 16:53:51 +1300 Subject: [PATCH 085/114] #2575 Tidy up for [DDL-ClickHouse] fixes for ClickHouse platform --- .../java/io/ebeaninternal/server/core/DScriptRunner.java | 1 - .../migrationtest/dbmigration/clickhouse/1.1.sql | 8 ++++---- .../dbmigration/clickhouse/idx_clickhouse.migrations | 6 +++--- 3 files changed, 7 insertions(+), 8 deletions(-) diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/core/DScriptRunner.java b/ebean-core/src/main/java/io/ebeaninternal/server/core/DScriptRunner.java index 725b1a66d..06916912c 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/core/DScriptRunner.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/core/DScriptRunner.java @@ -107,7 +107,6 @@ final class DScriptRunner implements ScriptRunner { DdlRunner runner = new DdlRunner(useAutoCommit, scriptName, platformName); runner.runAll(content, connection); if (!connection.getAutoCommit()) { - // Clickhouse fails: Cannot commit when auto-commit is enabled connection.commit(); } runner.runNonTransactional(connection); 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 56fd182db..eef3c8083 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 @@ -48,8 +48,8 @@ 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 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; -alter table migtest_e_basic add column new_boolean_field2 UInt8 default true; +alter table migtest_e_basic add column new_boolean_field UInt8 default 1; +alter table migtest_e_basic add column new_boolean_field2 UInt8 default 1; alter table migtest_e_basic add column progress UInt32 default 0; alter table migtest_e_basic add column new_integer UInt32 default 42; alter table migtest_e_history alter column test_string UInt64; @@ -59,11 +59,11 @@ 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; +alter table migtest_e_history5 add column test_boolean UInt8 default 0; 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_e_softdelete add column deleted UInt8 default 0; alter table migtest_oto_child add column master_id UInt64; -- apply post alter alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I','?')); 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 86feb1c0a..836030b83 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 @@ --697238714, 1.0__initial.sql --1523257380, 1.1.sql +1588846231, 1.0__initial.sql +-1102375855, 1.1.sql 1279151426, 1.2__dropsFor_1.1.sql -14388492, 1.3.sql +581928632, 1.3.sql 80209848, 1.4__dropsFor_1.3.sql From cfad20c8e1458fadce779ca5395378f9695b7502 Mon Sep 17 00:00:00 2001 From: Roland Praml Date: Mon, 14 Mar 2022 11:10:31 +0100 Subject: [PATCH 086/114] Refactored Hisotry generation --- .../dbmigration/ddlgeneration/DdlWrite.java | 30 ----- .../platform/AbstractHanaDdl.java | 8 -- .../ddlgeneration/platform/BaseTableDdl.java | 105 +++++++-------- .../platform/DbTriggerBasedHistoryDdl.java | 95 +++++-------- .../platform/DbTriggerUpdate.java | 71 ---------- .../ddlgeneration/platform/H2HistoryDdl.java | 18 +-- .../platform/HanaDdlHandler.java | 11 -- .../platform/HanaHistoryDdl.java | 30 ++--- .../ddlgeneration/platform/HanaTableDdl.java | 127 ------------------ .../platform/HistoryTableUpdate.java | 79 ----------- .../platform/MariaDbHistoryDdl.java | 22 ++- .../ddlgeneration/platform/MySqlDdl.java | 30 ----- .../platform/MySqlHistoryDdl.java | 39 ++---- .../platform/NoHistorySupportDdl.java | 4 - .../platform/NuoDbHistoryDdl.java | 43 ++---- .../ddlgeneration/platform/PlatformDdl.java | 19 +-- .../platform/PlatformHistoryDdl.java | 16 ++- .../platform/PostgresHistoryDdl.java | 25 +--- .../platform/SqlServerHistoryDdl.java | 27 ++-- .../platform/H2HistoryDdlTest.java | 50 ------- .../platform/HistoryTableUpdateTest.java | 32 ----- 21 files changed, 181 insertions(+), 700 deletions(-) delete mode 100644 ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/DbTriggerUpdate.java delete mode 100644 ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/HanaDdlHandler.java delete mode 100644 ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/HanaTableDdl.java delete mode 100644 ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/HistoryTableUpdate.java delete mode 100644 ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/H2HistoryDdlTest.java delete mode 100644 ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/HistoryTableUpdateTest.java diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/DdlWrite.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/DdlWrite.java index c8ac57fcd..fc127fabd 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/DdlWrite.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/DdlWrite.java @@ -38,10 +38,6 @@ public class DdlWrite { private final DdlBuffer applyForeignKeys = new BaseDdlBuffer(); - private final DdlBuffer applyHistoryView = new BaseDdlBuffer(); - - private final DdlBuffer applyHistoryTrigger = new BaseDdlBuffer(); - private final DdlBuffer dropAllForeignKeys = new BaseDdlBuffer(); private final DdlBuffer dropAll = new BaseDdlBuffer(); @@ -89,8 +85,6 @@ public class DdlWrite { && applyAlterTables.isEmpty() && applyPostAlter.getBuffer().isEmpty() && applyForeignKeys.getBuffer().isEmpty() - && applyHistoryView.getBuffer().isEmpty() - && applyHistoryTrigger.getBuffer().isEmpty() && applyDropDependencies.getBuffer().isEmpty(); } @@ -139,20 +133,6 @@ public class DdlWrite { return applyForeignKeys; } - /** - * Return the buffer that apply history-view DDL is written to. - */ - public DdlBuffer applyHistoryView() { - return applyHistoryView; - } - - /** - * Return the buffer that apply history-trigger DDL is written to. - */ - public DdlBuffer applyHistoryTrigger() { - return applyHistoryTrigger; - } - /** * Return the buffer used for the 'drop all DDL' for dropping foreign keys and associated indexes. */ @@ -193,16 +173,6 @@ public class DdlWrite { target.append("-- foreign keys and indices\n"); target.append(applyForeignKeys.getBuffer()); } - - if (!applyHistoryView.isEmpty()) { - target.append("-- apply history view\n"); - target.append(applyHistoryView.getBuffer()); - } - - if (!applyHistoryTrigger.isEmpty()) { - target.append("-- apply history trigger\n"); - target.append(applyHistoryTrigger.getBuffer()); - } } /** diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/AbstractHanaDdl.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/AbstractHanaDdl.java index b664354b2..69d0d2816 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/AbstractHanaDdl.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/AbstractHanaDdl.java @@ -1,15 +1,12 @@ package io.ebeaninternal.dbmigration.ddlgeneration.platform; -import io.ebean.config.DatabaseConfig; import io.ebean.config.dbplatform.DatabasePlatform; import io.ebean.config.dbplatform.DbPlatformType; import io.ebeaninternal.dbmigration.ddlgeneration.DdlAlterTable; import io.ebeaninternal.dbmigration.ddlgeneration.DdlBuffer; -import io.ebeaninternal.dbmigration.ddlgeneration.DdlHandler; import io.ebeaninternal.dbmigration.ddlgeneration.DdlWrite; import io.ebeaninternal.dbmigration.migration.AlterColumn; -import java.io.IOException; import java.util.ArrayList; import java.util.HashSet; import java.util.LinkedHashMap; @@ -75,11 +72,6 @@ public abstract class AbstractHanaDdl extends PlatformDdl { alterTable(writer, tableName).append(alterColumn, columnName).append(type).append(defaultValueClause).append(notnullClause); } - @Override - public DdlHandler createDdlHandler(DatabaseConfig config) { - return new HanaDdlHandler(config, this); - } - @Override protected String convertArrayType(String logicalArrayType) { Matcher matcher = ARRAY_PATTERN.matcher(logicalArrayType); diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/BaseTableDdl.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/BaseTableDdl.java index 85e0e4624..ba9776f41 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/BaseTableDdl.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/BaseTableDdl.java @@ -33,9 +33,7 @@ import io.ebeaninternal.server.deploy.IdentityMode; import java.util.ArrayList; import java.util.Collections; -import java.util.LinkedHashMap; import java.util.List; -import java.util.Map; import static io.ebean.util.StringHelper.replace; import static io.ebeaninternal.api.PlatformMatch.matchPlatform; @@ -46,12 +44,6 @@ import static io.ebeaninternal.dbmigration.ddlgeneration.platform.SplitColumns.s */ public class BaseTableDdl implements TableDdl { - enum HistorySupport { - NONE, - SQL2011, - TRIGGER_BASED - } - protected final DbConstraintNaming naming; protected final NamingConvention namingConvention; @@ -67,15 +59,9 @@ public class BaseTableDdl implements TableDdl { protected final List externalCompoundUnique = new ArrayList<>(); - /** - * Base tables that have associated history tables that need their triggers/functions regenerated as - * columns have been added, removed, included or excluded. - */ - protected final Map regenerateHistoryTriggers = new LinkedHashMap<>(); - private final boolean strictMode; - private final HistorySupport historySupport; + private final boolean alterHistoryTables; /** * Helper class that is used to execute the migration ddl before and after the migration action. @@ -196,9 +182,9 @@ public class BaseTableDdl implements TableDdl { this.strictMode = config.isDdlStrictMode(); DbHistorySupport hist = platformDdl.getPlatform().getHistorySupport(); if (hist == null) { - this.historySupport = HistorySupport.NONE; + this.alterHistoryTables = false; } else { - this.historySupport = hist.isStandardsBased() ? HistorySupport.SQL2011 : HistorySupport.TRIGGER_BASED; + this.alterHistoryTables = platformDdl.historyDdl.alterHistoryTables(); } } @@ -622,15 +608,6 @@ public class BaseTableDdl implements TableDdl { */ @Override public void generateEpilog(DdlWrite writer) { - if (!regenerateHistoryTriggers.isEmpty()) { - platformDdl.lockTables(writer.applyHistoryTrigger(), regenerateHistoryTriggers.keySet()); - - for (HistoryTableUpdate update : this.regenerateHistoryTriggers.values()) { - platformDdl.regenerateHistoryTriggers(writer, update); - } - - platformDdl.unlockTables(writer.applyHistoryTrigger(), regenerateHistoryTriggers.keySet()); - } platformDdl.generateEpilog(writer); } @@ -651,12 +628,14 @@ public class BaseTableDdl implements TableDdl { for (Column column : columns) { alterTableAddColumn(writer, tableName, column, false, isTrue(addColumn.isWithHistory())); } - if (isTrue(addColumn.isWithHistory()) && historySupport == HistorySupport.TRIGGER_BASED) { + if (isTrue(addColumn.isWithHistory())) { + platformDdl.regenerateHistoryTriggers(writer, tableName); // make same changes to the history table - String historyTable = historyTable(tableName); - for (Column column : columns) { - regenerateHistoryTriggers(tableName, HistoryTableUpdate.Change.ADD, column.getName()); - alterTableAddColumn(writer, historyTable, column, true, true); + if (alterHistoryTables) { + String historyTable = historyTable(tableName); + for (Column column : columns) { + alterTableAddColumn(writer, historyTable, column, true, true); + } } } for (Column column : columns) { @@ -690,10 +669,12 @@ public class BaseTableDdl implements TableDdl { String tableName = dropColumn.getTableName(); alterTableDropColumn(writer, tableName, dropColumn.getColumnName()); - if (isTrue(dropColumn.isWithHistory()) && historySupport == HistorySupport.TRIGGER_BASED) { + if (isTrue(dropColumn.isWithHistory())) { + platformDdl.regenerateHistoryTriggers(writer, tableName); // also drop from the history table - regenerateHistoryTriggers(tableName, HistoryTableUpdate.Change.DROP, dropColumn.getColumnName()); - alterTableDropColumn(writer, historyTable(tableName), dropColumn.getColumnName()); + if (alterHistoryTables) { + alterTableDropColumn(writer, historyTable(tableName), dropColumn.getColumnName()); + } } } @@ -705,10 +686,11 @@ public class BaseTableDdl implements TableDdl { DdlMigrationHelp ddlHelp = new DdlMigrationHelp(alterColumn); ddlHelp.write(writer); - if (isTrue(alterColumn.isHistoryExclude())) { - regenerateHistoryTriggers(alterColumn.getTableName(), HistoryTableUpdate.Change.EXCLUDE, alterColumn.getColumnName()); - } else if (isFalse(alterColumn.isHistoryExclude())) { - regenerateHistoryTriggers(alterColumn.getTableName(), HistoryTableUpdate.Change.INCLUDE, alterColumn.getColumnName()); + if (alterColumn.isHistoryExclude() != null) { + // CHECKME should we drop a small comment, if historyExclude changes, as not all DB systems will support this + // writer.apply().append("-- historyExclude of ").append(alterColumn.getTableName()).append(".").append(alterColumn.getColumnName()) + // .append(" altered to ").append(String.valueOf(alterColumn.isHistoryExclude())).end(); + platformDdl.regenerateHistoryTriggers(writer, alterColumn.getTableName()); } if (hasValue(alterColumn.getDropForeignKey())) { @@ -765,30 +747,39 @@ public class BaseTableDdl implements TableDdl { } /** - * Register the base table that we need to regenerate the history triggers on. - */ - protected void regenerateHistoryTriggers(String baseTableName, HistoryTableUpdate.Change change, String column) { - HistoryTableUpdate update = regenerateHistoryTriggers.computeIfAbsent(baseTableName, HistoryTableUpdate::new); - update.add(change, column); - } - - /** - * This is mysql specific - alter all the base attributes of the column together. - * Will be called, if there is a type, dbdefault or notnull change. + * alter all the base attributes (type/default/notnull) of the column together. + * Some platforms (like mysql/sqlserver/hana) must do that in one statement, + * other platforms may use several statements for altering one of the base + * attributes. */ protected void alterColumn(DdlWrite writer, AlterColumn alter) { platformDdl.alterColumn(writer, alter); - if (isTrue(alter.isWithHistory()) && alter.getType() != null && historySupport == HistorySupport.TRIGGER_BASED) { - // mysql and sql server column type change allowing nulls in the history table column - regenerateHistoryTriggers(alter.getTableName(), HistoryTableUpdate.Change.ALTER, alter.getColumnName()); - AlterColumn alterHistoryColumn = new AlterColumn(); - alterHistoryColumn.setTableName(historyTable(alter.getTableName())); - alterHistoryColumn.setColumnName(alter.getColumnName()); - alterHistoryColumn.setType(alter.getType()); - platformDdl.alterColumn(writer, alterHistoryColumn); + if (isTrue(alter.isWithHistory())) { + // we will apply only type changes or notNull -> null transition + boolean isNull = false; // TODO: Boolean.FALSE.equals(alter.isNotnull()); + boolean applyToHistory = alter.getType() != null || isNull; + if (applyToHistory) { + platformDdl.regenerateHistoryTriggers(writer, alter.getTableName()); + if (alterHistoryTables) { + AlterColumn alterHistoryColumn = new AlterColumn(); + alterHistoryColumn.setTableName(historyTable(alter.getTableName())); + alterHistoryColumn.setColumnName(alter.getColumnName()); + // ignore default value (not needed on history tables) + alterHistoryColumn.setCurrentType(alter.getCurrentType()); + alterHistoryColumn.setType(alter.getType()); + if (isNull) { + // do transition from notNull to null + alterHistoryColumn.setCurrentNotnull(Boolean.TRUE); + alterHistoryColumn.setNotnull(Boolean.FALSE); + } else { + // assume that the column contains null values from the past (required for platforms like mysql/sqlserver/hana) + alterHistoryColumn.setCurrentNotnull(Boolean.FALSE); + } + platformDdl.alterColumn(writer, alterHistoryColumn); + } + } } - } protected void dropCheckConstraint(DdlWrite writer, AlterColumn alter, String constraintName) { diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/DbTriggerBasedHistoryDdl.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/DbTriggerBasedHistoryDdl.java index e85a6055f..a7457b0ae 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/DbTriggerBasedHistoryDdl.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/DbTriggerBasedHistoryDdl.java @@ -2,6 +2,7 @@ package io.ebeaninternal.dbmigration.ddlgeneration.platform; import io.ebean.config.DatabaseConfig; import io.ebean.config.DbConstraintNaming; +import io.ebeaninternal.dbmigration.ddlgeneration.DdlAlterTable; import io.ebeaninternal.dbmigration.ddlgeneration.DdlBuffer; import io.ebeaninternal.dbmigration.ddlgeneration.DdlWrite; import io.ebeaninternal.dbmigration.migration.AddHistoryTable; @@ -46,39 +47,6 @@ public abstract class DbTriggerBasedHistoryDdl implements PlatformHistoryDdl { this.sysPeriodEnd = sysPeriod + "_end"; } - @Override - public void updateTriggers(DdlWrite writer, HistoryTableUpdate update) { - - MTable table = writer.getTable(update.getBaseTable()); - if (table == null) { - throw new IllegalStateException("MTable " + update.getBaseTable() + " not found in writer? (required for history DDL)"); - } - updateTriggers(writer, table, update); - } - - /** - * Replace the existing triggers/stored procedures/views for history table support given the included columns. - */ - protected abstract void updateHistoryTriggers(DbTriggerUpdate triggerUpdate); - - /** - * Process the HistoryTableUpdate which can result in changes to the apply, rollback and drop scripts. - */ - protected void updateTriggers(DdlWrite writer, MTable table, HistoryTableUpdate update) { - - writer.applyHistoryTrigger().append("-- changes: ").append(update.description()).newLine(); - - updateHistoryTriggers(createDbTriggerUpdate(writer, table)); - } - - protected DbTriggerUpdate createDbTriggerUpdate(DdlWrite writer, MTable table) { - - List columns = columnNamesForApply(table); - String baseTableName = table.getName(); - String historyTableName = historyTableName(baseTableName); - return new DbTriggerUpdate(baseTableName, historyTableName, writer, columns); - } - @Override public void dropHistoryTable(DdlWrite writer, DropHistoryTable dropHistoryTable) { @@ -112,8 +80,9 @@ public abstract class DbTriggerBasedHistoryDdl implements PlatformHistoryDdl { addSysPeriodColumns(writer, baseTable, table.getWhenCreatedColumn()); createHistoryTable(writer.applyPostAlter(), table); - createTriggers(writer, table); createWithHistoryView(writer.applyPostAlter(), table.getName()); + createTriggers(writer.applyPostAlter(), baseTable, columnNamesForApply(table)); + writer.applyPostAlter().end(); // drop all scripts dropTriggers(writer.dropAll(), baseTable); @@ -123,13 +92,35 @@ public abstract class DbTriggerBasedHistoryDdl implements PlatformHistoryDdl { } - protected abstract void createTriggers(DdlWrite writer, MTable table); + @Override + public void updateTriggers(DdlWrite writer, String tableName) { + MTable table = writer.getTable(tableName); + if (table != null && table.isWithHistory()) { + DdlAlterTable alter = platformDdl.alterTable(writer, tableName); + if (!alter.isHistoryHandled()) { + // this code effectively disables history support before the table alter and enables it again + // immediately after the table alter. As all alters per table are altogether now, this can done here + dropTriggers(writer.apply(), tableName); + dropWithHistoryView(writer.apply(), tableName); + // here are the alter commands + createWithHistoryView(writer.applyPostAlter(), tableName); + createTriggers(writer.applyPostAlter(), tableName, columnNamesForApply(table)); + + alter.setHistoryHandled(); + } + } + } + + /** + * Will add a history trigger to the buffer. The config + * + * @param buffer + * @param table + */ + protected abstract void createTriggers(DdlBuffer buffer, String baseTable, List columnNames); protected abstract void dropTriggers(DdlBuffer buffer, String baseTable); - protected void createStoredFunction(DdlWrite writer, MTable table) { - // do nothing - } protected String normalise(String tableName) { return constraintNaming.normaliseTable(tableName); @@ -159,11 +150,10 @@ public abstract class DbTriggerBasedHistoryDdl implements PlatformHistoryDdl { String baseTableName = table.getName(); - DdlBuffer apply = writer.applyHistoryView(); addSysPeriodColumns(writer, baseTableName, whenCreatedColumn); createHistoryTable(writer.applyPostAlter(), table); - createWithHistoryView(apply, baseTableName); + createWithHistoryView(writer.applyPostAlter(), baseTableName); } protected void addSysPeriodColumns(DdlWrite writer, String baseTableName, String whenCreatedColumn) { @@ -215,22 +205,7 @@ public abstract class DbTriggerBasedHistoryDdl implements PlatformHistoryDdl { .append("create view ").append(baseTableName).append(viewSuffix) .append(" as select * from ").append(baseTableName) .append(" union all select * from ").append(baseTableName).append(historySuffix) - .endOfStatement().end(); - } - - - /** - * For postgres/h2/mysql we need to drop and recreate the view. Well, we could add columns to the end of the view - * but otherwise we need to drop and create it. - */ - protected void recreateHistoryView(DbTriggerUpdate update) { - - DdlBuffer buffer = update.dropDependencyBuffer(); - // we need to drop the view early/first before any changes to the tables etc - buffer.append("drop view if exists ").append(update.getBaseTable()).append(viewSuffix).endOfStatement(); - - // recreate the view after all ddl modifications - the view requires ALL columns, also the historyExclude ones. - createWithHistoryView(update.historyViewBuffer(), update.getBaseTable()); + .endOfStatement(); } protected void appendSysPeriodColumns(DdlBuffer apply, String prefix) { @@ -251,9 +226,9 @@ public abstract class DbTriggerBasedHistoryDdl implements PlatformHistoryDdl { platformDdl.alterTableDropColumn(writer, baseTableName, sysPeriodEnd); } - protected void appendInsertIntoHistory(DdlBuffer buffer, String historyTable, List columns) { + protected void appendInsertIntoHistory(DdlBuffer buffer, String baseTable, List columns) { - buffer.append(" insert into ").append(historyTable).append(" (").append(sysPeriodStart).append(",").append(sysPeriodEnd).append(","); + buffer.append(" insert into ").append(baseTable).append(historySuffix).append(" (").append(sysPeriodStart).append(",").append(sysPeriodEnd).append(","); appendColumnNames(buffer, columns, ""); buffer.append(") values (OLD.").append(sysPeriodStart).append(", ").append(sysPeriodEndValue).append(","); appendColumnNames(buffer, columns, "OLD."); @@ -291,4 +266,8 @@ public abstract class DbTriggerBasedHistoryDdl implements PlatformHistoryDdl { return table.allHistoryColumns(true); } + @Override + public boolean alterHistoryTables() { + return true; + } } diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/DbTriggerUpdate.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/DbTriggerUpdate.java deleted file mode 100644 index fa90a233e..000000000 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/DbTriggerUpdate.java +++ /dev/null @@ -1,71 +0,0 @@ -package io.ebeaninternal.dbmigration.ddlgeneration.platform; - -import io.ebeaninternal.dbmigration.ddlgeneration.DdlBuffer; -import io.ebeaninternal.dbmigration.ddlgeneration.DdlWrite; - -import java.util.List; - -/** - * DB trigger update when a change occurs on a table with history. - */ -public class DbTriggerUpdate { - - private final String baseTableName; - - private final String historyTableName; - - private final DdlWrite writer; - - private final List columns; - - public DbTriggerUpdate(String baseTableName, String historyTableName, DdlWrite writer, List columns) { - this.baseTableName = baseTableName; - this.historyTableName = historyTableName; - this.writer = writer; - this.columns = columns; - } - - /** - * Return the appropriate buffer for the current mode. - */ - public DdlBuffer historyViewBuffer() { - return writer.applyHistoryView(); - } - - /** - * Return the appropriate buffer for the current mode. - */ - public DdlBuffer historyTriggerBuffer() { - return writer.applyHistoryTrigger(); - } - - - /** - * Return the appropriate drop dependency buffer for the current mode. - */ - public DdlBuffer dropDependencyBuffer() { - return writer.applyDropDependencies(); - } - - /** - * Return the base table name. - */ - public String getBaseTable() { - return baseTableName; - } - - /** - * Return the history table name. - */ - public String getHistoryTable() { - return historyTableName; - } - - /** - * Return the included columns. - */ - public List getColumns() { - return columns; - } - -} diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/H2HistoryDdl.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/H2HistoryDdl.java index 55ffdd748..7e5d2aa87 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/H2HistoryDdl.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/H2HistoryDdl.java @@ -1,8 +1,8 @@ package io.ebeaninternal.dbmigration.ddlgeneration.platform; +import java.util.List; + import io.ebeaninternal.dbmigration.ddlgeneration.DdlBuffer; -import io.ebeaninternal.dbmigration.ddlgeneration.DdlWrite; -import io.ebeaninternal.dbmigration.model.MTable; /** * H2 history support using DB triggers to maintain a history table. @@ -23,18 +23,8 @@ public class H2HistoryDdl extends DbTriggerBasedHistoryDdl { } @Override - protected void createTriggers(DdlWrite writer, MTable table) { - String baseTableName = table.getName(); - DdlBuffer apply = writer.applyHistoryTrigger(); - addCreateTrigger(apply, updateTriggerName(baseTableName), baseTableName); - } - - @Override - protected void updateHistoryTriggers(DbTriggerUpdate update) { - recreateHistoryView(update); - DdlBuffer buffer = update.historyTriggerBuffer(); - dropTriggers(buffer, update.getBaseTable()); - addCreateTrigger(buffer, updateTriggerName(update.getBaseTable()), update.getBaseTable()); + protected void createTriggers(DdlBuffer buffer, String baseTable, List columnNames) { + addCreateTrigger(buffer, updateTriggerName(baseTable), baseTable); } private void addCreateTrigger(DdlBuffer apply, String triggerName, String baseTable) { diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/HanaDdlHandler.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/HanaDdlHandler.java deleted file mode 100644 index 47172dc30..000000000 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/HanaDdlHandler.java +++ /dev/null @@ -1,11 +0,0 @@ -package io.ebeaninternal.dbmigration.ddlgeneration.platform; - -import io.ebean.config.DatabaseConfig; -import io.ebeaninternal.dbmigration.ddlgeneration.BaseDdlHandler; - -public class HanaDdlHandler extends BaseDdlHandler { - - public HanaDdlHandler(DatabaseConfig config, PlatformDdl platformDdl) { - super(config, platformDdl, new HanaTableDdl(config, platformDdl)); - } -} diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/HanaHistoryDdl.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/HanaHistoryDdl.java index 917fc35dc..f0f4cf8ac 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/HanaHistoryDdl.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/HanaHistoryDdl.java @@ -1,6 +1,7 @@ package io.ebeaninternal.dbmigration.ddlgeneration.platform; import io.ebean.config.DatabaseConfig; +import io.ebeaninternal.dbmigration.ddlgeneration.DdlAlterTable; import io.ebeaninternal.dbmigration.ddlgeneration.DdlBuffer; import io.ebeaninternal.dbmigration.ddlgeneration.DdlWrite; import io.ebeaninternal.dbmigration.migration.AddHistoryTable; @@ -9,9 +10,6 @@ import io.ebeaninternal.dbmigration.model.MColumn; import io.ebeaninternal.dbmigration.model.MTable; import java.util.Collection; -import java.util.Map; -import java.util.concurrent.ConcurrentHashMap; -import java.util.concurrent.atomic.AtomicInteger; public class HanaHistoryDdl implements PlatformHistoryDdl { @@ -19,7 +17,6 @@ public class HanaHistoryDdl implements PlatformHistoryDdl { private String systemPeriodEnd; private PlatformDdl platformDdl; private String historySuffix; - private Map createdHistoryTables = new ConcurrentHashMap<>(); @Override public void configure(DatabaseConfig config, PlatformDdl platformDdl) { @@ -33,10 +30,7 @@ public class HanaHistoryDdl implements PlatformHistoryDdl { public void createWithHistory(DdlWrite writer, MTable table) { String tableName = table.getName(); String historyTableName = tableName + historySuffix; - DdlBuffer apply = writer.applyHistoryView(); - if (apply.isEmpty()) { - createdHistoryTables.clear(); - } + DdlBuffer apply = writer.applyPostAlter(); apply.append(platformDdl.getCreateTableCommandPrefix()).append(" ").append(historyTableName).append(" (").newLine(); @@ -66,8 +60,6 @@ public class HanaHistoryDdl implements PlatformHistoryDdl { enableSystemVersioning(apply, tableName, true); platformDdl.alterTable(writer, tableName).setHistoryHandled(); - createdHistoryTables.put(tableName, historyTableName); - dropHistoryTable(writer.dropAll(), tableName, historyTableName); } @@ -101,8 +93,19 @@ public class HanaHistoryDdl implements PlatformHistoryDdl { } @Override - public void updateTriggers(DdlWrite writer, HistoryTableUpdate baseTable) { - // nothing to do + public boolean alterHistoryTables() { + return true; + } + + @Override + public void updateTriggers(DdlWrite writer, String tableName) { + DdlAlterTable alter = platformDdl.alterTable(writer, tableName); + MTable table = writer.getTable(tableName); + if (table.isWithHistory() && !alter.isHistoryHandled()) { + disableSystemVersioning(writer.apply(), tableName); + enableSystemVersioning(writer.applyPostAlter(), tableName, false); + alter.setHistoryHandled(); + } } protected void writeColumnDefinition(DdlBuffer buffer, String columnName, String type, String defaultValue, @@ -134,7 +137,4 @@ public class HanaHistoryDdl implements PlatformHistoryDdl { apply.endOfStatement(); } - public boolean isSystemVersioningEnabled(String tableName) { - return !createdHistoryTables.containsKey(tableName); - } } diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/HanaTableDdl.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/HanaTableDdl.java deleted file mode 100644 index d760bda34..000000000 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/HanaTableDdl.java +++ /dev/null @@ -1,127 +0,0 @@ -package io.ebeaninternal.dbmigration.ddlgeneration.platform; - -import io.ebean.config.DatabaseConfig; -import io.ebean.config.PropertiesWrapper; -import io.ebeaninternal.dbmigration.ddlgeneration.DdlAlterTable; -import io.ebeaninternal.dbmigration.ddlgeneration.DdlWrite; -import io.ebeaninternal.dbmigration.migration.AddColumn; -import io.ebeaninternal.dbmigration.migration.AlterColumn; -import io.ebeaninternal.dbmigration.migration.Column; -import io.ebeaninternal.dbmigration.migration.DropColumn; -import io.ebeaninternal.dbmigration.model.MTable; - -import java.util.List; - -public class HanaTableDdl extends BaseTableDdl { - - private final HanaHistoryDdl historyDdl; - - public HanaTableDdl(DatabaseConfig config, PlatformDdl platformDdl) { - super(config, platformDdl); - this.historyDdl = (HanaHistoryDdl) platformDdl.historyDdl; - } - - @Override - public void generate(DdlWrite writer, AddColumn addColumn) { - String tableName = addColumn.getTableName(); - MTable table = writer.getTable(tableName); - if (table == null) { - super.generate(writer, addColumn); - return; - } - - boolean manageSystemVersioning = isTrue(table.isWithHistory()) && historyDdl.isSystemVersioningEnabled(tableName); - - if (manageSystemVersioning) { - DdlAlterTable alter = platformDdl.alterTable(writer, tableName); - if (!alter.isHistoryHandled()) { - alter.setHistoryHandled(); - historyDdl.disableSystemVersioning(writer.apply(), table.getName()); - historyDdl.enableSystemVersioning(writer.applyPostAlter(), table.getName(), false); - } - } - - super.generate(writer, addColumn); - - if (manageSystemVersioning) { - // make same changes to the history table - String historyTable = historyTable(tableName); - List columns = addColumn.getColumn(); - for (Column column : columns) { - alterTableAddColumn(writer, historyTable, column, true, true); - } - } - } - - @Override - public void generate(DdlWrite writer, AlterColumn alterColumn) { - String tableName = alterColumn.getTableName(); - MTable table = writer.getTable(tableName); - if (table == null) { - super.generate(writer, alterColumn); - return; - } - - boolean manageSystemVersioning = isTrue(table.isWithHistory()) && historyDdl.isSystemVersioningEnabled(tableName); - - if (manageSystemVersioning) { - DdlAlterTable alter = platformDdl.alterTable(writer, tableName); - if (!alter.isHistoryHandled()) { - alter.setHistoryHandled(); - historyDdl.disableSystemVersioning(writer.apply(), table.getName()); - historyDdl.enableSystemVersioning(writer.applyPostAlter(), table.getName(), false); - } - } - - super.generate(writer, alterColumn); - - if (manageSystemVersioning) { - // make same changes to the history table - String historyTable = historyTable(tableName); - if (hasValue(alterColumn.getType()) || hasValue(alterColumn.getDefaultValue()) || alterColumn.isNotnull() != null) { - AlterColumn alterHistoryColumn = new AlterColumn(); - alterHistoryColumn.setTableName(historyTable); - alterHistoryColumn.setColumnName(alterColumn.getColumnName()); - alterHistoryColumn.setType(alterColumn.getType()); - alterHistoryColumn.setDefaultValue(alterColumn.getDefaultValue()); - alterHistoryColumn.setNotnull(alterColumn.isNotnull()); - alterHistoryColumn.setCurrentType(alterColumn.getCurrentType()); - alterHistoryColumn.setCurrentDefaultValue(alterColumn.getCurrentDefaultValue()); - alterHistoryColumn.setCurrentNotnull(alterColumn.isCurrentNotnull()); - platformDdl.alterColumn(writer, alterHistoryColumn); - - } - } - } - - @Override - public void generate(DdlWrite writer, DropColumn dropColumn) { - String tableName = dropColumn.getTableName(); - MTable table = writer.getTable(tableName); - if (table == null) { - super.generate(writer, dropColumn); - return; - } - - boolean manageSystemVersioning = isTrue(table.isWithHistory()) && historyDdl.isSystemVersioningEnabled(tableName); - - if (manageSystemVersioning) { - DdlAlterTable alter = platformDdl.alterTable(writer, tableName); - if (!alter.isHistoryHandled()) { - alter.setHistoryHandled(); - historyDdl.disableSystemVersioning(writer.apply(), table.getName()); - historyDdl.enableSystemVersioning(writer.applyPostAlter(), tableName, false); - } - } - - super.generate(writer, dropColumn); - - if (manageSystemVersioning) { - // also drop from the history table - String historyTable = historyTable(tableName); - alterTableDropColumn(writer, historyTable, dropColumn.getColumnName()); - - } - } - -} diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/HistoryTableUpdate.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/HistoryTableUpdate.java deleted file mode 100644 index a72350a1f..000000000 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/HistoryTableUpdate.java +++ /dev/null @@ -1,79 +0,0 @@ -package io.ebeaninternal.dbmigration.ddlgeneration.platform; - -import java.util.ArrayList; -import java.util.List; - -/** - * Bean holding comments relating to a history table that needs to have it's - * associated triggers/function updated due to columns added/dropped/included - * or excluded. - */ -public class HistoryTableUpdate { - - /** - * Column change type. - */ - public enum Change { - ADD, - DROP, - INCLUDE, - EXCLUDE, - ALTER - } - - private static class Column { - - final Change change; - - final String column; - - public Column(Change change, String column) { - this.change = change; - this.column = column; - } - - @Override - public String toString() { - return description(); - } - - public String description() { - return change.name().toLowerCase() + " " + column; - } - - } - - private final String baseTable; - - private final List columnChanges = new ArrayList<>(); - - /** - * Construct with a given base table name. - */ - public HistoryTableUpdate(String baseTable) { - this.baseTable = baseTable; - } - - /** - * Return a description of the changes that cause the history trigger/function - * to be regenerated (added, included, excluded and dropped columns). - */ - public String description() { - return columnChanges.toString(); - } - - /** - * Add a comment for column added, dropped, included or excluded. - */ - public void add(Change change, String column) { - columnChanges.add(new Column(change, column)); - } - - /** - * Return the base table name. - */ - public String getBaseTable() { - return baseTable; - } - -} diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/MariaDbHistoryDdl.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/MariaDbHistoryDdl.java index 0795ddd75..31d3cdd91 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/MariaDbHistoryDdl.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/MariaDbHistoryDdl.java @@ -1,6 +1,7 @@ package io.ebeaninternal.dbmigration.ddlgeneration.platform; import io.ebean.config.DatabaseConfig; +import io.ebeaninternal.dbmigration.ddlgeneration.DdlAlterTable; import io.ebeaninternal.dbmigration.ddlgeneration.DdlBuffer; import io.ebeaninternal.dbmigration.ddlgeneration.DdlWrite; import io.ebeaninternal.dbmigration.migration.AddHistoryTable; @@ -12,9 +13,11 @@ import io.ebeaninternal.dbmigration.model.MTable; */ public class MariaDbHistoryDdl implements PlatformHistoryDdl { + private PlatformDdl platformDdl; + @Override public void configure(DatabaseConfig config, PlatformDdl platformDdl) { - // do nothing + this.platformDdl = platformDdl; } @Override @@ -24,8 +27,7 @@ public class MariaDbHistoryDdl implements PlatformHistoryDdl { } private void enableSystemVersioning(DdlWrite writer, String baseTable) { - DdlBuffer apply = writer.applyHistoryView(); - apply.append("alter table ").append(baseTable).append(" add system versioning").endOfStatement(); + platformDdl.alterTable(writer, baseTable).append("add system versioning", null); DdlBuffer drop = writer.dropAll(); drop.append("alter table ").append(baseTable).append(" drop system versioning").endOfStatement(); @@ -34,8 +36,7 @@ public class MariaDbHistoryDdl implements PlatformHistoryDdl { @Override public void dropHistoryTable(DdlWrite writer, DropHistoryTable dropHistoryTable) { String baseTable = dropHistoryTable.getBaseTable(); - DdlBuffer apply = writer.applyHistoryView(); - apply.append("alter table ").append(baseTable).append(" drop system versioning").endOfStatement(); + platformDdl.alterTable(writer, baseTable).append("drop system versioning", null); } @Override @@ -45,7 +46,14 @@ public class MariaDbHistoryDdl implements PlatformHistoryDdl { } @Override - public void updateTriggers(DdlWrite writer, HistoryTableUpdate baseTable) { - // do nothing + public void updateTriggers(DdlWrite writer, String tableName) { + MTable table = writer.getTable(tableName); + // For MariaDB we need to enable system_versioning_alter_history only once + // per DDL script. This info is stored in the virtual "__$HISTORY_FLAG__" table + DdlAlterTable history = platformDdl.alterTable(writer, "__$HISTORY_FLAG__"); + if (table != null && table.isWithHistory() && !history.isHistoryHandled()) { + writer.apply().appendStatement("SET @@system_versioning_alter_history = 1"); + history.setHistoryHandled(); + } } } diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/MySqlDdl.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/MySqlDdl.java index 3ce034b46..d8ec08128 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/MySqlDdl.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/MySqlDdl.java @@ -7,8 +7,6 @@ import io.ebeaninternal.dbmigration.ddlgeneration.DdlWrite; import io.ebeaninternal.dbmigration.migration.AlterColumn; import io.ebeaninternal.dbmigration.migration.Column; -import java.util.Collection; - /** * MySql specific DDL. */ @@ -156,32 +154,4 @@ public class MySqlDdl extends PlatformDdl { // alter comment currently not supported as it requires to repeat whole column definition } - - /** - * Locks all tables for triggers that have to be updated. - */ - @Override - public void lockTables(DdlBuffer buffer, Collection tables) { - if (!tables.isEmpty()) { - buffer.append("lock tables "); - int i = 0; - for (String table : tables) { - if (i > 0) { - buffer.append(", "); - } - buffer.append(table).append(" write"); - i++; - } - buffer.endOfStatement(); - } - } - - /** - * Unlocks all tables for triggers that have to be updated. - */ - @Override - public void unlockTables(DdlBuffer buffer, Collection tables) { - buffer.append("unlock tables").endOfStatement(); - } - } diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/MySqlHistoryDdl.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/MySqlHistoryDdl.java index 300e2ec8c..7a9e06730 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/MySqlHistoryDdl.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/MySqlHistoryDdl.java @@ -1,8 +1,8 @@ package io.ebeaninternal.dbmigration.ddlgeneration.platform; +import java.util.List; + import io.ebeaninternal.dbmigration.ddlgeneration.DdlBuffer; -import io.ebeaninternal.dbmigration.ddlgeneration.DdlWrite; -import io.ebeaninternal.dbmigration.model.MTable; /** * MySql history support using DB triggers to maintain a history table. @@ -18,49 +18,36 @@ public class MySqlHistoryDdl extends DbTriggerBasedHistoryDdl { buffer.append("drop trigger ").append(deleteTriggerName(baseTable)).endOfStatement(); } - @Override - protected void createTriggers(DdlWrite writer, MTable table) { - - DbTriggerUpdate update = createDbTriggerUpdate(writer, table); - - addBeforeUpdate(updateTriggerName(update.getBaseTable()), update); - addBeforeDelete(deleteTriggerName(update.getBaseTable()), update); - } @Override - protected void updateHistoryTriggers(DbTriggerUpdate update) { + protected void createTriggers(DdlBuffer buffer, String baseTable, List columnNames) { - recreateHistoryView(update); + buffer.append("lock tables ").append(baseTable).append(" write").endOfStatement(); + addBeforeUpdate(buffer, updateTriggerName(baseTable), baseTable, columnNames); + addBeforeDelete(buffer, deleteTriggerName(baseTable), baseTable, columnNames); + buffer.appendStatement("unlock tables"); - DdlBuffer buffer = update.historyTriggerBuffer(); - String baseTable = update.getBaseTable(); - - dropTriggers(buffer, baseTable); - addBeforeUpdate(updateTriggerName(baseTable), update); - addBeforeDelete(deleteTriggerName(baseTable), update); } - private void addBeforeUpdate(String triggerName, DbTriggerUpdate update) { + private void addBeforeUpdate(DdlBuffer apply, String triggerName, String tableName, List columnNames) { - DdlBuffer apply = update.historyTriggerBuffer(); apply .append("delimiter $$").newLine() - .append("create trigger ").append(triggerName).append(" before update on ").append(update.getBaseTable()) + .append("create trigger ").append(triggerName).append(" before update on ").append(tableName) .append(" for each row begin").newLine(); - appendInsertIntoHistory(apply, update.getHistoryTable(), update.getColumns()); + appendInsertIntoHistory(apply, tableName, columnNames); apply .append(" set NEW.").append(sysPeriod).append("_start = now(6)").endOfStatement() .append("end$$").newLine(); } - private void addBeforeDelete(String triggerName, DbTriggerUpdate update) { + private void addBeforeDelete(DdlBuffer apply, String triggerName, String tableName, List columnNames) { - DdlBuffer apply = update.historyTriggerBuffer(); apply .append("delimiter $$").newLine() - .append("create trigger ").append(triggerName).append(" before delete on ").append(update.getBaseTable()) + .append("create trigger ").append(triggerName).append(" before delete on ").append(tableName) .append(" for each row begin").newLine(); - appendInsertIntoHistory(apply, update.getHistoryTable(), update.getColumns()); + appendInsertIntoHistory(apply, tableName, columnNames); apply.append("end$$").newLine(); } diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/NoHistorySupportDdl.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/NoHistorySupportDdl.java index 64e42952b..b580f20cb 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/NoHistorySupportDdl.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/NoHistorySupportDdl.java @@ -32,8 +32,4 @@ public class NoHistorySupportDdl implements PlatformHistoryDdl { // does nothing } - @Override - public void updateTriggers(DdlWrite writer, HistoryTableUpdate update) { - // does nothing - } } diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/NuoDbHistoryDdl.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/NuoDbHistoryDdl.java index 726f407ad..b92b07640 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/NuoDbHistoryDdl.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/NuoDbHistoryDdl.java @@ -1,8 +1,9 @@ package io.ebeaninternal.dbmigration.ddlgeneration.platform; + +import java.util.List; + import io.ebeaninternal.dbmigration.ddlgeneration.DdlBuffer; -import io.ebeaninternal.dbmigration.ddlgeneration.DdlWrite; -import io.ebeaninternal.dbmigration.model.MTable; /** * NuoDB history support using DB triggers to maintain a history table. @@ -22,48 +23,32 @@ public class NuoDbHistoryDdl extends DbTriggerBasedHistoryDdl { } @Override - protected void createTriggers(DdlWrite writer, MTable table) { + protected void createTriggers(DdlBuffer buffer, String baseTable, List columnNames) { - DbTriggerUpdate update = createDbTriggerUpdate(writer, table); - - addBeforeUpdate(updateTriggerName(update.getBaseTable()), update); - addBeforeDelete(deleteTriggerName(update.getBaseTable()), update); + addBeforeUpdate(buffer, updateTriggerName(baseTable), baseTable, columnNames); + addBeforeDelete(buffer, deleteTriggerName(baseTable), baseTable, columnNames); } - @Override - protected void updateHistoryTriggers(DbTriggerUpdate update) { + private void addBeforeUpdate(DdlBuffer apply, String triggerName, String tableName, List columnNames) { - recreateHistoryView(update); + addTriggerStart(triggerName, tableName, apply, " before update for each row as "); - DdlBuffer buffer = update.historyTriggerBuffer(); - String baseTable = update.getBaseTable(); - - dropTriggers(buffer, baseTable); - addBeforeUpdate(updateTriggerName(baseTable), update); - addBeforeDelete(deleteTriggerName(baseTable), update); - } - - private void addBeforeUpdate(String triggerName, DbTriggerUpdate update) { - - DdlBuffer apply = update.historyTriggerBuffer(); - addTriggerStart(triggerName, update, apply, " before update for each row as "); apply.append(" NEW.sys_period_start = greatest(current_timestamp, date_add(OLD.sys_period_start, interval 1 microsecond))").endOfStatement(); - appendInsertIntoHistory(apply, update.getHistoryTable(), update.getColumns()); + appendInsertIntoHistory(apply, tableName, columnNames); addEndTrigger(apply); } - private void addBeforeDelete(String triggerName, DbTriggerUpdate update) { + private void addBeforeDelete(DdlBuffer apply, String triggerName, String tableName, List columnNames) { - DdlBuffer apply = update.historyTriggerBuffer(); - addTriggerStart(triggerName, update, apply, " before delete for each row as"); - appendInsertIntoHistory(apply, update.getHistoryTable(), update.getColumns()); + addTriggerStart(triggerName, tableName, apply, " before delete for each row as"); + appendInsertIntoHistory(apply, tableName, columnNames); addEndTrigger(apply); } - private void addTriggerStart(String triggerName, DbTriggerUpdate update, DdlBuffer apply, String s) { + private void addTriggerStart(String triggerName, String baseTable, DdlBuffer apply, String s) { apply .append("delimiter $$").newLine() - .append("create or replace trigger ").append(triggerName).append(" for ").append(update.getBaseTable()) + .append("create or replace trigger ").append(triggerName).append(" for ").append(baseTable) .append(s).newLine(); } diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformDdl.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformDdl.java index 3011f2c4a..588b2c7e7 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformDdl.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformDdl.java @@ -18,7 +18,6 @@ import io.ebeaninternal.dbmigration.migration.Column; import io.ebeaninternal.dbmigration.migration.DropHistoryTable; import io.ebeaninternal.dbmigration.model.MTable; -import java.util.Collection; import java.util.List; import java.util.Locale; @@ -364,8 +363,8 @@ public class PlatformDdl { /** * Regenerate the history triggers (or function) due to a column being added/dropped/excluded or included. */ - public void regenerateHistoryTriggers(DdlWrite writer, HistoryTableUpdate update) { - historyDdl.updateTriggers(writer, update); + public void regenerateHistoryTriggers(DdlWrite writer, String tableName) { + historyDdl.updateTriggers(writer, tableName); } /** @@ -780,20 +779,6 @@ public class PlatformDdl { return name; } - /** - * Mysql-specific: Locks all tables for triggers that have to be updated. - */ - public void lockTables(DdlBuffer buffer, Collection tables) { - - } - - /** - * Mysql-specific: Unlocks all tables for triggers that have to be updated. - */ - public void unlockTables(DdlBuffer buffer, Collection tables) { - - } - /** * Returns the database-specific "create table" command prefix. For HANA this is * either "create column table" or "create row table", for all other databases diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformHistoryDdl.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformHistoryDdl.java index ca7236228..4dd1dec6d 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformHistoryDdl.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformHistoryDdl.java @@ -32,7 +32,19 @@ public interface PlatformHistoryDdl { void addHistoryTable(DdlWrite writer, AddHistoryTable addHistoryTable); /** - * Regenerate the history triggers/stored function due to column added/dropped/included or excluded. + * Returns true, if alters on the live tables should be applied also to the history tables. This is required for DbTriggerBased + * histories or on platforms like Hana, which are not SQL2011 history compatible (at least from DDL perspective) */ - void updateTriggers(DdlWrite writer, HistoryTableUpdate baseTable); + default boolean alterHistoryTables() { + return false; + } + + /** + * Regenerate the history triggers/stored function due to column added/dropped/included or excluded. + * + * Note: This function may be called multiple times for the same table. + */ + default void updateTriggers(DdlWrite writer, String tableName) { + // nop + } } diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PostgresHistoryDdl.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PostgresHistoryDdl.java index e4d4d41aa..135324899 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PostgresHistoryDdl.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PostgresHistoryDdl.java @@ -49,14 +49,11 @@ public class PostgresHistoryDdl extends DbTriggerBasedHistoryDdl { } @Override - protected void createTriggers(DdlWrite writer, MTable table) { - String baseTableName = table.getName(); + protected void createTriggers(DdlBuffer buffer, String baseTableName, List columnNames) { String procedureName = procedureName(baseTableName); String triggerName = triggerName(baseTableName); - List columnNames = columnNamesForApply(table); - DdlBuffer apply = writer.applyHistoryTrigger(); - createOrReplaceFunction(apply, procedureName, historyTableName(baseTableName), columnNames); - apply + createOrReplaceFunction(buffer, procedureName, historyTableName(baseTableName), columnNames); + buffer .append("create trigger ").append(triggerName).newLine() .append(" before update or delete on ").append(baseTableName).newLine() .append(" for each row execute procedure ").append(procedureName).append("();").newLine().newLine(); @@ -101,22 +98,6 @@ public class PostgresHistoryDdl extends DbTriggerBasedHistoryDdl { apply.end(); } - @Override - protected void createStoredFunction(DdlWrite writer, MTable table) { - String procedureName = procedureName(table.getName()); - String historyTable = historyTableName(table.getName()); - - List columnNames = columnNamesForApply(table); - createOrReplaceFunction(writer.applyHistoryTrigger(), procedureName, historyTable, columnNames); - } - - @Override - protected void updateHistoryTriggers(DbTriggerUpdate update) { - String procedureName = procedureName(update.getBaseTable()); - recreateHistoryView(update); - createOrReplaceFunction(update.historyTriggerBuffer(), procedureName, update.getHistoryTable(), update.getColumns()); - } - @Override protected void appendInsertIntoHistory(DdlBuffer buffer, String historyTable, List columns) { buffer.append(" insert into ").append(historyTable).append(" (").append(sysPeriod).append(","); diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/SqlServerHistoryDdl.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/SqlServerHistoryDdl.java index 7a10110e3..c0b1eaebc 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/SqlServerHistoryDdl.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/SqlServerHistoryDdl.java @@ -1,6 +1,7 @@ package io.ebeaninternal.dbmigration.ddlgeneration.platform; import io.ebean.config.DatabaseConfig; +import io.ebeaninternal.dbmigration.ddlgeneration.DdlAlterTable; import io.ebeaninternal.dbmigration.ddlgeneration.DdlBuffer; import io.ebeaninternal.dbmigration.ddlgeneration.DdlWrite; import io.ebeaninternal.dbmigration.migration.AddHistoryTable; @@ -43,7 +44,7 @@ public class SqlServerHistoryDdl implements PlatformHistoryDdl { } private void enableSystemVersioning(DdlWrite writer, String baseTable) { - DdlBuffer apply = writer.applyHistoryView(); + DdlBuffer apply = writer.applyPostAlter(); apply.append("alter table ").append(baseTable).newLine() .append(" add ").append(systemPeriodStart).append(" datetime2 GENERATED ALWAYS AS ROW START NOT NULL DEFAULT SYSUTCDATETIME(),").newLine() .append(" ").append(systemPeriodEnd).append(" datetime2 GENERATED ALWAYS AS ROW END NOT NULL DEFAULT '9999-12-31T23:59:59.9999999',").newLine() @@ -88,15 +89,19 @@ public class SqlServerHistoryDdl implements PlatformHistoryDdl { } @Override - public void updateTriggers(DdlWrite writer, HistoryTableUpdate baseTable) { - // SQL Server 2016 does not need triggers - DdlBuffer apply = writer.applyHistoryView(); - String baseTableName = baseTable.getBaseTable(); - apply.append("-- alter table ").append(baseTableName).append(" set (system_versioning = off (history_table=") - .append(getHistoryTable(baseTableName)).append("))").endOfStatement(); - apply.append("-- history migration goes here").newLine(); - apply.append("-- alter table ").append(baseTableName).append(" set (system_versioning = on (history_table=") - .append(getHistoryTable(baseTableName)).append("))").endOfStatement(); - + public void updateTriggers(DdlWrite writer, String tableName) { + DdlAlterTable alter = platformDdl.alterTable(writer, tableName); + writer.getTable(tableName); + if (!alter.isHistoryHandled()) { + // SQL Server 2016 does not need triggers + DdlBuffer apply = writer.apply(); + apply.append("-- alter table ").append(tableName).append(" set (system_versioning = off (history_table=") + .append(getHistoryTable(tableName)).append("))").endOfStatement(); + apply.append("-- history migration goes here").newLine(); + apply.append("-- alter table ").append(tableName).append(" set (system_versioning = on (history_table=") + .append(getHistoryTable(tableName)).append("))").endOfStatement(); + } + alter.setHistoryHandled(); } + } diff --git a/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/H2HistoryDdlTest.java b/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/H2HistoryDdlTest.java deleted file mode 100644 index 031e4b965..000000000 --- a/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/H2HistoryDdlTest.java +++ /dev/null @@ -1,50 +0,0 @@ -package io.ebeaninternal.dbmigration.ddlgeneration.platform; - -import io.ebean.DB; -import io.ebean.config.dbplatform.h2.H2Platform; -import io.ebeaninternal.api.SpiEbeanServer; -import io.ebeaninternal.dbmigration.ddlgeneration.DdlOptions; -import io.ebeaninternal.dbmigration.ddlgeneration.DdlWrite; -import io.ebeaninternal.dbmigration.ddlgeneration.PlatformDdlBuilder; -import io.ebeaninternal.dbmigration.model.CurrentModel; -import io.ebeaninternal.dbmigration.model.MConfiguration; -import io.ebeaninternal.dbmigration.model.ModelContainer; -import org.junit.jupiter.api.Test; - -import static org.assertj.core.api.Assertions.assertThat; - - -public class H2HistoryDdlTest { - - @Test - public void testRegenerateHistoryTriggers() throws Exception { - - SpiEbeanServer ebeanServer = (SpiEbeanServer) DB.getDefault(); - - HistoryTableUpdate update = new HistoryTableUpdate("c_user"); - update.add(HistoryTableUpdate.Change.ADD, "one"); - update.add(HistoryTableUpdate.Change.DROP, "two"); - - - CurrentModel currentModel = new CurrentModel(ebeanServer); - ModelContainer modelContainer = currentModel.read(); - DdlWrite writer = new DdlWrite(new MConfiguration(), modelContainer, new DdlOptions()); - - H2Platform h2Platform = new H2Platform(); - PlatformDdl h2Ddl = PlatformDdlBuilder.create(h2Platform); - h2Ddl.configure(ebeanServer.config()); - h2Ddl.regenerateHistoryTriggers(writer, update); - - assertThat(writer.applyHistoryView().isEmpty()).isFalse(); - assertThat(writer.applyHistoryTrigger().isEmpty()).isFalse(); - assertThat(writer.applyHistoryView().getBuffer()) - .contains("create view") - .doesNotContain("create trigger"); - assertThat(writer.applyHistoryTrigger().getBuffer()) - .contains("add one") - .contains("create trigger") - .doesNotContain("create view"); - assertThat(writer.dropAll().isEmpty()).isTrue(); - - } -} diff --git a/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/HistoryTableUpdateTest.java b/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/HistoryTableUpdateTest.java deleted file mode 100644 index a2f2c6080..000000000 --- a/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/HistoryTableUpdateTest.java +++ /dev/null @@ -1,32 +0,0 @@ -package io.ebeaninternal.dbmigration.ddlgeneration.platform; - -import org.junit.jupiter.api.Test; - -import static org.assertj.core.api.Assertions.assertThat; - - -public class HistoryTableUpdateTest { - - @Test - public void testDescription() throws Exception { - - HistoryTableUpdate upd = new HistoryTableUpdate("mytab"); - upd.add(HistoryTableUpdate.Change.ADD, "two"); - upd.add(HistoryTableUpdate.Change.DROP, "four"); - - assertThat(upd.description()).isEqualTo("[add two, drop four]"); - } - - @Test - public void testDescription_withIncludeExclude() throws Exception { - - HistoryTableUpdate upd = new HistoryTableUpdate("mytab"); - upd.add(HistoryTableUpdate.Change.ADD, "two"); - upd.add(HistoryTableUpdate.Change.INCLUDE, "five"); - upd.add(HistoryTableUpdate.Change.EXCLUDE, "six"); - upd.add(HistoryTableUpdate.Change.DROP, "four"); - - assertThat(upd.description()).isEqualTo("[add two, include five, exclude six, drop four]"); - } - -} From 10c01574d2f0f55d914d259c77179c38be2582e8 Mon Sep 17 00:00:00 2001 From: Roland Praml Date: Mon, 14 Mar 2022 13:12:24 +0100 Subject: [PATCH 087/114] H2: No effective change Statements reordered --- .../dbmigration/h2/1.0__initial.sql | 11 +++-- .../migrationtest/dbmigration/h2/1.1.sql | 44 +++++++------------ .../dbmigration/h2/1.2__dropsFor_1.1.sql | 14 +++--- .../migrationtest/dbmigration/h2/1.3.sql | 32 +++++--------- .../dbmigration/h2/1.4__dropsFor_1.3.sql | 23 ++++------ .../dbmigration/h2/idx_h2.migrations | 10 ++--- 6 files changed, 53 insertions(+), 81 deletions(-) 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 index c2e7c9fea..70abeb07f 100644 --- 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 @@ -183,6 +183,7 @@ create table migtest_e_history2_history( 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; +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 table migtest_e_history3_history( id integer, @@ -191,6 +192,7 @@ create table migtest_e_history3_history( 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; +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 table migtest_e_history4_history( id integer, @@ -199,6 +201,7 @@ create table migtest_e_history4_history( 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; +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 table migtest_e_history5_history( id integer, @@ -207,6 +210,7 @@ create table migtest_e_history5_history( 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; +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 table migtest_e_history6_history( id integer, @@ -216,6 +220,7 @@ create table migtest_e_history6_history( 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_history6_history_upd before update,delete on migtest_e_history6 for each row call "io.ebean.config.dbplatform.h2.H2HistoryTrigger"; -- foreign keys and indices create index ix_migtest_fk_cascade_one_id on migtest_fk_cascade (one_id); @@ -229,9 +234,3 @@ alter table migtest_e_basic add constraint fk_migtest_e_basic_eref_id foreign ke create index ix_migtest_e_basic_indextest1 on migtest_e_basic (indextest1); create index ix_migtest_e_basic_indextest5 on migtest_e_basic (indextest5); --- apply history trigger -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 index 860ca30d5..de2cdb548 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 @@ -9,10 +9,6 @@ alter table migtest_e_basic drop constraint uq_migtest_e_basic_indextest6; alter table migtest_e_enum drop constraint if exists ck_migtest_e_enum_test_status; drop index if exists ix_migtest_e_basic_indextest1; drop index if exists ix_migtest_e_basic_indextest5; -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, @@ -45,6 +41,14 @@ insert into migtest_e_user (id) select distinct user_id from migtest_e_basic; -- NOTE: table has @History - special migration may be necessary update migtest_e_history2 set test_string = 'unknown' where test_string is null; +drop trigger migtest_e_history2_history_upd; +drop view migtest_e_history2_with_history; +drop trigger migtest_e_history3_history_upd; +drop view migtest_e_history3_with_history; +drop trigger migtest_e_history4_history_upd; +drop view migtest_e_history4_with_history; +drop trigger migtest_e_history5_history_upd; +drop view migtest_e_history5_with_history; -- NOTE: table has @History - special migration may be necessary update migtest_e_history6 set test_number1 = 42 where test_number1 is null; @@ -101,9 +105,18 @@ create table migtest_e_history_history( 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 trigger migtest_e_history_history_upd before update,delete on migtest_e_history for each row call "io.ebean.config.dbplatform.h2.H2HistoryTrigger"; comment on column migtest_e_history.test_string is 'Column altered to long now'; comment on table migtest_e_history is 'We have history now'; +create view migtest_e_history2_with_history as select * from migtest_e_history2 union all select * from migtest_e_history2_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 view migtest_e_history3_with_history as select * from migtest_e_history3 union all select * from migtest_e_history3_history; +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 view migtest_e_history4_with_history as select * from migtest_e_history4 union all select * from migtest_e_history4_history; +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 view migtest_e_history5_with_history as select * from migtest_e_history5 union all select * from migtest_e_history5_history; +create trigger migtest_e_history5_history_upd before update,delete on migtest_e_history5 for each row call "io.ebean.config.dbplatform.h2.H2HistoryTrigger"; -- foreign keys and indices 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; @@ -133,26 +146,3 @@ alter table migtest_oto_child add constraint fk_migtest_oto_child_master_id fore create index ix_migtest_e_basic_indextest3 on migtest_e_basic (indextest3); create index ix_migtest_e_basic_indextest6 on migtest_e_basic (indextest6); --- apply history view -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; - --- apply history trigger -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 index 1d3691cc8..f3112c454 100644 --- 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 @@ -1,6 +1,7 @@ -- Migrationscripts for ebean unittest --- drop dependencies -drop view if exists migtest_e_history2_with_history; +-- apply changes +drop trigger migtest_e_history2_history_upd; +drop view migtest_e_history2_with_history; -- apply alter tables alter table migtest_e_basic drop column description_file; alter table migtest_e_basic drop column old_boolean; @@ -11,12 +12,7 @@ alter table migtest_e_history2 drop column obsolete_string2; alter table migtest_e_history2_history drop column obsolete_string1; alter table migtest_e_history2_history drop column obsolete_string2; -- apply post alter +create view migtest_e_history2_with_history as select * from migtest_e_history2 union all select * from migtest_e_history2_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"; drop table if exists migtest_e_ref; drop sequence if exists migtest_e_ref_seq; --- apply history view -create view migtest_e_history2_with_history as select * from migtest_e_history2 union all select * from migtest_e_history2_history; - --- apply history trigger --- 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 index d7e856699..0a8be48a4 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/h2/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/h2/1.3.sql @@ -16,9 +16,6 @@ alter table migtest_e_basic drop constraint uq_migtest_e_basic_indextest5; alter table migtest_e_enum drop constraint if exists ck_migtest_e_enum_test_status; drop index if exists ix_migtest_e_basic_indextest3; drop index if exists ix_migtest_e_basic_indextest6; -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, @@ -31,6 +28,12 @@ create table migtest_e_ref ( update migtest_e_basic set status2 = 'N' where status2 is null; update migtest_e_basic set user_id = 23 where user_id is null; +drop trigger migtest_e_history2_history_upd; +drop view migtest_e_history2_with_history; +drop trigger migtest_e_history3_history_upd; +drop view migtest_e_history3_with_history; +drop trigger migtest_e_history4_history_upd; +drop view migtest_e_history4_with_history; -- NOTE: table has @History - special migration may be necessary update migtest_e_history6 set test_number2 = 7 where test_number2 is null; @@ -66,6 +69,12 @@ alter table migtest_e_basic add constraint uq_migtest_e_basic_indextest6 unique 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 ''; +create view migtest_e_history2_with_history as select * from migtest_e_history2 union all select * from migtest_e_history2_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 view migtest_e_history3_with_history as select * from migtest_e_history3 union all select * from migtest_e_history3_history; +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 view migtest_e_history4_with_history as select * from migtest_e_history4 union all select * from migtest_e_history4_history; +create trigger migtest_e_history4_history_upd before update,delete on migtest_e_history4 for each row call "io.ebean.config.dbplatform.h2.H2HistoryTrigger"; -- foreign keys and indices 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_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; @@ -74,20 +83,3 @@ alter table migtest_e_basic add constraint fk_migtest_e_basic_eref_id foreign ke create index ix_migtest_e_basic_indextest1 on migtest_e_basic (indextest1); create index ix_migtest_e_basic_indextest5 on migtest_e_basic (indextest5); --- apply history view -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; - --- apply history trigger --- 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 index d6ce59146..50e6ed546 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 @@ -4,8 +4,11 @@ drop trigger migtest_e_history_history_upd; drop view migtest_e_history_with_history; 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 +drop trigger migtest_e_history2_history_upd; +drop view migtest_e_history2_with_history; +drop trigger migtest_e_history5_history_upd; +drop view migtest_e_history5_with_history; -- apply alter tables alter table migtest_ckey_detail drop column one_key; alter table migtest_ckey_detail drop column two_key; @@ -28,20 +31,12 @@ 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; -- apply post alter +create view migtest_e_history2_with_history as select * from migtest_e_history2 union all select * from migtest_e_history2_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 view migtest_e_history5_with_history as select * from migtest_e_history5 union all select * from migtest_e_history5_history; +create trigger migtest_e_history5_history_upd before update,delete on migtest_e_history5 for each row call "io.ebean.config.dbplatform.h2.H2HistoryTrigger"; 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; --- apply history view -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; - --- apply history trigger --- 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/idx_h2.migrations b/ebean-test/src/test/resources/migrationtest/dbmigration/h2/idx_h2.migrations index a9f4a8b34..049ac027a 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 @@ --698689813, 1.0__initial.sql -2028346373, 1.1.sql --2063980912, 1.2__dropsFor_1.1.sql --508824171, 1.3.sql -511468518, 1.4__dropsFor_1.3.sql +1200492722, 1.0__initial.sql +374062636, 1.1.sql +-1366392410, 1.2__dropsFor_1.1.sql +1367061136, 1.3.sql +-1382108238, 1.4__dropsFor_1.3.sql 783227075, R__multi_comments.sql 561281075, R__order_views.sql From d629fb2dbd5ab5046b94beaec05f9f0adc6b3928 Mon Sep 17 00:00:00 2001 From: Roland Praml Date: Mon, 14 Mar 2022 13:18:07 +0100 Subject: [PATCH 088/114] MariaDB uses '@@system_versioning_alter_history = 1' now. Removed obsolete "lock tables" statements --- .../src/test/java/misc/migration/v1_1/EHistory2.java | 9 --------- .../dbmigration/mariadb-noprocs/1.0__initial.sql | 12 ++++++------ .../dbmigration/mariadb-noprocs/1.1.sql | 8 ++------ .../mariadb-noprocs/1.2__dropsFor_1.1.sql | 2 ++ .../dbmigration/mariadb-noprocs/1.3.sql | 4 +--- .../mariadb-noprocs/1.4__dropsFor_1.3.sql | 5 +++-- .../mariadb-noprocs/idx_mariadb.migrations | 10 +++++----- .../dbmigration/mariadb/1.0__initial.sql | 12 ++++++------ .../migrationtest/dbmigration/mariadb/1.1.sql | 8 ++------ .../dbmigration/mariadb/1.2__dropsFor_1.1.sql | 2 ++ .../migrationtest/dbmigration/mariadb/1.3.sql | 4 +--- .../dbmigration/mariadb/1.4__dropsFor_1.3.sql | 5 +++-- .../dbmigration/mariadb/idx_mariadb.migrations | 10 +++++----- .../migrationtest/dbmigration/model/1.1.model.xml | 10 +--------- 14 files changed, 39 insertions(+), 62 deletions(-) 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 0c58ab84b..89cf970a7 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,11 +2,9 @@ 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; @@ -22,13 +20,6 @@ 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/resources/migrationtest/dbmigration/mariadb-noprocs/1.0__initial.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb-noprocs/1.0__initial.sql index 3533dde95..a5d40b3ea 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb-noprocs/1.0__initial.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb-noprocs/1.0__initial.sql @@ -159,6 +159,12 @@ create table migtest_oto_master ( constraint pk_migtest_oto_master primary key (id) ); +-- apply alter tables +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; -- foreign keys and indices 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; @@ -171,9 +177,3 @@ alter table migtest_e_basic add constraint fk_migtest_e_basic_eref_id foreign ke create index ix_migtest_e_basic_indextest1 on migtest_e_basic (indextest1); create index ix_migtest_e_basic_indextest5 on migtest_e_basic (indextest5); --- apply history view -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-noprocs/1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb-noprocs/1.1.sql index b1fa065d3..5068f4608 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 @@ -37,8 +37,8 @@ update migtest_e_basic set status = 'A' where status is null; insert into migtest_e_user (id) select distinct user_id from migtest_e_basic; -- 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; +SET @@system_versioning_alter_history = 1; -- NOTE: table has @History - special migration may be necessary update migtest_e_history6 set test_number1 = 42 where test_number1 is null; @@ -54,6 +54,7 @@ alter table migtest_e_basic add column new_boolean_field tinyint(1) default 1 no 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_history add system versioning; alter table migtest_e_history modify test_string bigint; alter table migtest_e_history2 modify test_string varchar(255) not null default 'unknown'; alter table migtest_e_history2 add column test_string2 varchar(255); @@ -104,8 +105,3 @@ alter table migtest_oto_child add constraint fk_migtest_oto_child_master_id fore create index ix_migtest_e_basic_indextest3 on migtest_e_basic (indextest3); create index ix_migtest_e_basic_indextest6 on migtest_e_basic (indextest6); --- apply history view -alter table migtest_e_history add system versioning; --- apply history trigger -lock tables migtest_e_history3 write; -unlock tables; diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb-noprocs/1.2__dropsFor_1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb-noprocs/1.2__dropsFor_1.1.sql index f33b6874f..52ed4e9c0 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb-noprocs/1.2__dropsFor_1.1.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb-noprocs/1.2__dropsFor_1.1.sql @@ -1,4 +1,6 @@ -- Migrationscripts for ebean unittest +-- apply changes +SET @@system_versioning_alter_history = 1; -- apply alter tables alter table migtest_e_basic drop column description_file; alter table migtest_e_basic drop column old_boolean; diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb-noprocs/1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb-noprocs/1.3.sql index 3063a1427..86d0e6528 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb-noprocs/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb-noprocs/1.3.sql @@ -25,6 +25,7 @@ create table migtest_e_ref ( update migtest_e_basic set status2 = 'N' where status2 is null; update migtest_e_basic set user_id = 23 where user_id is null; +SET @@system_versioning_alter_history = 1; -- NOTE: table has @History - special migration may be necessary update migtest_e_history6 set test_number2 = 7 where test_number2 is null; @@ -54,6 +55,3 @@ alter table migtest_e_basic add constraint fk_migtest_e_basic_eref_id foreign ke create index ix_migtest_e_basic_indextest1 on migtest_e_basic (indextest1); create index ix_migtest_e_basic_indextest5 on migtest_e_basic (indextest5); --- apply history trigger -lock tables migtest_e_history3 write; -unlock tables; 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 f3cc59238..b15ac579e 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 @@ -1,4 +1,6 @@ -- Migrationscripts for ebean unittest +-- apply changes +SET @@system_versioning_alter_history = 1; -- apply alter tables alter table migtest_ckey_detail drop column one_key; alter table migtest_ckey_detail drop column two_key; @@ -8,6 +10,7 @@ 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_history drop system versioning; 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; @@ -20,5 +23,3 @@ 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; --- apply history view -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 5f13ba80f..336dbf5d2 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 @@ -2035483098, 1.0__initial.sql --924429039, 1.1.sql --300925212, 1.2__dropsFor_1.1.sql --773358828, 1.3.sql --1978922691, 1.4__dropsFor_1.3.sql +-636344713, 1.0__initial.sql +-1901679107, 1.1.sql +-828985759, 1.2__dropsFor_1.1.sql +903264949, 1.3.sql +-446860935, 1.4__dropsFor_1.3.sql 561281075, R__order_views.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 index 3533dde95..a5d40b3ea 100644 --- 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 @@ -159,6 +159,12 @@ create table migtest_oto_master ( constraint pk_migtest_oto_master primary key (id) ); +-- apply alter tables +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; -- foreign keys and indices 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; @@ -171,9 +177,3 @@ alter table migtest_e_basic add constraint fk_migtest_e_basic_eref_id foreign ke create index ix_migtest_e_basic_indextest1 on migtest_e_basic (indextest1); create index ix_migtest_e_basic_indextest5 on migtest_e_basic (indextest5); --- apply history view -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 index b1fa065d3..5068f4608 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 @@ -37,8 +37,8 @@ update migtest_e_basic set status = 'A' where status is null; insert into migtest_e_user (id) select distinct user_id from migtest_e_basic; -- 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; +SET @@system_versioning_alter_history = 1; -- NOTE: table has @History - special migration may be necessary update migtest_e_history6 set test_number1 = 42 where test_number1 is null; @@ -54,6 +54,7 @@ alter table migtest_e_basic add column new_boolean_field tinyint(1) default 1 no 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_history add system versioning; alter table migtest_e_history modify test_string bigint; alter table migtest_e_history2 modify test_string varchar(255) not null default 'unknown'; alter table migtest_e_history2 add column test_string2 varchar(255); @@ -104,8 +105,3 @@ alter table migtest_oto_child add constraint fk_migtest_oto_child_master_id fore create index ix_migtest_e_basic_indextest3 on migtest_e_basic (indextest3); create index ix_migtest_e_basic_indextest6 on migtest_e_basic (indextest6); --- apply history view -alter table migtest_e_history add system versioning; --- apply history trigger -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 index 832cfb31f..227ae4335 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,4 +1,6 @@ -- Migrationscripts for ebean unittest +-- apply changes +SET @@system_versioning_alter_history = 1; -- apply alter tables CALL usp_ebean_drop_column('migtest_e_basic', 'description_file'); CALL usp_ebean_drop_column('migtest_e_basic', 'old_boolean'); 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 index 3063a1427..86d0e6528 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb/1.3.sql @@ -25,6 +25,7 @@ create table migtest_e_ref ( update migtest_e_basic set status2 = 'N' where status2 is null; update migtest_e_basic set user_id = 23 where user_id is null; +SET @@system_versioning_alter_history = 1; -- NOTE: table has @History - special migration may be necessary update migtest_e_history6 set test_number2 = 7 where test_number2 is null; @@ -54,6 +55,3 @@ alter table migtest_e_basic add constraint fk_migtest_e_basic_eref_id foreign ke create index ix_migtest_e_basic_indextest1 on migtest_e_basic (indextest1); create index ix_migtest_e_basic_indextest5 on migtest_e_basic (indextest5); --- apply history trigger -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 index 7b20bd958..abd31f737 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,4 +1,6 @@ -- Migrationscripts for ebean unittest +-- apply changes +SET @@system_versioning_alter_history = 1; -- apply alter tables CALL usp_ebean_drop_column('migtest_ckey_detail', 'one_key'); CALL usp_ebean_drop_column('migtest_ckey_detail', 'two_key'); @@ -8,6 +10,7 @@ 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_history drop system versioning; CALL usp_ebean_drop_column('migtest_e_history2', 'test_string2'); CALL usp_ebean_drop_column('migtest_e_history2', 'test_string3'); CALL usp_ebean_drop_column('migtest_e_history2', 'new_column'); @@ -20,5 +23,3 @@ 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; --- apply history view -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 10fdd6684..ddc777e23 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 -2035483098, 1.0__initial.sql --924429039, 1.1.sql --17652545, 1.2__dropsFor_1.1.sql --773358828, 1.3.sql --171059083, 1.4__dropsFor_1.3.sql +-636344713, 1.0__initial.sql +-1901679107, 1.1.sql +2123392915, 1.2__dropsFor_1.1.sql +903264949, 1.3.sql +-692020559, 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 0edbb49da..cab8491ca 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 @@ -54,15 +54,7 @@ - - - SET @@system_versioning_alter_history = 1 - update ${table} set ${column} = 'unknown' where ${column} is null - - - update ${table} set ${column} = 'unknown' where ${column} is null - - + From 5536aeb829c36e04c12e667f568ae24be39e2d12 Mon Sep 17 00:00:00 2001 From: Roland Praml Date: Mon, 14 Mar 2022 14:04:59 +0100 Subject: [PATCH 089/114] Mysql: locks only one table at once --- .../dbmigration/mysql/1.0__initial.sql | 101 ++++++------ .../migrationtest/dbmigration/mysql/1.1.sql | 144 +++++++++--------- .../dbmigration/mysql/1.2__dropsFor_1.1.sql | 14 +- .../migrationtest/dbmigration/mysql/1.3.sql | 94 ++++++------ .../dbmigration/mysql/1.4__dropsFor_1.3.sql | 33 ++-- .../dbmigration/mysql/idx_mysql.migrations | 10 +- .../dbmigration/mysql55/1.0__initial.sql | 101 ++++++------ .../migrationtest/dbmigration/mysql55/1.1.sql | 144 +++++++++--------- .../dbmigration/mysql55/1.2__dropsFor_1.1.sql | 14 +- .../migrationtest/dbmigration/mysql55/1.3.sql | 94 ++++++------ .../dbmigration/mysql55/1.4__dropsFor_1.3.sql | 33 ++-- .../dbmigration/mysql55/idx_mysql.migrations | 10 +- 12 files changed, 392 insertions(+), 400 deletions(-) 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 469183640..c3f5bfaf7 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 @@ -180,6 +180,17 @@ create table migtest_e_history2_history( 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; +lock tables migtest_e_history2 write; +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$$ +unlock tables; create table migtest_e_history3_history( id integer, @@ -188,6 +199,17 @@ create table migtest_e_history3_history( 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; +lock tables migtest_e_history3 write; +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$$ +unlock tables; create table migtest_e_history4_history( id integer, @@ -196,6 +218,17 @@ create table migtest_e_history4_history( 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; +lock tables migtest_e_history4 write; +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; create table migtest_e_history5_history( id integer, @@ -204,6 +237,17 @@ create table migtest_e_history5_history( 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; +lock tables migtest_e_history5 write; +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; create table migtest_e_history6_history( id integer, @@ -213,6 +257,17 @@ create table migtest_e_history6_history( 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; +lock tables migtest_e_history6 write; +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$$ +unlock tables; -- foreign keys and indices create index ix_migtest_fk_cascade_one_id on migtest_fk_cascade (one_id); @@ -226,49 +281,3 @@ alter table migtest_e_basic add constraint fk_migtest_e_basic_eref_id foreign ke create index ix_migtest_e_basic_indextest1 on migtest_e_basic (indextest1); create index ix_migtest_e_basic_indextest5 on migtest_e_basic (indextest5); --- apply history trigger -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 index fa6a97be3..951b8635a 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 @@ -6,10 +6,6 @@ alter table migtest_e_basic drop index uq_migtest_e_basic_indextest2; alter table migtest_e_basic drop index uq_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; -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, @@ -42,6 +38,18 @@ insert into migtest_e_user (id) select distinct user_id from migtest_e_basic; -- NOTE: table has @History - special migration may be necessary update migtest_e_history2 set test_string = 'unknown' where test_string is null; +drop trigger migtest_e_history2_history_upd; +drop trigger migtest_e_history2_history_del; +drop view migtest_e_history2_with_history; +drop trigger migtest_e_history3_history_upd; +drop trigger migtest_e_history3_history_del; +drop view migtest_e_history3_with_history; +drop trigger migtest_e_history4_history_upd; +drop trigger migtest_e_history4_history_del; +drop view migtest_e_history4_with_history; +drop trigger migtest_e_history5_history_upd; +drop trigger migtest_e_history5_history_del; +drop view migtest_e_history5_with_history; -- NOTE: table has @History - special migration may be necessary update migtest_e_history6 set test_number1 = 42 where test_number1 is null; @@ -91,8 +99,67 @@ create table migtest_e_history_history( 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; +lock tables migtest_e_history write; +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$$ +unlock tables; alter table migtest_e_history comment = 'We have history now'; +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; +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$$ +unlock tables; +create view migtest_e_history3_with_history as select * from migtest_e_history3 union all select * from migtest_e_history3_history; +lock tables migtest_e_history3 write; +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$$ +unlock tables; +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_history4 write; +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; +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_history5 write; +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; -- foreign keys and indices 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; @@ -122,72 +189,3 @@ alter table migtest_oto_child add constraint fk_migtest_oto_child_master_id fore create index ix_migtest_e_basic_indextest3 on migtest_e_basic (indextest3); create index ix_migtest_e_basic_indextest6 on migtest_e_basic (indextest6); --- apply history view -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; - --- apply history trigger -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 index 714f28069..47dc655fd 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 @@ -1,6 +1,8 @@ -- Migrationscripts for ebean unittest --- drop dependencies -drop view if exists migtest_e_history2_with_history; +-- apply changes +drop trigger migtest_e_history2_history_upd; +drop trigger migtest_e_history2_history_del; +drop view migtest_e_history2_with_history; -- apply alter tables CALL usp_ebean_drop_column('migtest_e_basic', 'description_file'); CALL usp_ebean_drop_column('migtest_e_basic', 'old_boolean'); @@ -11,15 +13,8 @@ CALL usp_ebean_drop_column('migtest_e_history2', 'obsolete_string2'); CALL usp_ebean_drop_column('migtest_e_history2_history', 'obsolete_string1'); CALL usp_ebean_drop_column('migtest_e_history2_history', 'obsolete_string2'); -- apply post alter -drop table if exists migtest_e_ref; --- apply history view create view migtest_e_history2_with_history as select * from migtest_e_history2 union all select * from migtest_e_history2_history; - --- apply history trigger 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); @@ -30,3 +25,4 @@ create trigger migtest_e_history2_history_del before delete on migtest_e_history 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; +drop table if exists migtest_e_ref; 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 index 55e12654c..8d28ec00a 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/mysql/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/mysql/1.3.sql @@ -13,9 +13,6 @@ alter table migtest_e_basic drop index uq_migtest_e_basic_indextest4; alter table migtest_e_basic drop index uq_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; -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, @@ -28,6 +25,15 @@ create table migtest_e_ref ( update migtest_e_basic set status2 = 'N' where status2 is null; update migtest_e_basic set user_id = 23 where user_id is null; +drop trigger migtest_e_history2_history_upd; +drop trigger migtest_e_history2_history_del; +drop view migtest_e_history2_with_history; +drop trigger migtest_e_history3_history_upd; +drop trigger migtest_e_history3_history_del; +drop view migtest_e_history3_with_history; +drop trigger migtest_e_history4_history_upd; +drop trigger migtest_e_history4_history_del; +drop view migtest_e_history4_with_history; -- NOTE: table has @History - special migration may be necessary update migtest_e_history6 set test_number2 = 7 where test_number2 is null; @@ -52,6 +58,42 @@ alter table migtest_e_history6 modify test_number2 integer not null default 7; 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 = ''; +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; +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$$ +unlock tables; +create view migtest_e_history3_with_history as select * from migtest_e_history3 union all select * from migtest_e_history3_history; +lock tables migtest_e_history3 write; +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$$ +unlock tables; +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_history4 write; +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; 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); -- foreign keys and indices @@ -64,49 +106,3 @@ 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); --- apply history view -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; - --- apply history trigger -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 index f02e1d3e7..0cde3c7b2 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 @@ -5,8 +5,13 @@ drop trigger migtest_e_history_history_del; drop view migtest_e_history_with_history; 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 +drop trigger migtest_e_history2_history_upd; +drop trigger migtest_e_history2_history_del; +drop view migtest_e_history2_with_history; +drop trigger migtest_e_history5_history_upd; +drop trigger migtest_e_history5_history_del; +drop view migtest_e_history5_with_history; -- apply alter tables CALL usp_ebean_drop_column('migtest_ckey_detail', 'one_key'); CALL usp_ebean_drop_column('migtest_ckey_detail', 'two_key'); @@ -29,20 +34,8 @@ 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'); -- apply post alter -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; --- apply history view 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; - --- apply history trigger -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; +lock tables migtest_e_history2 write; 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); @@ -52,9 +45,9 @@ 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; +unlock tables; +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_history5 write; 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); @@ -65,3 +58,7 @@ create trigger migtest_e_history5_history_del before delete on migtest_e_history 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; +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/mysql/idx_mysql.migrations b/ebean-test/src/test/resources/migrationtest/dbmigration/mysql/idx_mysql.migrations index f56552467..414065153 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 --1593712798, 1.0__initial.sql -567923852, 1.1.sql -434939997, 1.2__dropsFor_1.1.sql -1523214469, 1.3.sql --487286618, 1.4__dropsFor_1.3.sql +-1623464972, 1.0__initial.sql +-781178785, 1.1.sql +-1332434945, 1.2__dropsFor_1.1.sql +408766420, 1.3.sql +379252952, 1.4__dropsFor_1.3.sql 561281075, R__order_views.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 index 584c09874..4dcd2ae9f 100644 --- 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 @@ -180,6 +180,17 @@ create table migtest_e_history2_history( 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; +lock tables migtest_e_history2 write; +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$$ +unlock tables; create table migtest_e_history3_history( id integer, @@ -188,6 +199,17 @@ create table migtest_e_history3_history( 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; +lock tables migtest_e_history3 write; +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$$ +unlock tables; create table migtest_e_history4_history( id integer, @@ -196,6 +218,17 @@ create table migtest_e_history4_history( 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; +lock tables migtest_e_history4 write; +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; create table migtest_e_history5_history( id integer, @@ -204,6 +237,17 @@ create table migtest_e_history5_history( 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; +lock tables migtest_e_history5 write; +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; create table migtest_e_history6_history( id integer, @@ -213,6 +257,17 @@ create table migtest_e_history6_history( 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; +lock tables migtest_e_history6 write; +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$$ +unlock tables; -- foreign keys and indices create index ix_migtest_fk_cascade_one_id on migtest_fk_cascade (one_id); @@ -226,49 +281,3 @@ alter table migtest_e_basic add constraint fk_migtest_e_basic_eref_id foreign ke create index ix_migtest_e_basic_indextest1 on migtest_e_basic (indextest1); create index ix_migtest_e_basic_indextest5 on migtest_e_basic (indextest5); --- apply history trigger -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 index fa6a97be3..951b8635a 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/mysql55/1.1.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/mysql55/1.1.sql @@ -6,10 +6,6 @@ alter table migtest_e_basic drop index uq_migtest_e_basic_indextest2; alter table migtest_e_basic drop index uq_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; -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, @@ -42,6 +38,18 @@ insert into migtest_e_user (id) select distinct user_id from migtest_e_basic; -- NOTE: table has @History - special migration may be necessary update migtest_e_history2 set test_string = 'unknown' where test_string is null; +drop trigger migtest_e_history2_history_upd; +drop trigger migtest_e_history2_history_del; +drop view migtest_e_history2_with_history; +drop trigger migtest_e_history3_history_upd; +drop trigger migtest_e_history3_history_del; +drop view migtest_e_history3_with_history; +drop trigger migtest_e_history4_history_upd; +drop trigger migtest_e_history4_history_del; +drop view migtest_e_history4_with_history; +drop trigger migtest_e_history5_history_upd; +drop trigger migtest_e_history5_history_del; +drop view migtest_e_history5_with_history; -- NOTE: table has @History - special migration may be necessary update migtest_e_history6 set test_number1 = 42 where test_number1 is null; @@ -91,8 +99,67 @@ create table migtest_e_history_history( 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; +lock tables migtest_e_history write; +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$$ +unlock tables; alter table migtest_e_history comment = 'We have history now'; +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; +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$$ +unlock tables; +create view migtest_e_history3_with_history as select * from migtest_e_history3 union all select * from migtest_e_history3_history; +lock tables migtest_e_history3 write; +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$$ +unlock tables; +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_history4 write; +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; +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_history5 write; +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; -- foreign keys and indices 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; @@ -122,72 +189,3 @@ alter table migtest_oto_child add constraint fk_migtest_oto_child_master_id fore create index ix_migtest_e_basic_indextest3 on migtest_e_basic (indextest3); create index ix_migtest_e_basic_indextest6 on migtest_e_basic (indextest6); --- apply history view -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; - --- apply history trigger -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 index 714f28069..47dc655fd 100644 --- 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 @@ -1,6 +1,8 @@ -- Migrationscripts for ebean unittest --- drop dependencies -drop view if exists migtest_e_history2_with_history; +-- apply changes +drop trigger migtest_e_history2_history_upd; +drop trigger migtest_e_history2_history_del; +drop view migtest_e_history2_with_history; -- apply alter tables CALL usp_ebean_drop_column('migtest_e_basic', 'description_file'); CALL usp_ebean_drop_column('migtest_e_basic', 'old_boolean'); @@ -11,15 +13,8 @@ CALL usp_ebean_drop_column('migtest_e_history2', 'obsolete_string2'); CALL usp_ebean_drop_column('migtest_e_history2_history', 'obsolete_string1'); CALL usp_ebean_drop_column('migtest_e_history2_history', 'obsolete_string2'); -- apply post alter -drop table if exists migtest_e_ref; --- apply history view create view migtest_e_history2_with_history as select * from migtest_e_history2 union all select * from migtest_e_history2_history; - --- apply history trigger 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); @@ -30,3 +25,4 @@ create trigger migtest_e_history2_history_del before delete on migtest_e_history 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; +drop table if exists migtest_e_ref; 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 index 55e12654c..8d28ec00a 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/mysql55/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/mysql55/1.3.sql @@ -13,9 +13,6 @@ alter table migtest_e_basic drop index uq_migtest_e_basic_indextest4; alter table migtest_e_basic drop index uq_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; -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, @@ -28,6 +25,15 @@ create table migtest_e_ref ( update migtest_e_basic set status2 = 'N' where status2 is null; update migtest_e_basic set user_id = 23 where user_id is null; +drop trigger migtest_e_history2_history_upd; +drop trigger migtest_e_history2_history_del; +drop view migtest_e_history2_with_history; +drop trigger migtest_e_history3_history_upd; +drop trigger migtest_e_history3_history_del; +drop view migtest_e_history3_with_history; +drop trigger migtest_e_history4_history_upd; +drop trigger migtest_e_history4_history_del; +drop view migtest_e_history4_with_history; -- NOTE: table has @History - special migration may be necessary update migtest_e_history6 set test_number2 = 7 where test_number2 is null; @@ -52,6 +58,42 @@ alter table migtest_e_history6 modify test_number2 integer not null default 7; 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 = ''; +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; +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$$ +unlock tables; +create view migtest_e_history3_with_history as select * from migtest_e_history3 union all select * from migtest_e_history3_history; +lock tables migtest_e_history3 write; +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$$ +unlock tables; +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_history4 write; +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; 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); -- foreign keys and indices @@ -64,49 +106,3 @@ 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); --- apply history view -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; - --- apply history trigger -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 index f02e1d3e7..0cde3c7b2 100644 --- 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 @@ -5,8 +5,13 @@ drop trigger migtest_e_history_history_del; drop view migtest_e_history_with_history; 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 +drop trigger migtest_e_history2_history_upd; +drop trigger migtest_e_history2_history_del; +drop view migtest_e_history2_with_history; +drop trigger migtest_e_history5_history_upd; +drop trigger migtest_e_history5_history_del; +drop view migtest_e_history5_with_history; -- apply alter tables CALL usp_ebean_drop_column('migtest_ckey_detail', 'one_key'); CALL usp_ebean_drop_column('migtest_ckey_detail', 'two_key'); @@ -29,20 +34,8 @@ 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'); -- apply post alter -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; --- apply history view 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; - --- apply history trigger -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; +lock tables migtest_e_history2 write; 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); @@ -52,9 +45,9 @@ 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; +unlock tables; +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_history5 write; 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); @@ -65,3 +58,7 @@ create trigger migtest_e_history5_history_del before delete on migtest_e_history 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; +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/mysql55/idx_mysql.migrations b/ebean-test/src/test/resources/migrationtest/dbmigration/mysql55/idx_mysql.migrations index 1206ec256..85fbea0b1 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/mysql55/idx_mysql.migrations +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/mysql55/idx_mysql.migrations @@ -1,8 +1,8 @@ 1835064798, I__create_procs.sql --1722692121, 1.0__initial.sql -567923852, 1.1.sql -434939997, 1.2__dropsFor_1.1.sql -1523214469, 1.3.sql --487286618, 1.4__dropsFor_1.3.sql +529930619, 1.0__initial.sql +-781178785, 1.1.sql +-1332434945, 1.2__dropsFor_1.1.sql +408766420, 1.3.sql +379252952, 1.4__dropsFor_1.3.sql 561281075, R__order_views.sql From 197bb0509a114c8bd10118e59a94eaad0332b211 Mon Sep 17 00:00:00 2001 From: Roland Praml Date: Mon, 14 Mar 2022 14:05:42 +0100 Subject: [PATCH 090/114] Nuodb: no effective ddl change --- .../dbmigration/nuodb/1.0__initial.sql | 93 +++++----- .../migrationtest/dbmigration/nuodb/1.1.sql | 172 +++++++++--------- .../dbmigration/nuodb/1.2__dropsFor_1.1.sql | 16 +- .../migrationtest/dbmigration/nuodb/1.3.sql | 46 ++--- .../dbmigration/nuodb/1.4__dropsFor_1.3.sql | 31 ++-- .../dbmigration/nuodb/idx_nuodb.migrations | 10 +- 6 files changed, 170 insertions(+), 198 deletions(-) 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 index c1f425d97..c02698fb4 100644 --- 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 @@ -183,53 +183,6 @@ create table migtest_e_history2_history( 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; - -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; - -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; - -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; - -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; - --- foreign keys and indices -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); - -create index ix_migtest_e_basic_indextest1 on migtest_e_basic (indextest1); -create index ix_migtest_e_basic_indextest5 on migtest_e_basic (indextest5); --- apply history trigger 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)); @@ -243,6 +196,14 @@ create or replace trigger migtest_e_history2_history_del for migtest_e_history2 end_trigger; $$ + +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; 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)); @@ -256,6 +217,14 @@ create or replace trigger migtest_e_history3_history_del for migtest_e_history3 end_trigger; $$ + +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; 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)); @@ -269,6 +238,14 @@ create or replace trigger migtest_e_history4_history_del for migtest_e_history4 end_trigger; $$ + +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; 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)); @@ -282,6 +259,15 @@ create or replace trigger migtest_e_history5_history_del for migtest_e_history5 end_trigger; $$ + +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_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)); @@ -295,3 +281,16 @@ create or replace trigger migtest_e_history6_history_del for migtest_e_history6 end_trigger; $$ + +-- foreign keys and indices +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); + +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/nuodb/1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/nuodb/1.1.sql index 280a3c93a..9f15579ce 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 @@ -9,10 +9,6 @@ alter table migtest_e_basic drop constraint uq_migtest_e_basic_indextest6; alter table migtest_e_enum drop constraint ck_migtest_e_enum_test_status; drop index if exists ix_migtest_e_basic_indextest1; drop index if exists ix_migtest_e_basic_indextest5; -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, @@ -45,6 +41,18 @@ insert into migtest_e_user (id) select distinct user_id from migtest_e_basic; -- NOTE: table has @History - special migration may be necessary update migtest_e_history2 set test_string = 'unknown' where test_string is null; +drop trigger migtest_e_history2_history_upd; +drop trigger migtest_e_history2_history_del; +drop view migtest_e_history2_with_history; +drop trigger migtest_e_history3_history_upd; +drop trigger migtest_e_history3_history_del; +drop view migtest_e_history3_with_history; +drop trigger migtest_e_history4_history_upd; +drop trigger migtest_e_history4_history_del; +drop view migtest_e_history4_with_history; +drop trigger migtest_e_history5_history_upd; +drop trigger migtest_e_history5_history_del; +drop view migtest_e_history5_with_history; -- NOTE: table has @History - special migration may be necessary update migtest_e_history6 set test_number1 = 42 where test_number1 is null; @@ -101,6 +109,75 @@ create table migtest_e_history_history( 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; +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; +$$ + + +create view migtest_e_history2_with_history as select * from migtest_e_history2 union all select * from migtest_e_history2_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, 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; +$$ + +create view migtest_e_history3_with_history as select * from migtest_e_history3 union all select * from migtest_e_history3_history; +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; +$$ + +create view migtest_e_history4_with_history as select * from migtest_e_history4 union all select * from migtest_e_history4_history; +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; +$$ + +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_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; +$$ -- foreign keys and indices create index ix_migtest_mtm_c_migtest_mtm_m_migtest_mtm_c on migtest_mtm_c_migtest_mtm_m (migtest_mtm_c_id); @@ -131,90 +208,3 @@ alter table migtest_oto_child add constraint fk_migtest_oto_child_master_id fore create index ix_migtest_e_basic_indextest3 on migtest_e_basic (indextest3); create index ix_migtest_e_basic_indextest6 on migtest_e_basic (indextest6); --- apply history view -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; - --- apply history trigger -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 index e9a580609..092105623 100644 --- 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 @@ -1,6 +1,8 @@ -- Migrationscripts for ebean unittest --- drop dependencies -drop view if exists migtest_e_history2_with_history; +-- apply changes +drop trigger migtest_e_history2_history_upd; +drop trigger migtest_e_history2_history_del; +drop view migtest_e_history2_with_history; -- apply alter tables alter table migtest_e_basic drop column description_file; alter table migtest_e_basic drop column old_boolean; @@ -11,15 +13,7 @@ alter table migtest_e_history2 drop column obsolete_string2; alter table migtest_e_history2_history drop column obsolete_string1; alter table migtest_e_history2_history drop column obsolete_string2; -- apply post alter -drop table if exists migtest_e_ref; -drop sequence if exists migtest_e_ref_seq; --- apply history view create view migtest_e_history2_with_history as select * from migtest_e_history2 union all select * from migtest_e_history2_history; - --- apply history trigger --- 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)); @@ -33,3 +27,5 @@ create or replace trigger migtest_e_history2_history_del for migtest_e_history2 end_trigger; $$ +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/nuodb/1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/nuodb/1.3.sql index 14325fff2..3b67a3d66 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/nuodb/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/nuodb/1.3.sql @@ -16,9 +16,6 @@ alter table migtest_e_basic drop constraint uq_migtest_e_basic_indextest5; alter table migtest_e_enum drop constraint ck_migtest_e_enum_test_status; drop index if exists ix_migtest_e_basic_indextest3; drop index if exists ix_migtest_e_basic_indextest6; -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, @@ -31,6 +28,15 @@ create table migtest_e_ref ( update migtest_e_basic set status2 = 'N' where status2 is null; update migtest_e_basic set user_id = 23 where user_id is null; +drop trigger migtest_e_history2_history_upd; +drop trigger migtest_e_history2_history_del; +drop view migtest_e_history2_with_history; +drop trigger migtest_e_history3_history_upd; +drop trigger migtest_e_history3_history_del; +drop view migtest_e_history3_with_history; +drop trigger migtest_e_history4_history_upd; +drop trigger migtest_e_history4_history_del; +drop view migtest_e_history4_with_history; -- NOTE: table has @History - special migration may be necessary update migtest_e_history6 set test_number2 = 7 where test_number2 is null; @@ -64,25 +70,7 @@ alter table migtest_e_basic add constraint ck_migtest_e_basic_status2 check ( st 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 add constraint ck_migtest_e_enum_test_status check ( test_status in ('N','A','I')); --- foreign keys and indices -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_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); - -create index ix_migtest_e_basic_indextest1 on migtest_e_basic (indextest1); -create index ix_migtest_e_basic_indextest5 on migtest_e_basic (indextest5); --- apply history view 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; - --- apply history trigger --- 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)); @@ -96,9 +84,7 @@ create or replace trigger migtest_e_history2_history_del for migtest_e_history2 end_trigger; $$ --- changes: [include test_string] -drop trigger migtest_e_history3_history_upd; -drop trigger migtest_e_history3_history_del; +create view migtest_e_history3_with_history as select * from migtest_e_history3 union all select * from migtest_e_history3_history; 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)); @@ -112,9 +98,7 @@ create or replace trigger migtest_e_history3_history_del for migtest_e_history3 end_trigger; $$ --- changes: [alter test_number] -drop trigger migtest_e_history4_history_upd; -drop trigger migtest_e_history4_history_del; +create view migtest_e_history4_with_history as select * from migtest_e_history4 union all select * from migtest_e_history4_history; 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)); @@ -128,3 +112,11 @@ create or replace trigger migtest_e_history4_history_del for migtest_e_history4 end_trigger; $$ +-- foreign keys and indices +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_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); + +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/nuodb/1.4__dropsFor_1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/nuodb/1.4__dropsFor_1.3.sql index 3164bea0d..feeb1d7cf 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 @@ -5,8 +5,13 @@ drop trigger migtest_e_history_history_del; drop view migtest_e_history_with_history; 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 +drop trigger migtest_e_history2_history_upd; +drop trigger migtest_e_history2_history_del; +drop view migtest_e_history2_with_history; +drop trigger migtest_e_history5_history_upd; +drop trigger migtest_e_history5_history_del; +drop view migtest_e_history5_with_history; -- apply alter tables alter table migtest_ckey_detail drop column one_key; alter table migtest_ckey_detail drop column two_key; @@ -29,20 +34,7 @@ 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; -- apply post alter -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; --- apply history view 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; - --- apply history trigger --- 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)); @@ -56,9 +48,7 @@ create or replace trigger migtest_e_history2_history_del for migtest_e_history2 end_trigger; $$ --- changes: [drop test_boolean] -drop trigger migtest_e_history5_history_upd; -drop trigger migtest_e_history5_history_del; +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_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)); @@ -72,3 +62,8 @@ create or replace trigger migtest_e_history5_history_del for migtest_e_history5 end_trigger; $$ +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/nuodb/idx_nuodb.migrations b/ebean-test/src/test/resources/migrationtest/dbmigration/nuodb/idx_nuodb.migrations index 1737ab36f..35f9cbc70 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 @@ --2130050389, 1.0__initial.sql --575692842, 1.1.sql --1790075022, 1.2__dropsFor_1.1.sql --1755422280, 1.3.sql -782350608, 1.4__dropsFor_1.3.sql +1041350610, 1.0__initial.sql +-87564347, 1.1.sql +-424253630, 1.2__dropsFor_1.1.sql +-258639752, 1.3.sql +-1189704269, 1.4__dropsFor_1.3.sql 561281075, R__order_views.sql From 9e16d955ae4804a657b12b4dd44ab35fe7040d7a Mon Sep 17 00:00:00 2001 From: Roland Praml Date: Mon, 14 Mar 2022 14:06:25 +0100 Subject: [PATCH 091/114] Sqlserver: no effective code change --- .../dbmigration/sqlserver16/1.0__initial.sql | 27 +++++++++---------- .../dbmigration/sqlserver16/1.1.sql | 26 +++++++++++------- .../sqlserver16/1.2__dropsFor_1.1.sql | 4 +++ .../dbmigration/sqlserver16/1.3.sql | 13 ++++++--- .../sqlserver16/1.4__dropsFor_1.3.sql | 6 +++++ .../sqlserver16/idx_sqlserver.migrations | 10 +++---- .../dbmigration/sqlserver17/1.0__initial.sql | 27 +++++++++---------- .../dbmigration/sqlserver17/1.1.sql | 26 +++++++++++------- .../sqlserver17/1.2__dropsFor_1.1.sql | 4 +++ .../dbmigration/sqlserver17/1.3.sql | 13 ++++++--- .../sqlserver17/1.4__dropsFor_1.3.sql | 6 +++++ .../sqlserver17/idx_sqlserver.migrations | 10 +++---- 12 files changed, 108 insertions(+), 64 deletions(-) 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 index 8b975af10..48167f522 100644 --- 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 @@ -162,20 +162,6 @@ create table migtest_oto_master ( -- apply post alter 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; -alter table migtest_e_ref add constraint uq_migtest_e_ref_name unique (name); --- foreign keys and indices -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); - -create index ix_migtest_e_basic_indextest1 on migtest_e_basic (indextest1); -create index ix_migtest_e_basic_indextest5 on migtest_e_basic (indextest5); --- apply history view 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', @@ -201,3 +187,16 @@ alter table migtest_e_history6 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)); +alter table migtest_e_ref add constraint uq_migtest_e_ref_name unique (name); +-- foreign keys and indices +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); + +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/sqlserver16/1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/1.1.sql index 4732b7402..729bcf3e2 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/1.1.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/1.1.sql @@ -43,6 +43,18 @@ insert into migtest_e_user (id) select distinct user_id from migtest_e_basic; -- 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 set (system_versioning = off (history_table=dbo.migtest_e_history2_history)); +-- history migration goes here +-- alter table migtest_e_history2 set (system_versioning = on (history_table=dbo.migtest_e_history2_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)); +-- alter table migtest_e_history4 set (system_versioning = off (history_table=dbo.migtest_e_history4_history)); +-- history migration goes here +-- alter table migtest_e_history4 set (system_versioning = on (history_table=dbo.migtest_e_history4_history)); +-- alter table migtest_e_history5 set (system_versioning = off (history_table=dbo.migtest_e_history5_history)); +-- history migration goes here +-- alter table migtest_e_history5 set (system_versioning = on (history_table=dbo.migtest_e_history5_history)); -- NOTE: table has @History - special migration may be necessary update migtest_e_history6 set test_number1 = 42 where test_number1 is null; @@ -87,6 +99,11 @@ create unique nonclustered index uq_migtest_e_basic_status_indextest1 on migtest 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; +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)); -- foreign keys and indices 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); @@ -116,12 +133,3 @@ alter table migtest_oto_child add constraint fk_migtest_oto_child_master_id fore create index ix_migtest_e_basic_indextest3 on migtest_e_basic (indextest3); create index ix_migtest_e_basic_indextest6 on migtest_e_basic (indextest6); --- apply history view -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/sqlserver16/1.2__dropsFor_1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/1.2__dropsFor_1.1.sql index a5695632f..36fa8d503 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/1.2__dropsFor_1.1.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/1.2__dropsFor_1.1.sql @@ -1,4 +1,8 @@ -- Migrationscripts for ebean unittest +-- apply changes +-- alter table migtest_e_history2 set (system_versioning = off (history_table=dbo.migtest_e_history2_history)); +-- history migration goes here +-- alter table migtest_e_history2 set (system_versioning = on (history_table=dbo.migtest_e_history2_history)); -- apply alter tables EXEC usp_ebean_drop_column migtest_e_basic, description_file; EXEC usp_ebean_drop_column migtest_e_basic, old_boolean; 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 index 3d209befa..6e366f802 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/1.3.sql @@ -32,6 +32,15 @@ create table migtest_e_ref ( update migtest_e_basic set status2 = 'N' where status2 is null; update migtest_e_basic set user_id = 23 where user_id is null; +-- alter table migtest_e_history2 set (system_versioning = off (history_table=dbo.migtest_e_history2_history)); +-- history migration goes here +-- alter table migtest_e_history2 set (system_versioning = on (history_table=dbo.migtest_e_history2_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)); +-- alter table migtest_e_history4 set (system_versioning = off (history_table=dbo.migtest_e_history4_history)); +-- history migration goes here +-- alter table migtest_e_history4 set (system_versioning = on (history_table=dbo.migtest_e_history4_history)); -- NOTE: table has @History - special migration may be necessary update migtest_e_history6 set test_number2 = 7 where test_number2 is null; @@ -73,7 +82,3 @@ alter table migtest_e_basic add constraint fk_migtest_e_basic_eref_id foreign ke create index ix_migtest_e_basic_indextest1 on migtest_e_basic (indextest1); create index ix_migtest_e_basic_indextest5 on migtest_e_basic (indextest5); --- apply history view --- 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/sqlserver16/1.4__dropsFor_1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/1.4__dropsFor_1.3.sql index 74e4a30ab..00b08667c 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/1.4__dropsFor_1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/1.4__dropsFor_1.3.sql @@ -4,6 +4,12 @@ alter table migtest_e_history set (system_versioning = off); alter table migtest_e_history drop period for system_time; +-- alter table migtest_e_history2 set (system_versioning = off (history_table=dbo.migtest_e_history2_history)); +-- history migration goes here +-- alter table migtest_e_history2 set (system_versioning = on (history_table=dbo.migtest_e_history2_history)); +-- alter table migtest_e_history5 set (system_versioning = off (history_table=dbo.migtest_e_history5_history)); +-- history migration goes here +-- alter table migtest_e_history5 set (system_versioning = on (history_table=dbo.migtest_e_history5_history)); -- apply alter tables EXEC usp_ebean_drop_column migtest_ckey_detail, one_key; EXEC usp_ebean_drop_column migtest_ckey_detail, two_key; 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 index 86d986e00..8739b5795 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/idx_sqlserver.migrations +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/idx_sqlserver.migrations @@ -1,8 +1,8 @@ -2122378240, I__create_procs.sql --105831629, 1.0__initial.sql --904775438, 1.1.sql -1481869712, 1.2__dropsFor_1.1.sql -1426896311, 1.3.sql -1582941540, 1.4__dropsFor_1.3.sql +1067515901, 1.0__initial.sql +-2109871331, 1.1.sql +-1687762822, 1.2__dropsFor_1.1.sql +1214882237, 1.3.sql +-410961452, 1.4__dropsFor_1.3.sql 1607822082, R__order_views_mssql.sql diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/1.0__initial.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/1.0__initial.sql index 47f1754f0..069b3ceff 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/1.0__initial.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/1.0__initial.sql @@ -184,20 +184,6 @@ create sequence migtest_oto_master_seq as bigint start with 1; -- apply post alter 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; -alter table migtest_e_ref add constraint uq_migtest_e_ref_name unique (name); --- foreign keys and indices -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); - -create index ix_migtest_e_basic_indextest1 on migtest_e_basic (indextest1); -create index ix_migtest_e_basic_indextest5 on migtest_e_basic (indextest5); --- apply history view 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', @@ -223,3 +209,16 @@ alter table migtest_e_history6 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)); +alter table migtest_e_ref add constraint uq_migtest_e_ref_name unique (name); +-- foreign keys and indices +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); + +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/sqlserver17/1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/1.1.sql index a71c6aff3..3af1e9633 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/1.1.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/1.1.sql @@ -44,6 +44,18 @@ insert into migtest_e_user (id) select distinct user_id from migtest_e_basic; -- 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 set (system_versioning = off (history_table=dbo.migtest_e_history2_history)); +-- history migration goes here +-- alter table migtest_e_history2 set (system_versioning = on (history_table=dbo.migtest_e_history2_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)); +-- alter table migtest_e_history4 set (system_versioning = off (history_table=dbo.migtest_e_history4_history)); +-- history migration goes here +-- alter table migtest_e_history4 set (system_versioning = on (history_table=dbo.migtest_e_history4_history)); +-- alter table migtest_e_history5 set (system_versioning = off (history_table=dbo.migtest_e_history5_history)); +-- history migration goes here +-- alter table migtest_e_history5 set (system_versioning = on (history_table=dbo.migtest_e_history5_history)); -- NOTE: table has @History - special migration may be necessary update migtest_e_history6 set test_number1 = 42 where test_number1 is null; @@ -88,6 +100,11 @@ create unique nonclustered index uq_migtest_e_basic_status_indextest1 on migtest 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; +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)); -- foreign keys and indices 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); @@ -117,12 +134,3 @@ alter table migtest_oto_child add constraint fk_migtest_oto_child_master_id fore create index ix_migtest_e_basic_indextest3 on migtest_e_basic (indextest3); create index ix_migtest_e_basic_indextest6 on migtest_e_basic (indextest6); --- apply history view -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/sqlserver17/1.2__dropsFor_1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/1.2__dropsFor_1.1.sql index a5695632f..36fa8d503 100644 --- 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 @@ -1,4 +1,8 @@ -- Migrationscripts for ebean unittest +-- apply changes +-- alter table migtest_e_history2 set (system_versioning = off (history_table=dbo.migtest_e_history2_history)); +-- history migration goes here +-- alter table migtest_e_history2 set (system_versioning = on (history_table=dbo.migtest_e_history2_history)); -- apply alter tables EXEC usp_ebean_drop_column migtest_e_basic, description_file; EXEC usp_ebean_drop_column migtest_e_basic, old_boolean; diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/1.3.sql index 1c2359c77..edb2749e6 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/1.3.sql @@ -33,6 +33,15 @@ create sequence migtest_e_ref_seq as bigint start with 1; update migtest_e_basic set status2 = 'N' where status2 is null; update migtest_e_basic set user_id = 23 where user_id is null; +-- alter table migtest_e_history2 set (system_versioning = off (history_table=dbo.migtest_e_history2_history)); +-- history migration goes here +-- alter table migtest_e_history2 set (system_versioning = on (history_table=dbo.migtest_e_history2_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)); +-- alter table migtest_e_history4 set (system_versioning = off (history_table=dbo.migtest_e_history4_history)); +-- history migration goes here +-- alter table migtest_e_history4 set (system_versioning = on (history_table=dbo.migtest_e_history4_history)); -- NOTE: table has @History - special migration may be necessary update migtest_e_history6 set test_number2 = 7 where test_number2 is null; @@ -74,7 +83,3 @@ alter table migtest_e_basic add constraint fk_migtest_e_basic_eref_id foreign ke create index ix_migtest_e_basic_indextest1 on migtest_e_basic (indextest1); create index ix_migtest_e_basic_indextest5 on migtest_e_basic (indextest5); --- apply history view --- 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/sqlserver17/1.4__dropsFor_1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/1.4__dropsFor_1.3.sql index 74e4a30ab..00b08667c 100644 --- 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 @@ -4,6 +4,12 @@ alter table migtest_e_history set (system_versioning = off); alter table migtest_e_history drop period for system_time; +-- alter table migtest_e_history2 set (system_versioning = off (history_table=dbo.migtest_e_history2_history)); +-- history migration goes here +-- alter table migtest_e_history2 set (system_versioning = on (history_table=dbo.migtest_e_history2_history)); +-- alter table migtest_e_history5 set (system_versioning = off (history_table=dbo.migtest_e_history5_history)); +-- history migration goes here +-- alter table migtest_e_history5 set (system_versioning = on (history_table=dbo.migtest_e_history5_history)); -- apply alter tables EXEC usp_ebean_drop_column migtest_ckey_detail, one_key; EXEC usp_ebean_drop_column migtest_ckey_detail, two_key; diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/idx_sqlserver.migrations b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/idx_sqlserver.migrations index c544ae3d2..5efab7d68 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/idx_sqlserver.migrations +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/idx_sqlserver.migrations @@ -1,8 +1,8 @@ -2122378240, I__create_procs.sql --520898185, 1.0__initial.sql -339251767, 1.1.sql -1481869712, 1.2__dropsFor_1.1.sql --2072392503, 1.3.sql -1582941540, 1.4__dropsFor_1.3.sql +-1941282829, 1.0__initial.sql +-2026784932, 1.1.sql +-1687762822, 1.2__dropsFor_1.1.sql +-627698384, 1.3.sql +-410961452, 1.4__dropsFor_1.3.sql 1607822082, R__order_views_mssql.sql From 5b8bb41598b6a832690a8d7626ea170248edf295 Mon Sep 17 00:00:00 2001 From: Roland Praml Date: Mon, 14 Mar 2022 14:08:42 +0100 Subject: [PATCH 092/114] Postgres: Drops history support during alter and restores it after that --- .../dbmigration/postgres/1.0__initial.sql | 57 ++--- .../dbmigration/postgres/1.1.sql | 242 ++++++++++-------- .../postgres/1.2__dropsFor_1.1.sql | 19 +- .../dbmigration/postgres/1.3.sql | 61 +++-- .../postgres/1.4__dropsFor_1.3.sql | 37 ++- .../postgres/idx_postgres.migrations | 10 +- .../dbmigration/postgres9/1.0__initial.sql | 57 ++--- .../dbmigration/postgres9/1.1.sql | 242 ++++++++++-------- .../postgres9/1.2__dropsFor_1.1.sql | 19 +- .../dbmigration/postgres9/1.3.sql | 61 +++-- .../postgres9/1.4__dropsFor_1.3.sql | 37 ++- .../postgres9/idx_postgres.migrations | 10 +- .../dbmigration/yugabyte/1.0__initial.sql | 85 +++--- .../dbmigration/yugabyte/1.1.sql | 242 ++++++++++-------- .../yugabyte/1.2__dropsFor_1.1.sql | 19 +- .../dbmigration/yugabyte/1.3.sql | 55 ++-- .../yugabyte/1.4__dropsFor_1.3.sql | 37 ++- .../yugabyte/idx_yugabyte.migrations | 10 +- 18 files changed, 713 insertions(+), 587 deletions(-) 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 ae003966b..f8dcf1b54 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 @@ -171,35 +171,6 @@ alter table migtest_e_history6 add column sys_period tstzrange not null default -- apply post alter 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; - -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; - -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; - -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; - -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; - --- foreign keys and indices -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; - -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)); --- apply history trigger create or replace function migtest_e_history2_history_version() returns trigger as $$ declare lowerTs timestamptz; @@ -222,6 +193,9 @@ 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 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; create or replace function migtest_e_history3_history_version() returns trigger as $$ declare lowerTs timestamptz; @@ -244,6 +218,9 @@ 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 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; create or replace function migtest_e_history4_history_version() returns trigger as $$ declare lowerTs timestamptz; @@ -266,6 +243,9 @@ 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 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; create or replace function migtest_e_history5_history_version() returns trigger as $$ declare lowerTs timestamptz; @@ -288,6 +268,9 @@ 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 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_history6_history_version() returns trigger as $$ declare lowerTs timestamptz; @@ -310,3 +293,19 @@ 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(); + +-- foreign keys and indices +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; + +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)); 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 b585cc248..a04a4d1b2 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 @@ -12,10 +12,6 @@ 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; -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, @@ -50,6 +46,22 @@ alter table migtest_e_history alter column test_string TYPE bigint USING (test_s -- NOTE: table has @History - special migration may be necessary update migtest_e_history2 set test_string = 'unknown' where test_string is null; +drop trigger if exists migtest_e_history2_history_upd on migtest_e_history2 cascade; +drop function if exists migtest_e_history2_history_version(); + +drop view migtest_e_history2_with_history; +drop trigger if exists migtest_e_history3_history_upd on migtest_e_history3 cascade; +drop function if exists migtest_e_history3_history_version(); + +drop view migtest_e_history3_with_history; +drop trigger if exists migtest_e_history4_history_upd on migtest_e_history4 cascade; +drop function if exists migtest_e_history4_history_version(); + +drop view migtest_e_history4_with_history; +drop trigger if exists migtest_e_history5_history_upd on migtest_e_history5 cascade; +drop function if exists migtest_e_history5_history_version(); + +drop view migtest_e_history5_with_history; -- NOTE: table has @History - special migration may be necessary update migtest_e_history6 set test_number1 = 42 where test_number1 is null; @@ -100,9 +112,123 @@ alter table migtest_e_basic add constraint uq_migtest_e_basic_indextest4 unique alter table migtest_e_basic add constraint uq_migtest_e_basic_indextest5 unique (indextest5); 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 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(); + comment on column migtest_e_history.test_string is 'Column altered to long now'; comment on table migtest_e_history is 'We have history now'; +create view migtest_e_history2_with_history as select * from migtest_e_history2 union all select * from migtest_e_history2_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, 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; + +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 view migtest_e_history3_with_history as select * from migtest_e_history3 union all select * from migtest_e_history3_history; +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; + +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 view migtest_e_history4_with_history as select * from migtest_e_history4 union all select * from migtest_e_history4_history; +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 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_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; + +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(); + -- foreign keys and indices 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; @@ -133,111 +259,3 @@ alter table migtest_oto_child add constraint fk_migtest_oto_child_master_id fore 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); --- apply history view -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; - --- apply history trigger -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 index f3eb208a1..a9fef454c 100644 --- 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 @@ -1,6 +1,9 @@ -- Migrationscripts for ebean unittest --- drop dependencies -drop view if exists migtest_e_history2_with_history; +-- apply changes +drop trigger if exists migtest_e_history2_history_upd on migtest_e_history2 cascade; +drop function if exists migtest_e_history2_history_version(); + +drop view migtest_e_history2_with_history; -- apply alter tables alter table migtest_e_basic drop column description_file; alter table migtest_e_basic drop column old_boolean; @@ -11,13 +14,7 @@ alter table migtest_e_history2 drop column obsolete_string2; alter table migtest_e_history2_history drop column obsolete_string1; alter table migtest_e_history2_history drop column obsolete_string2; -- apply post alter -drop table if exists migtest_e_ref cascade; -drop sequence if exists migtest_e_ref_seq; --- apply history view create view migtest_e_history2_with_history as select * from migtest_e_history2 union all select * from migtest_e_history2_history; - --- apply history trigger --- changes: [drop obsolete_string1, drop obsolete_string2] create or replace function migtest_e_history2_history_version() returns trigger as $$ declare lowerTs timestamptz; @@ -36,3 +33,9 @@ begin 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(); + +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/postgres/1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/postgres/1.3.sql index 3d0f451f9..eb67a9670 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 @@ -16,9 +16,6 @@ alter table migtest_e_basic drop constraint uq_migtest_e_basic_indextest5; alter table migtest_e_enum drop constraint if exists ck_migtest_e_enum_test_status; drop index if exists ix_migtest_e_basic_indextest3; drop index if exists ix_migtest_e_basic_indextest6; -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, @@ -31,6 +28,18 @@ create table migtest_e_ref ( update migtest_e_basic set status2 = 'N' where status2 is null; update migtest_e_basic set user_id = 23 where user_id is null; +drop trigger if exists migtest_e_history2_history_upd on migtest_e_history2 cascade; +drop function if exists migtest_e_history2_history_version(); + +drop view migtest_e_history2_with_history; +drop trigger if exists migtest_e_history3_history_upd on migtest_e_history3 cascade; +drop function if exists migtest_e_history3_history_version(); + +drop view migtest_e_history3_with_history; +drop trigger if exists migtest_e_history4_history_upd on migtest_e_history4 cascade; +drop function if exists migtest_e_history4_history_version(); + +drop view migtest_e_history4_with_history; -- NOTE: table has @History - special migration may be necessary update migtest_e_history6 set test_number2 = 7 where test_number2 is null; @@ -66,26 +75,7 @@ alter table migtest_e_basic add constraint uq_migtest_e_basic_indextest6 unique 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 ''; --- foreign keys and indices -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_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; - -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)); --- apply history view 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; - --- apply history trigger --- changes: [add obsolete_string1, add obsolete_string2] create or replace function migtest_e_history2_history_version() returns trigger as $$ declare lowerTs timestamptz; @@ -104,7 +94,11 @@ begin end; $$ LANGUAGE plpgsql; --- changes: [include test_string] +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 view migtest_e_history3_with_history as select * from migtest_e_history3 union all select * from migtest_e_history3_history; create or replace function migtest_e_history3_history_version() returns trigger as $$ declare lowerTs timestamptz; @@ -123,7 +117,11 @@ begin end; $$ LANGUAGE plpgsql; --- changes: [alter test_number] +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 view migtest_e_history4_with_history as select * from migtest_e_history4 union all select * from migtest_e_history4_history; create or replace function migtest_e_history4_history_version() returns trigger as $$ declare lowerTs timestamptz; @@ -142,3 +140,18 @@ begin 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(); + +-- foreign keys and indices +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_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; + +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)); 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 bea42a3cf..822e9f61a 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 @@ -6,8 +6,15 @@ drop function if exists migtest_e_history_history_version(); drop view migtest_e_history_with_history; 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 +drop trigger if exists migtest_e_history2_history_upd on migtest_e_history2 cascade; +drop function if exists migtest_e_history2_history_version(); + +drop view migtest_e_history2_with_history; +drop trigger if exists migtest_e_history5_history_upd on migtest_e_history5 cascade; +drop function if exists migtest_e_history5_history_version(); + +drop view migtest_e_history5_with_history; -- apply alter tables alter table migtest_ckey_detail drop column one_key; alter table migtest_ckey_detail drop column two_key; @@ -29,18 +36,7 @@ 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; -- apply post alter -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; --- apply history view 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; - --- apply history trigger --- 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; @@ -59,7 +55,11 @@ begin end; $$ LANGUAGE plpgsql; --- changes: [drop test_boolean] +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 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_history5_history_version() returns trigger as $$ declare lowerTs timestamptz; @@ -78,3 +78,12 @@ begin 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(); + +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/postgres/idx_postgres.migrations b/ebean-test/src/test/resources/migrationtest/dbmigration/postgres/idx_postgres.migrations index 784ddf976..54ec929dc 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 @@ -1040369575, 1.0__initial.sql -45294494, 1.1.sql -1770819182, 1.2__dropsFor_1.1.sql --223959883, 1.3.sql -739723472, 1.4__dropsFor_1.3.sql +-125847545, 1.0__initial.sql +1782158364, 1.1.sql +-1098989118, 1.2__dropsFor_1.1.sql +-1852757328, 1.3.sql +1729345905, 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/postgres9/1.0__initial.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/postgres9/1.0__initial.sql index 6ab514bf2..b64178f90 100644 --- 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 @@ -171,35 +171,6 @@ alter table migtest_e_history6 add column sys_period tstzrange not null default -- apply post alter 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; - -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; - -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; - -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; - -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; - --- foreign keys and indices -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; - -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)); --- apply history trigger create or replace function migtest_e_history2_history_version() returns trigger as $$ declare lowerTs timestamptz; @@ -222,6 +193,9 @@ 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 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; create or replace function migtest_e_history3_history_version() returns trigger as $$ declare lowerTs timestamptz; @@ -244,6 +218,9 @@ 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 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; create or replace function migtest_e_history4_history_version() returns trigger as $$ declare lowerTs timestamptz; @@ -266,6 +243,9 @@ 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 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; create or replace function migtest_e_history5_history_version() returns trigger as $$ declare lowerTs timestamptz; @@ -288,6 +268,9 @@ 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 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_history6_history_version() returns trigger as $$ declare lowerTs timestamptz; @@ -310,3 +293,19 @@ 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(); + +-- foreign keys and indices +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; + +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)); 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 index dbace0ad1..7f0aa76ec 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/postgres9/1.1.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/postgres9/1.1.sql @@ -12,10 +12,6 @@ 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; -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, @@ -50,6 +46,22 @@ alter table migtest_e_history alter column test_string TYPE bigint USING (test_s -- NOTE: table has @History - special migration may be necessary update migtest_e_history2 set test_string = 'unknown' where test_string is null; +drop trigger if exists migtest_e_history2_history_upd on migtest_e_history2 cascade; +drop function if exists migtest_e_history2_history_version(); + +drop view migtest_e_history2_with_history; +drop trigger if exists migtest_e_history3_history_upd on migtest_e_history3 cascade; +drop function if exists migtest_e_history3_history_version(); + +drop view migtest_e_history3_with_history; +drop trigger if exists migtest_e_history4_history_upd on migtest_e_history4 cascade; +drop function if exists migtest_e_history4_history_version(); + +drop view migtest_e_history4_with_history; +drop trigger if exists migtest_e_history5_history_upd on migtest_e_history5 cascade; +drop function if exists migtest_e_history5_history_version(); + +drop view migtest_e_history5_with_history; -- NOTE: table has @History - special migration may be necessary update migtest_e_history6 set test_number1 = 42 where test_number1 is null; @@ -100,9 +112,123 @@ alter table migtest_e_basic add constraint uq_migtest_e_basic_indextest4 unique alter table migtest_e_basic add constraint uq_migtest_e_basic_indextest5 unique (indextest5); 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 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(); + comment on column migtest_e_history.test_string is 'Column altered to long now'; comment on table migtest_e_history is 'We have history now'; +create view migtest_e_history2_with_history as select * from migtest_e_history2 union all select * from migtest_e_history2_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, 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; + +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 view migtest_e_history3_with_history as select * from migtest_e_history3 union all select * from migtest_e_history3_history; +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; + +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 view migtest_e_history4_with_history as select * from migtest_e_history4 union all select * from migtest_e_history4_history; +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 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_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; + +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(); + -- foreign keys and indices 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; @@ -133,111 +259,3 @@ alter table migtest_oto_child add constraint fk_migtest_oto_child_master_id fore 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); --- apply history view -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; - --- apply history trigger -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 index f3eb208a1..a9fef454c 100644 --- 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 @@ -1,6 +1,9 @@ -- Migrationscripts for ebean unittest --- drop dependencies -drop view if exists migtest_e_history2_with_history; +-- apply changes +drop trigger if exists migtest_e_history2_history_upd on migtest_e_history2 cascade; +drop function if exists migtest_e_history2_history_version(); + +drop view migtest_e_history2_with_history; -- apply alter tables alter table migtest_e_basic drop column description_file; alter table migtest_e_basic drop column old_boolean; @@ -11,13 +14,7 @@ alter table migtest_e_history2 drop column obsolete_string2; alter table migtest_e_history2_history drop column obsolete_string1; alter table migtest_e_history2_history drop column obsolete_string2; -- apply post alter -drop table if exists migtest_e_ref cascade; -drop sequence if exists migtest_e_ref_seq; --- apply history view create view migtest_e_history2_with_history as select * from migtest_e_history2 union all select * from migtest_e_history2_history; - --- apply history trigger --- changes: [drop obsolete_string1, drop obsolete_string2] create or replace function migtest_e_history2_history_version() returns trigger as $$ declare lowerTs timestamptz; @@ -36,3 +33,9 @@ begin 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(); + +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/postgres9/1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/postgres9/1.3.sql index 0f24e4551..c1215359c 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/postgres9/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/postgres9/1.3.sql @@ -16,9 +16,6 @@ alter table migtest_e_basic drop constraint uq_migtest_e_basic_indextest5; alter table migtest_e_enum drop constraint if exists ck_migtest_e_enum_test_status; drop index if exists ix_migtest_e_basic_indextest3; drop index if exists ix_migtest_e_basic_indextest6; -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, @@ -31,6 +28,18 @@ create table migtest_e_ref ( update migtest_e_basic set status2 = 'N' where status2 is null; update migtest_e_basic set user_id = 23 where user_id is null; +drop trigger if exists migtest_e_history2_history_upd on migtest_e_history2 cascade; +drop function if exists migtest_e_history2_history_version(); + +drop view migtest_e_history2_with_history; +drop trigger if exists migtest_e_history3_history_upd on migtest_e_history3 cascade; +drop function if exists migtest_e_history3_history_version(); + +drop view migtest_e_history3_with_history; +drop trigger if exists migtest_e_history4_history_upd on migtest_e_history4 cascade; +drop function if exists migtest_e_history4_history_version(); + +drop view migtest_e_history4_with_history; -- NOTE: table has @History - special migration may be necessary update migtest_e_history6 set test_number2 = 7 where test_number2 is null; @@ -66,26 +75,7 @@ alter table migtest_e_basic add constraint uq_migtest_e_basic_indextest6 unique 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 ''; --- foreign keys and indices -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_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; - -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)); --- apply history view 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; - --- apply history trigger --- changes: [add obsolete_string1, add obsolete_string2] create or replace function migtest_e_history2_history_version() returns trigger as $$ declare lowerTs timestamptz; @@ -104,7 +94,11 @@ begin end; $$ LANGUAGE plpgsql; --- changes: [include test_string] +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 view migtest_e_history3_with_history as select * from migtest_e_history3 union all select * from migtest_e_history3_history; create or replace function migtest_e_history3_history_version() returns trigger as $$ declare lowerTs timestamptz; @@ -123,7 +117,11 @@ begin end; $$ LANGUAGE plpgsql; --- changes: [alter test_number] +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 view migtest_e_history4_with_history as select * from migtest_e_history4 union all select * from migtest_e_history4_history; create or replace function migtest_e_history4_history_version() returns trigger as $$ declare lowerTs timestamptz; @@ -142,3 +140,18 @@ begin 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(); + +-- foreign keys and indices +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_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; + +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)); 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 index bea42a3cf..822e9f61a 100644 --- 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 @@ -6,8 +6,15 @@ drop function if exists migtest_e_history_history_version(); drop view migtest_e_history_with_history; 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 +drop trigger if exists migtest_e_history2_history_upd on migtest_e_history2 cascade; +drop function if exists migtest_e_history2_history_version(); + +drop view migtest_e_history2_with_history; +drop trigger if exists migtest_e_history5_history_upd on migtest_e_history5 cascade; +drop function if exists migtest_e_history5_history_version(); + +drop view migtest_e_history5_with_history; -- apply alter tables alter table migtest_ckey_detail drop column one_key; alter table migtest_ckey_detail drop column two_key; @@ -29,18 +36,7 @@ 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; -- apply post alter -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; --- apply history view 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; - --- apply history trigger --- 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; @@ -59,7 +55,11 @@ begin end; $$ LANGUAGE plpgsql; --- changes: [drop test_boolean] +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 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_history5_history_version() returns trigger as $$ declare lowerTs timestamptz; @@ -78,3 +78,12 @@ begin 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(); + +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/postgres9/idx_postgres.migrations b/ebean-test/src/test/resources/migrationtest/dbmigration/postgres9/idx_postgres.migrations index 89cdeaa30..78bf4574e 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/postgres9/idx_postgres.migrations +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/postgres9/idx_postgres.migrations @@ -1,8 +1,8 @@ -1333804171, 1.0__initial.sql --1691146639, 1.1.sql -1770819182, 1.2__dropsFor_1.1.sql -1654255380, 1.3.sql -739723472, 1.4__dropsFor_1.3.sql +-1050466540, 1.0__initial.sql +-480020430, 1.1.sql +-1098989118, 1.2__dropsFor_1.1.sql +-762160636, 1.3.sql +1729345905, 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/yugabyte/1.0__initial.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/yugabyte/1.0__initial.sql index ff8393190..e804f6651 100644 --- 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 @@ -177,49 +177,6 @@ create table migtest_e_history2_history( sys_period tstzrange ); create view migtest_e_history2_with_history as select * from migtest_e_history2 union all select * from migtest_e_history2_history; - -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; - -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; - -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; - -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; - --- foreign keys and indices -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; - -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); --- apply history trigger create or replace function migtest_e_history2_history_version() returns trigger as $$ declare lowerTs timestamptz; @@ -242,6 +199,13 @@ 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 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; create or replace function migtest_e_history3_history_version() returns trigger as $$ declare lowerTs timestamptz; @@ -264,6 +228,13 @@ 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 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; create or replace function migtest_e_history4_history_version() returns trigger as $$ declare lowerTs timestamptz; @@ -286,6 +257,13 @@ 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 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; create or replace function migtest_e_history5_history_version() returns trigger as $$ declare lowerTs timestamptz; @@ -308,6 +286,14 @@ 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 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_history6_history_version() returns trigger as $$ declare lowerTs timestamptz; @@ -330,3 +316,16 @@ 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(); + +-- foreign keys and indices +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; + +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); 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 6fbffe731..4d431443b 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 @@ -9,10 +9,6 @@ alter table migtest_e_basic drop constraint uq_migtest_e_basic_indextest6; alter table migtest_e_enum drop constraint if exists ck_migtest_e_enum_test_status; drop index if exists ix_migtest_e_basic_indextest1; drop index if exists ix_migtest_e_basic_indextest5; -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, @@ -45,6 +41,22 @@ insert into migtest_e_user (id) select distinct user_id from migtest_e_basic; -- NOTE: table has @History - special migration may be necessary update migtest_e_history2 set test_string = 'unknown' where test_string is null; +drop trigger if exists migtest_e_history2_history_upd on migtest_e_history2 cascade; +drop function if exists migtest_e_history2_history_version(); + +drop view migtest_e_history2_with_history; +drop trigger if exists migtest_e_history3_history_upd on migtest_e_history3 cascade; +drop function if exists migtest_e_history3_history_version(); + +drop view migtest_e_history3_with_history; +drop trigger if exists migtest_e_history4_history_upd on migtest_e_history4 cascade; +drop function if exists migtest_e_history4_history_version(); + +drop view migtest_e_history4_with_history; +drop trigger if exists migtest_e_history5_history_upd on migtest_e_history5 cascade; +drop function if exists migtest_e_history5_history_version(); + +drop view migtest_e_history5_with_history; -- NOTE: table has @History - special migration may be necessary update migtest_e_history6 set test_number1 = 42 where test_number1 is null; @@ -99,9 +111,123 @@ create table migtest_e_history_history( 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 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(); + comment on column migtest_e_history.test_string is 'Column altered to long now'; comment on table migtest_e_history is 'We have history now'; +create view migtest_e_history2_with_history as select * from migtest_e_history2 union all select * from migtest_e_history2_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, 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; + +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 view migtest_e_history3_with_history as select * from migtest_e_history3 union all select * from migtest_e_history3_history; +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; + +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 view migtest_e_history4_with_history as select * from migtest_e_history4 union all select * from migtest_e_history4_history; +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 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_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; + +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(); + -- foreign keys and indices 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; @@ -131,111 +257,3 @@ alter table migtest_oto_child add constraint fk_migtest_oto_child_master_id fore 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); --- apply history view -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; - --- apply history trigger -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 index f3eb208a1..a9fef454c 100644 --- 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 @@ -1,6 +1,9 @@ -- Migrationscripts for ebean unittest --- drop dependencies -drop view if exists migtest_e_history2_with_history; +-- apply changes +drop trigger if exists migtest_e_history2_history_upd on migtest_e_history2 cascade; +drop function if exists migtest_e_history2_history_version(); + +drop view migtest_e_history2_with_history; -- apply alter tables alter table migtest_e_basic drop column description_file; alter table migtest_e_basic drop column old_boolean; @@ -11,13 +14,7 @@ alter table migtest_e_history2 drop column obsolete_string2; alter table migtest_e_history2_history drop column obsolete_string1; alter table migtest_e_history2_history drop column obsolete_string2; -- apply post alter -drop table if exists migtest_e_ref cascade; -drop sequence if exists migtest_e_ref_seq; --- apply history view create view migtest_e_history2_with_history as select * from migtest_e_history2 union all select * from migtest_e_history2_history; - --- apply history trigger --- changes: [drop obsolete_string1, drop obsolete_string2] create or replace function migtest_e_history2_history_version() returns trigger as $$ declare lowerTs timestamptz; @@ -36,3 +33,9 @@ begin 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(); + +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/yugabyte/1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/yugabyte/1.3.sql index df3848efc..8ceab575a 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/yugabyte/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/yugabyte/1.3.sql @@ -16,9 +16,6 @@ alter table migtest_e_basic drop constraint uq_migtest_e_basic_indextest5; alter table migtest_e_enum drop constraint if exists ck_migtest_e_enum_test_status; drop index if exists ix_migtest_e_basic_indextest3; drop index if exists ix_migtest_e_basic_indextest6; -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, @@ -31,6 +28,18 @@ create table migtest_e_ref ( update migtest_e_basic set status2 = 'N' where status2 is null; update migtest_e_basic set user_id = 23 where user_id is null; +drop trigger if exists migtest_e_history2_history_upd on migtest_e_history2 cascade; +drop function if exists migtest_e_history2_history_version(); + +drop view migtest_e_history2_with_history; +drop trigger if exists migtest_e_history3_history_upd on migtest_e_history3 cascade; +drop function if exists migtest_e_history3_history_version(); + +drop view migtest_e_history3_with_history; +drop trigger if exists migtest_e_history4_history_upd on migtest_e_history4 cascade; +drop function if exists migtest_e_history4_history_version(); + +drop view migtest_e_history4_with_history; -- NOTE: table has @History - special migration may be necessary update migtest_e_history6 set test_number2 = 7 where test_number2 is null; @@ -66,23 +75,7 @@ alter table migtest_e_basic add constraint uq_migtest_e_basic_indextest6 unique 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 ''; --- foreign keys and indices -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_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; - -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); --- apply history view 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; - --- apply history trigger --- changes: [add obsolete_string1, add obsolete_string2] create or replace function migtest_e_history2_history_version() returns trigger as $$ declare lowerTs timestamptz; @@ -101,7 +94,11 @@ begin end; $$ LANGUAGE plpgsql; --- changes: [include test_string] +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 view migtest_e_history3_with_history as select * from migtest_e_history3 union all select * from migtest_e_history3_history; create or replace function migtest_e_history3_history_version() returns trigger as $$ declare lowerTs timestamptz; @@ -120,7 +117,11 @@ begin end; $$ LANGUAGE plpgsql; --- changes: [alter test_number] +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 view migtest_e_history4_with_history as select * from migtest_e_history4 union all select * from migtest_e_history4_history; create or replace function migtest_e_history4_history_version() returns trigger as $$ declare lowerTs timestamptz; @@ -139,3 +140,15 @@ begin 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(); + +-- foreign keys and indices +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_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; + +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); 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 bea42a3cf..822e9f61a 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 @@ -6,8 +6,15 @@ drop function if exists migtest_e_history_history_version(); drop view migtest_e_history_with_history; 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 +drop trigger if exists migtest_e_history2_history_upd on migtest_e_history2 cascade; +drop function if exists migtest_e_history2_history_version(); + +drop view migtest_e_history2_with_history; +drop trigger if exists migtest_e_history5_history_upd on migtest_e_history5 cascade; +drop function if exists migtest_e_history5_history_version(); + +drop view migtest_e_history5_with_history; -- apply alter tables alter table migtest_ckey_detail drop column one_key; alter table migtest_ckey_detail drop column two_key; @@ -29,18 +36,7 @@ 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; -- apply post alter -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; --- apply history view 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; - --- apply history trigger --- 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; @@ -59,7 +55,11 @@ begin end; $$ LANGUAGE plpgsql; --- changes: [drop test_boolean] +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 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_history5_history_version() returns trigger as $$ declare lowerTs timestamptz; @@ -78,3 +78,12 @@ begin 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(); + +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/yugabyte/idx_yugabyte.migrations b/ebean-test/src/test/resources/migrationtest/dbmigration/yugabyte/idx_yugabyte.migrations index ceed1a0fb..cf1a79ac0 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 @@ -1260183516, 1.0__initial.sql -1193452475, 1.1.sql -1770819182, 1.2__dropsFor_1.1.sql -456034327, 1.3.sql -739723472, 1.4__dropsFor_1.3.sql +-1111753161, 1.0__initial.sql +-794033493, 1.1.sql +-1098989118, 1.2__dropsFor_1.1.sql +1468123571, 1.3.sql +1729345905, 1.4__dropsFor_1.3.sql 561281075, R__order_views.sql From 610a8b2df6ded4b564c351c29b4da86bc8e68a5c Mon Sep 17 00:00:00 2001 From: Roland Praml Date: Mon, 14 Mar 2022 14:13:10 +0100 Subject: [PATCH 093/114] FIX: notNull -> null transition must be applied also to history --- .../ddlgeneration/platform/BaseTableDdl.java | 2 +- .../dbmigration/hana/1.0__initial.sql | 26 +++++++-------- .../migrationtest/dbmigration/hana/1.1.sql | 33 +++++++++---------- .../migrationtest/dbmigration/hana/1.3.sql | 5 ++- .../dbmigration/hana/idx_hana.migrations | 6 ++-- 5 files changed, 34 insertions(+), 38 deletions(-) diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/BaseTableDdl.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/BaseTableDdl.java index ba9776f41..cef2edc92 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/BaseTableDdl.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/BaseTableDdl.java @@ -757,7 +757,7 @@ public class BaseTableDdl implements TableDdl { if (isTrue(alter.isWithHistory())) { // we will apply only type changes or notNull -> null transition - boolean isNull = false; // TODO: Boolean.FALSE.equals(alter.isNotnull()); + boolean isNull = Boolean.FALSE.equals(alter.isNotnull()); boolean applyToHistory = alter.getType() != null || isNull; if (applyToHistory) { platformDdl.regenerateHistoryTriggers(writer, alter.getTableName()); 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 index ef35b959a..8e9d37fd1 100644 --- 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 @@ -163,19 +163,7 @@ create column table migtest_oto_master ( ); -- apply alter tables --- foreign keys and indices --- 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; - --- 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; --- apply history view +-- apply post alter create column table migtest_e_history2_history ( id integer, test_string nvarchar(255), @@ -239,3 +227,15 @@ alter table migtest_e_history6 add ( ); 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; +-- foreign keys and indices +-- 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; + +-- 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; 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 85c0c0c24..ba37717eb 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 @@ -80,17 +80,17 @@ update migtest_e_basic set status = 'A' where status is null; -- rename all collisions; insert into migtest_e_user (id) select distinct user_id from migtest_e_basic; -alter table migtest_e_history2 drop system versioning; -- 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 drop system versioning; alter table migtest_e_history3 drop system versioning; alter table migtest_e_history4 drop system versioning; alter table migtest_e_history5 drop system versioning; -alter table migtest_e_history6 drop system versioning; -- 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 drop system versioning; -- apply alter tables alter table migtest_ckey_detail add (one_key integer, two_key nvarchar(127)); @@ -108,7 +108,6 @@ alter table migtest_e_history2 alter (test_string nvarchar(255) default 'unknown alter table migtest_e_history2 add (test_string2 nvarchar(255), test_string3 nvarchar(255) default 'unknown' not null, new_column nvarchar(20)); -alter table migtest_e_history2_history alter (test_string nvarchar(255) default 'unknown' not null); alter table migtest_e_history2_history add (test_string2 nvarchar(255), test_string3 nvarchar(255) default 'unknown', new_column nvarchar(20)); @@ -118,8 +117,7 @@ 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_history6 alter (test_number1 integer default 42 not null, test_number2 integer); -alter table migtest_e_history6_history alter (test_number1 integer default 42 not null, - test_number2 integer); +alter table migtest_e_history6_history alter (test_number2 integer); alter table migtest_e_softdelete add (deleted boolean default false not null); alter table migtest_oto_child add (master_id bigint); -- apply post alter @@ -133,6 +131,18 @@ alter table migtest_e_basic add constraint ck_migtest_e_basic_progress check ( p -- 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; +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; comment on column migtest_e_history.test_string is 'Column altered to long now'; comment on table migtest_e_history is 'We have history now'; alter table migtest_e_history2 add system versioning history table migtest_e_history2_history not validated; @@ -169,16 +179,3 @@ alter table migtest_oto_child add constraint fk_migtest_oto_child_master_id fore -- 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; --- apply history view -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.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/hana/1.3.sql index 00e190b9c..15a9882c9 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/hana/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/hana/1.3.sql @@ -107,7 +107,7 @@ alter table migtest_e_basic add (description_file blob, alter table migtest_e_history2 alter (test_string nvarchar(255) default null); alter table migtest_e_history2 add (obsolete_string1 nvarchar(255), obsolete_string2 nvarchar(255)); -alter table migtest_e_history2_history alter (test_string nvarchar(255) default null); +alter table migtest_e_history2_history alter (test_string nvarchar(255)); alter table migtest_e_history2_history add (obsolete_string1 nvarchar(255), obsolete_string2 nvarchar(255)); alter table migtest_e_history4 alter (test_number decimal); @@ -116,8 +116,7 @@ alter table migtest_e_history4_history alter (test_number decimal); alter table migtest_e_history4_history alter (test_number integer); alter table migtest_e_history6 alter (test_number1 integer default null, test_number2 integer default 7 not null); -alter table migtest_e_history6_history alter (test_number1 integer default null, - test_number2 integer default 7 not null); +alter table migtest_e_history6_history alter (test_number1 integer); -- apply post alter alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I')); alter table migtest_e_basic add constraint ck_migtest_e_basic_status2 check ( status2 in ('N','A','I')); 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 5c4367d3b..56cd1a76d 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,8 +1,8 @@ -745347271, I__create_procs.sql -1671978053, 1.0__initial.sql -945235204, 1.1.sql +881849401, 1.0__initial.sql +-1990555725, 1.1.sql 197547825, 1.2__dropsFor_1.1.sql -1030116997, 1.3.sql +1338960395, 1.3.sql 1812245353, 1.4__dropsFor_1.3.sql 1906063401, R__order_views_hana.sql From 4d62958645f0f7166e62ed4ea84f5c79d18802f1 Mon Sep 17 00:00:00 2001 From: Roland Praml Date: Mon, 14 Mar 2022 14:13:56 +0100 Subject: [PATCH 094/114] Updated DDL scripts to support notnull -> null transitions --- .../dbmigration/1.0__initial.sql | 3 +- .../migrationtest/dbmigration/h2/1.1.sql | 5 ++++ .../migrationtest/dbmigration/h2/1.3.sql | 6 ++++ .../dbmigration/h2/idx_h2.migrations | 4 +-- .../migrationtest/dbmigration/mysql/1.1.sql | 16 ++++++++++ .../migrationtest/dbmigration/mysql/1.3.sql | 17 +++++++++++ .../dbmigration/mysql/idx_mysql.migrations | 4 +-- .../migrationtest/dbmigration/mysql55/1.1.sql | 16 ++++++++++ .../migrationtest/dbmigration/mysql55/1.3.sql | 17 +++++++++++ .../dbmigration/mysql55/idx_mysql.migrations | 4 +-- .../migrationtest/dbmigration/nuodb/1.1.sql | 18 ++++++++++++ .../migrationtest/dbmigration/nuodb/1.3.sql | 19 ++++++++++++ .../dbmigration/nuodb/idx_nuodb.migrations | 4 +-- .../dbmigration/postgres/1.1.sql | 28 ++++++++++++++++++ .../dbmigration/postgres/1.3.sql | 29 +++++++++++++++++++ .../postgres/idx_postgres.migrations | 4 +-- .../dbmigration/postgres9/1.1.sql | 28 ++++++++++++++++++ .../dbmigration/postgres9/1.3.sql | 29 +++++++++++++++++++ .../postgres9/idx_postgres.migrations | 4 +-- .../dbmigration/sqlserver16/1.1.sql | 3 ++ .../dbmigration/sqlserver16/1.3.sql | 3 ++ .../sqlserver16/idx_sqlserver.migrations | 4 +-- .../dbmigration/sqlserver17/1.1.sql | 3 ++ .../dbmigration/sqlserver17/1.3.sql | 3 ++ .../sqlserver17/idx_sqlserver.migrations | 4 +-- .../dbmigration/yugabyte/1.1.sql | 28 ++++++++++++++++++ .../dbmigration/yugabyte/1.3.sql | 29 +++++++++++++++++++ .../yugabyte/idx_yugabyte.migrations | 4 +-- 28 files changed, 316 insertions(+), 20 deletions(-) diff --git a/ebean-test/src/test/resources/migrationtest-history/dbmigration/1.0__initial.sql b/ebean-test/src/test/resources/migrationtest-history/dbmigration/1.0__initial.sql index 43a438d07..6c49b58a9 100644 --- a/ebean-test/src/test/resources/migrationtest-history/dbmigration/1.0__initial.sql +++ b/ebean-test/src/test/resources/migrationtest-history/dbmigration/1.0__initial.sql @@ -15,6 +15,5 @@ create table migtest_e_history7_history( 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; - --- apply history trigger 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/migrationtest/dbmigration/h2/1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/h2/1.1.sql index de2cdb548..a26867c07 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 @@ -52,6 +52,8 @@ drop view migtest_e_history5_with_history; -- NOTE: table has @History - special migration may be necessary update migtest_e_history6 set test_number1 = 42 where test_number1 is null; +drop trigger migtest_e_history6_history_upd; +drop view migtest_e_history6_with_history; -- apply alter tables alter table migtest_ckey_detail add column one_key integer; alter table migtest_ckey_detail add column two_key varchar(127); @@ -85,6 +87,7 @@ alter table migtest_e_history5_history add column test_boolean boolean default f 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_history6_history 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; -- apply post alter @@ -117,6 +120,8 @@ create view migtest_e_history4_with_history as select * from migtest_e_history4 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 view migtest_e_history5_with_history as select * from migtest_e_history5 union all select * from migtest_e_history5_history; 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 view migtest_e_history6_with_history as select * from migtest_e_history6 union all select * from migtest_e_history6_history; +create trigger migtest_e_history6_history_upd before update,delete on migtest_e_history6 for each row call "io.ebean.config.dbplatform.h2.H2HistoryTrigger"; -- foreign keys and indices 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; 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 index 0a8be48a4..2b911cdd1 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/h2/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/h2/1.3.sql @@ -34,6 +34,8 @@ drop trigger migtest_e_history3_history_upd; drop view migtest_e_history3_with_history; drop trigger migtest_e_history4_history_upd; drop view migtest_e_history4_with_history; +drop trigger migtest_e_history6_history_upd; +drop view migtest_e_history6_with_history; -- NOTE: table has @History - special migration may be necessary update migtest_e_history6 set test_number2 = 7 where test_number2 is null; @@ -53,6 +55,7 @@ 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 alter column test_string set null; 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; @@ -61,6 +64,7 @@ alter table migtest_e_history6 alter column test_number1 drop default; alter table migtest_e_history6 alter column test_number1 set 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; +alter table migtest_e_history6_history alter column test_number1 set null; -- apply post alter alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I')); alter table migtest_e_basic add constraint ck_migtest_e_basic_status2 check ( status2 in ('N','A','I')); @@ -75,6 +79,8 @@ create view migtest_e_history3_with_history as select * from migtest_e_history3 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 view migtest_e_history4_with_history as select * from migtest_e_history4 union all select * from migtest_e_history4_history; 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 view migtest_e_history6_with_history as select * from migtest_e_history6 union all select * from migtest_e_history6_history; +create trigger migtest_e_history6_history_upd before update,delete on migtest_e_history6 for each row call "io.ebean.config.dbplatform.h2.H2HistoryTrigger"; -- foreign keys and indices 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_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; 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 049ac027a..f9f669fc2 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,7 +1,7 @@ 1200492722, 1.0__initial.sql -374062636, 1.1.sql +-475634933, 1.1.sql -1366392410, 1.2__dropsFor_1.1.sql -1367061136, 1.3.sql +-323346059, 1.3.sql -1382108238, 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/mysql/1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/mysql/1.1.sql index 951b8635a..01f05b8c1 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 @@ -53,6 +53,9 @@ drop view migtest_e_history5_with_history; -- NOTE: table has @History - special migration may be necessary update migtest_e_history6 set test_number1 = 42 where test_number1 is null; +drop trigger migtest_e_history6_history_upd; +drop trigger migtest_e_history6_history_del; +drop view migtest_e_history6_with_history; -- apply alter tables alter table migtest_ckey_detail add column one_key integer; alter table migtest_ckey_detail add column two_key varchar(127); @@ -81,6 +84,7 @@ alter table migtest_e_history5 add column test_boolean tinyint(1) default 0 not alter table migtest_e_history5_history add column test_boolean tinyint(1) default 0; alter table migtest_e_history6 modify test_number1 integer not null default 42; alter table migtest_e_history6 modify test_number2 integer; +alter table migtest_e_history6_history 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; -- apply post alter @@ -160,6 +164,18 @@ create trigger migtest_e_history5_history_del before delete on migtest_e_history 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; +create view migtest_e_history6_with_history as select * from migtest_e_history6 union all select * from migtest_e_history6_history; +lock tables migtest_e_history6 write; +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$$ +unlock tables; -- foreign keys and indices 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; 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 index 8d28ec00a..95c5ae773 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/mysql/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/mysql/1.3.sql @@ -34,6 +34,9 @@ drop view migtest_e_history3_with_history; drop trigger migtest_e_history4_history_upd; drop trigger migtest_e_history4_history_del; drop view migtest_e_history4_with_history; +drop trigger migtest_e_history6_history_upd; +drop trigger migtest_e_history6_history_del; +drop view migtest_e_history6_with_history; -- NOTE: table has @History - special migration may be necessary update migtest_e_history6 set test_number2 = 7 where test_number2 is null; @@ -48,12 +51,14 @@ alter table migtest_e_basic add column eref_id integer; 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 modify test_string 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 modify test_number1 integer; alter table migtest_e_history6 modify test_number2 integer not null default 7; +alter table migtest_e_history6_history modify test_number1 integer; -- apply post alter 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); @@ -94,6 +99,18 @@ create trigger migtest_e_history4_history_del before delete on migtest_e_history 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; +create view migtest_e_history6_with_history as select * from migtest_e_history6 union all select * from migtest_e_history6_history; +lock tables migtest_e_history6 write; +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$$ +unlock tables; 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); -- foreign keys and indices 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 414065153..193b5ec78 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 -1623464972, 1.0__initial.sql --781178785, 1.1.sql +-882132850, 1.1.sql -1332434945, 1.2__dropsFor_1.1.sql -408766420, 1.3.sql +-1085730419, 1.3.sql 379252952, 1.4__dropsFor_1.3.sql 561281075, R__order_views.sql 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 index 951b8635a..01f05b8c1 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/mysql55/1.1.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/mysql55/1.1.sql @@ -53,6 +53,9 @@ drop view migtest_e_history5_with_history; -- NOTE: table has @History - special migration may be necessary update migtest_e_history6 set test_number1 = 42 where test_number1 is null; +drop trigger migtest_e_history6_history_upd; +drop trigger migtest_e_history6_history_del; +drop view migtest_e_history6_with_history; -- apply alter tables alter table migtest_ckey_detail add column one_key integer; alter table migtest_ckey_detail add column two_key varchar(127); @@ -81,6 +84,7 @@ alter table migtest_e_history5 add column test_boolean tinyint(1) default 0 not alter table migtest_e_history5_history add column test_boolean tinyint(1) default 0; alter table migtest_e_history6 modify test_number1 integer not null default 42; alter table migtest_e_history6 modify test_number2 integer; +alter table migtest_e_history6_history 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; -- apply post alter @@ -160,6 +164,18 @@ create trigger migtest_e_history5_history_del before delete on migtest_e_history 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; +create view migtest_e_history6_with_history as select * from migtest_e_history6 union all select * from migtest_e_history6_history; +lock tables migtest_e_history6 write; +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$$ +unlock tables; -- foreign keys and indices 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; 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 index 8d28ec00a..95c5ae773 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/mysql55/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/mysql55/1.3.sql @@ -34,6 +34,9 @@ drop view migtest_e_history3_with_history; drop trigger migtest_e_history4_history_upd; drop trigger migtest_e_history4_history_del; drop view migtest_e_history4_with_history; +drop trigger migtest_e_history6_history_upd; +drop trigger migtest_e_history6_history_del; +drop view migtest_e_history6_with_history; -- NOTE: table has @History - special migration may be necessary update migtest_e_history6 set test_number2 = 7 where test_number2 is null; @@ -48,12 +51,14 @@ alter table migtest_e_basic add column eref_id integer; 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 modify test_string 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 modify test_number1 integer; alter table migtest_e_history6 modify test_number2 integer not null default 7; +alter table migtest_e_history6_history modify test_number1 integer; -- apply post alter 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); @@ -94,6 +99,18 @@ create trigger migtest_e_history4_history_del before delete on migtest_e_history 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; +create view migtest_e_history6_with_history as select * from migtest_e_history6 union all select * from migtest_e_history6_history; +lock tables migtest_e_history6 write; +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$$ +unlock tables; 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); -- foreign keys and indices 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 index 85fbea0b1..d54a870ed 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/mysql55/idx_mysql.migrations +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/mysql55/idx_mysql.migrations @@ -1,8 +1,8 @@ 1835064798, I__create_procs.sql 529930619, 1.0__initial.sql --781178785, 1.1.sql +-882132850, 1.1.sql -1332434945, 1.2__dropsFor_1.1.sql -408766420, 1.3.sql +-1085730419, 1.3.sql 379252952, 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 9f15579ce..c7bf4e1f3 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 @@ -56,6 +56,9 @@ drop view migtest_e_history5_with_history; -- NOTE: table has @History - special migration may be necessary update migtest_e_history6 set test_number1 = 42 where test_number1 is null; +drop trigger migtest_e_history6_history_upd; +drop trigger migtest_e_history6_history_del; +drop view migtest_e_history6_with_history; -- apply alter tables alter table migtest_ckey_detail add column one_key integer; alter table migtest_ckey_detail add column two_key varchar(127); @@ -89,6 +92,7 @@ alter table migtest_e_history5_history add column test_boolean boolean default f 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_history6_history 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; -- apply post alter @@ -179,6 +183,20 @@ create or replace trigger migtest_e_history5_history_del for migtest_e_history5 end_trigger; $$ +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_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; +$$ + -- foreign keys and indices 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); 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 index 3b67a3d66..8c28ad2ad 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/nuodb/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/nuodb/1.3.sql @@ -37,6 +37,9 @@ drop view migtest_e_history3_with_history; drop trigger migtest_e_history4_history_upd; drop trigger migtest_e_history4_history_del; drop view migtest_e_history4_with_history; +drop trigger migtest_e_history6_history_upd; +drop trigger migtest_e_history6_history_del; +drop view migtest_e_history6_with_history; -- NOTE: table has @History - special migration may be necessary update migtest_e_history6 set test_number2 = 7 where test_number2 is null; @@ -56,6 +59,7 @@ 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 alter column test_string set null; 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; @@ -64,6 +68,7 @@ alter table migtest_e_history6 alter column test_number1 drop default; alter table migtest_e_history6 alter column test_number1 set 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; +alter table migtest_e_history6_history alter column test_number1 set null; -- apply post alter alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I')); alter table migtest_e_basic add constraint ck_migtest_e_basic_status2 check ( status2 in ('N','A','I')); @@ -112,6 +117,20 @@ create or replace trigger migtest_e_history4_history_del for migtest_e_history4 end_trigger; $$ +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_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; +$$ + -- foreign keys and indices 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_set_null add constraint fk_migtest_fk_set_null_one_id foreign key (one_id) references migtest_fk_one (id); 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 35f9cbc70..716175603 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 @@ 1041350610, 1.0__initial.sql --87564347, 1.1.sql +-1144238347, 1.1.sql -424253630, 1.2__dropsFor_1.1.sql --258639752, 1.3.sql +-270701977, 1.3.sql -1189704269, 1.4__dropsFor_1.3.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 a04a4d1b2..40d28c763 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 @@ -65,6 +65,10 @@ drop view migtest_e_history5_with_history; -- NOTE: table has @History - special migration may be necessary update migtest_e_history6 set test_number1 = 42 where test_number1 is null; +drop trigger if exists migtest_e_history6_history_upd on migtest_e_history6 cascade; +drop function if exists migtest_e_history6_history_version(); + +drop view migtest_e_history6_with_history; -- apply alter tables alter table migtest_ckey_detail add column one_key integer; alter table migtest_ckey_detail add column two_key varchar(127); @@ -97,6 +101,7 @@ alter table migtest_e_history5_history add column test_boolean boolean default f 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_history6_history 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; -- apply post alter @@ -229,6 +234,29 @@ 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 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_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(); + -- foreign keys and indices 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; 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 eb67a9670..e7bdfa534 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 @@ -40,6 +40,10 @@ drop trigger if exists migtest_e_history4_history_upd on migtest_e_history4 casc drop function if exists migtest_e_history4_history_version(); drop view migtest_e_history4_with_history; +drop trigger if exists migtest_e_history6_history_upd on migtest_e_history6 cascade; +drop function if exists migtest_e_history6_history_version(); + +drop view migtest_e_history6_with_history; -- NOTE: table has @History - special migration may be necessary update migtest_e_history6 set test_number2 = 7 where test_number2 is null; @@ -59,6 +63,7 @@ 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 alter column test_string drop not null; 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; @@ -67,6 +72,7 @@ alter table migtest_e_history6 alter column test_number1 drop default; alter table migtest_e_history6 alter column test_number1 drop not 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; +alter table migtest_e_history6_history alter column test_number1 drop not null; -- apply post alter alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I')); alter table migtest_e_basic add constraint ck_migtest_e_basic_status2 check ( status2 in ('N','A','I')); @@ -144,6 +150,29 @@ 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 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_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(); + -- foreign keys and indices 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_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; 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 54ec929dc..cf0d9a090 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 @@ -125847545, 1.0__initial.sql -1782158364, 1.1.sql +-962575173, 1.1.sql -1098989118, 1.2__dropsFor_1.1.sql --1852757328, 1.3.sql +808262548, 1.3.sql 1729345905, 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.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/postgres9/1.1.sql index 7f0aa76ec..852771f46 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/postgres9/1.1.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/postgres9/1.1.sql @@ -65,6 +65,10 @@ drop view migtest_e_history5_with_history; -- NOTE: table has @History - special migration may be necessary update migtest_e_history6 set test_number1 = 42 where test_number1 is null; +drop trigger if exists migtest_e_history6_history_upd on migtest_e_history6 cascade; +drop function if exists migtest_e_history6_history_version(); + +drop view migtest_e_history6_with_history; -- apply alter tables alter table migtest_ckey_detail add column one_key integer; alter table migtest_ckey_detail add column two_key varchar(127); @@ -97,6 +101,7 @@ alter table migtest_e_history5_history add column test_boolean boolean default f 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_history6_history 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; -- apply post alter @@ -229,6 +234,29 @@ 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 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_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(); + -- foreign keys and indices 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; 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 index c1215359c..33d980263 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/postgres9/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/postgres9/1.3.sql @@ -40,6 +40,10 @@ drop trigger if exists migtest_e_history4_history_upd on migtest_e_history4 casc drop function if exists migtest_e_history4_history_version(); drop view migtest_e_history4_with_history; +drop trigger if exists migtest_e_history6_history_upd on migtest_e_history6 cascade; +drop function if exists migtest_e_history6_history_version(); + +drop view migtest_e_history6_with_history; -- NOTE: table has @History - special migration may be necessary update migtest_e_history6 set test_number2 = 7 where test_number2 is null; @@ -59,6 +63,7 @@ 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 alter column test_string drop not null; 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; @@ -67,6 +72,7 @@ alter table migtest_e_history6 alter column test_number1 drop default; alter table migtest_e_history6 alter column test_number1 drop not 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; +alter table migtest_e_history6_history alter column test_number1 drop not null; -- apply post alter alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I')); alter table migtest_e_basic add constraint ck_migtest_e_basic_status2 check ( status2 in ('N','A','I')); @@ -144,6 +150,29 @@ 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 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_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(); + -- foreign keys and indices 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_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; 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 index 78bf4574e..e9d7134dc 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/postgres9/idx_postgres.migrations +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/postgres9/idx_postgres.migrations @@ -1,7 +1,7 @@ -1050466540, 1.0__initial.sql --480020430, 1.1.sql +-976679466, 1.1.sql -1098989118, 1.2__dropsFor_1.1.sql --762160636, 1.3.sql +303027582, 1.3.sql 1729345905, 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/sqlserver16/1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/1.1.sql index 729bcf3e2..cf7074030 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/1.1.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/1.1.sql @@ -58,6 +58,9 @@ update migtest_e_history2 set test_string = 'unknown' where test_string is 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 set (system_versioning = off (history_table=dbo.migtest_e_history6_history)); +-- history migration goes here +-- alter table migtest_e_history6 set (system_versioning = on (history_table=dbo.migtest_e_history6_history)); -- apply alter tables alter table migtest_ckey_detail add one_key integer; alter table migtest_ckey_detail add two_key varchar(127); 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 index 6e366f802..1c4007cd9 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/1.3.sql @@ -41,6 +41,9 @@ update migtest_e_basic set user_id = 23 where user_id is null; -- alter table migtest_e_history4 set (system_versioning = off (history_table=dbo.migtest_e_history4_history)); -- history migration goes here -- alter table migtest_e_history4 set (system_versioning = on (history_table=dbo.migtest_e_history4_history)); +-- alter table migtest_e_history6 set (system_versioning = off (history_table=dbo.migtest_e_history6_history)); +-- history migration goes here +-- alter table migtest_e_history6 set (system_versioning = on (history_table=dbo.migtest_e_history6_history)); -- NOTE: table has @History - special migration may be necessary update migtest_e_history6 set test_number2 = 7 where test_number2 is null; 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 index 8739b5795..7c1d620b0 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/idx_sqlserver.migrations +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/idx_sqlserver.migrations @@ -1,8 +1,8 @@ -2122378240, I__create_procs.sql 1067515901, 1.0__initial.sql --2109871331, 1.1.sql +91948674, 1.1.sql -1687762822, 1.2__dropsFor_1.1.sql -1214882237, 1.3.sql +1309342689, 1.3.sql -410961452, 1.4__dropsFor_1.3.sql 1607822082, R__order_views_mssql.sql diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/1.1.sql index 3af1e9633..71a4fffce 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/1.1.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/1.1.sql @@ -59,6 +59,9 @@ update migtest_e_history2 set test_string = 'unknown' where test_string is 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 set (system_versioning = off (history_table=dbo.migtest_e_history6_history)); +-- history migration goes here +-- alter table migtest_e_history6 set (system_versioning = on (history_table=dbo.migtest_e_history6_history)); -- apply alter tables alter table migtest_ckey_detail add one_key integer; alter table migtest_ckey_detail add two_key nvarchar(127); diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/1.3.sql index edb2749e6..408cb2287 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/1.3.sql @@ -42,6 +42,9 @@ update migtest_e_basic set user_id = 23 where user_id is null; -- alter table migtest_e_history4 set (system_versioning = off (history_table=dbo.migtest_e_history4_history)); -- history migration goes here -- alter table migtest_e_history4 set (system_versioning = on (history_table=dbo.migtest_e_history4_history)); +-- alter table migtest_e_history6 set (system_versioning = off (history_table=dbo.migtest_e_history6_history)); +-- history migration goes here +-- alter table migtest_e_history6 set (system_versioning = on (history_table=dbo.migtest_e_history6_history)); -- NOTE: table has @History - special migration may be necessary update migtest_e_history6 set test_number2 = 7 where test_number2 is null; diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/idx_sqlserver.migrations b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/idx_sqlserver.migrations index 5efab7d68..26cced804 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/idx_sqlserver.migrations +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/idx_sqlserver.migrations @@ -1,8 +1,8 @@ -2122378240, I__create_procs.sql -1941282829, 1.0__initial.sql --2026784932, 1.1.sql +-60811760, 1.1.sql -1687762822, 1.2__dropsFor_1.1.sql --627698384, 1.3.sql +935437796, 1.3.sql -410961452, 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 4d431443b..c386b8e42 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 @@ -60,6 +60,10 @@ drop view migtest_e_history5_with_history; -- NOTE: table has @History - special migration may be necessary update migtest_e_history6 set test_number1 = 42 where test_number1 is null; +drop trigger if exists migtest_e_history6_history_upd on migtest_e_history6 cascade; +drop function if exists migtest_e_history6_history_version(); + +drop view migtest_e_history6_with_history; -- apply alter tables alter table migtest_ckey_detail add column one_key integer; alter table migtest_ckey_detail add column two_key varchar(127); @@ -92,6 +96,7 @@ alter table migtest_e_history5_history add column test_boolean boolean default f 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_history6_history 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; -- apply post alter @@ -228,6 +233,29 @@ 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 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_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(); + -- foreign keys and indices 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; 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 index 8ceab575a..b1630f0f1 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/yugabyte/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/yugabyte/1.3.sql @@ -40,6 +40,10 @@ drop trigger if exists migtest_e_history4_history_upd on migtest_e_history4 casc drop function if exists migtest_e_history4_history_version(); drop view migtest_e_history4_with_history; +drop trigger if exists migtest_e_history6_history_upd on migtest_e_history6 cascade; +drop function if exists migtest_e_history6_history_version(); + +drop view migtest_e_history6_with_history; -- NOTE: table has @History - special migration may be necessary update migtest_e_history6 set test_number2 = 7 where test_number2 is null; @@ -59,6 +63,7 @@ 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 alter column test_string drop not null; 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; @@ -67,6 +72,7 @@ alter table migtest_e_history6 alter column test_number1 drop default; alter table migtest_e_history6 alter column test_number1 drop not 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; +alter table migtest_e_history6_history alter column test_number1 drop not null; -- apply post alter alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I')); alter table migtest_e_basic add constraint ck_migtest_e_basic_status2 check ( status2 in ('N','A','I')); @@ -144,6 +150,29 @@ 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 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_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(); + -- foreign keys and indices 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_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; 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 cf1a79ac0..c10df2ab7 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 @@ -1111753161, 1.0__initial.sql --794033493, 1.1.sql +-558299616, 1.1.sql -1098989118, 1.2__dropsFor_1.1.sql -1468123571, 1.3.sql +930822202, 1.3.sql 1729345905, 1.4__dropsFor_1.3.sql 561281075, R__order_views.sql From 05a1b0d64eb816c4c67d15d557c164af01f73b30 Mon Sep 17 00:00:00 2001 From: Roland Praml Date: Mon, 14 Mar 2022 16:31:34 +0100 Subject: [PATCH 095/114] DB2: Migration is working now --- .../ddlgeneration/platform/DB2Ddl.java | 125 ++++++++++++- .../dbmigration/db2fori/1.0__initial.sql | 6 +- .../migrationtest/dbmigration/db2fori/1.1.sql | 117 +++++++++--- .../dbmigration/db2fori/1.2__dropsFor_1.1.sql | 10 +- .../migrationtest/dbmigration/db2fori/1.3.sql | 172 +++++++++++++++-- .../dbmigration/db2fori/1.4__dropsFor_1.3.sql | 15 +- .../dbmigration/db2fori/idx_db2.migrations | 10 +- .../dbmigration/db2legacy/1.0__initial.sql | 10 +- .../dbmigration/db2legacy/1.1.sql | 127 ++++++++++--- .../db2legacy/1.2__dropsFor_1.1.sql | 10 +- .../dbmigration/db2legacy/1.3.sql | 176 +++++++++++++++--- .../db2legacy/1.4__dropsFor_1.3.sql | 15 +- .../dbmigration/db2legacy/idx_db2.migrations | 10 +- .../dbmigration/db2luw/1.0__initial.sql | 6 +- .../migrationtest/dbmigration/db2luw/1.1.sql | 117 +++++++++--- .../dbmigration/db2luw/1.2__dropsFor_1.1.sql | 10 +- .../migrationtest/dbmigration/db2luw/1.3.sql | 172 +++++++++++++++-- .../dbmigration/db2luw/1.4__dropsFor_1.3.sql | 15 +- .../dbmigration/db2luw/idx_db2.migrations | 10 +- .../dbmigration/db2zos/1.0__initial.sql | 6 +- .../migrationtest/dbmigration/db2zos/1.1.sql | 117 +++++++++--- .../dbmigration/db2zos/1.2__dropsFor_1.1.sql | 10 +- .../migrationtest/dbmigration/db2zos/1.3.sql | 172 +++++++++++++++-- .../dbmigration/db2zos/1.4__dropsFor_1.3.sql | 15 +- .../dbmigration/db2zos/idx_db2.migrations | 10 +- 25 files changed, 1244 insertions(+), 219 deletions(-) diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/DB2Ddl.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/DB2Ddl.java index 1eae12035..cb4b3434c 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/DB2Ddl.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/DB2Ddl.java @@ -1,7 +1,11 @@ package io.ebeaninternal.dbmigration.ddlgeneration.platform; -import io.ebean.annotation.ConstraintMode; +import java.util.ArrayList; +import java.util.List; + import io.ebean.config.dbplatform.DatabasePlatform; +import io.ebeaninternal.dbmigration.ddlgeneration.DdlAlterTable; +import io.ebeaninternal.dbmigration.ddlgeneration.DdlWrite; /** * DB2 platform specific DDL. @@ -12,8 +16,8 @@ public class DB2Ddl extends PlatformDdl { super(platform); this.dropTableIfExists = "drop table "; this.dropSequenceIfExists = "drop sequence "; - this.dropConstraintIfExists = "drop constraint"; - this.dropIndexIfExists = "drop index "; + this.dropConstraintIfExists = "NOT USED"; + this.dropIndexIfExists = "NOT USED"; this.identitySuffix = " generated by default as identity"; this.columnSetNull = "drop not null"; this.columnSetType = "set data type "; @@ -30,7 +34,7 @@ public class DB2Ddl extends PlatformDdl { throw new NullPointerException(); } StringBuilder sb = new StringBuilder("create unique index "); - sb.append(uqName).append(" on ").append(tableName).append('('); + sb.append(maxConstraintName(uqName)).append(" on ").append(tableName).append('('); for (int i = 0; i < columns.length; i++) { if (i > 0) { @@ -43,8 +47,117 @@ public class DB2Ddl extends PlatformDdl { } @Override - protected void appendForeignKeyOnUpdate(StringBuilder buffer, ConstraintMode mode) { - // do nothing, no on update clause for db2 + public String alterTableDropForeignKey(String tableName, String fkName) { + return alterTableDropConstraint(tableName, fkName); + }; + + @Override + public String alterTableDropUniqueConstraint(String tableName, String uniqueConstraintName) { + return alterTableDropConstraint(tableName, uniqueConstraintName) + + "\n" + dropIndex(uniqueConstraintName, tableName); } + @Override + public String alterTableDropConstraint(String tableName, String constraintName) { + StringBuilder sb = new StringBuilder(300); + sb.append("delimiter $$\n") + .append("begin\n") + .append("if exists (select constname from syscat.tabconst where tabschema = current_schema and constname = '") + .append(maxConstraintName(constraintName).toUpperCase()) + .append("' and tabname = '").append(lowerTableName(tableName).toUpperCase()).append("') then\n") + + .append(" prepare stmt from 'alter table ").append(lowerTableName(tableName)) + .append(" drop constraint ").append(maxConstraintName(constraintName)).append("';\n") + + .append(" execute stmt;\n") + .append("end if;\n") + .append("end$$"); + return sb.toString(); + + } + + @Override + public String dropIndex(String indexName, String tableName, boolean concurrent) { + StringBuilder sb = new StringBuilder(300); + sb.append("delimiter $$\n") + .append("begin\n") + .append("if exists (select indname from syscat.indexes where indschema = current_schema and indname = '") + .append(maxConstraintName(indexName).toUpperCase()).append("') then\n") + .append(" prepare stmt from 'drop index ").append(maxConstraintName(indexName)).append("';\n") + .append(" execute stmt;\n") + .append("end if;\n") + .append("end$$"); + return sb.toString(); + } + + @Override + public String dropSequence(String sequenceName) { + StringBuilder sb = new StringBuilder(300); + sb.append("delimiter $$\n"); + sb.append("begin\n"); + sb.append("if exists (select seqschema from syscat.sequences where seqschema = current_schema and seqname = '") + .append(maxConstraintName(sequenceName).toUpperCase()).append("') then\n"); + sb.append(" prepare stmt from 'drop sequence ").append(maxConstraintName(sequenceName)).append("';\n"); + sb.append(" execute stmt;\n"); + sb.append("end if;\n"); + sb.append("end$$"); + return sb.toString(); + } + +@Override +protected DdlAlterTable alterTable(DdlWrite writer, String tableName) { + return writer.applyAlterTable(tableName, Db2AlterTableWrite::new); +}; + static class Db2AlterTableWrite extends BaseAlterTableWrite { + + public Db2AlterTableWrite(String tableName) { + super(tableName); + } + + @Override + protected List postProcessCommands(List cmds) { + List ret = new ArrayList<>(cmds.size() + 1); + boolean requiresReorg = false; + for (AlterCmd cmd : cmds) { + ret.add(cmd); + if (!requiresReorg && checkReorg(cmd)) { + requiresReorg = true; + } + } + if (requiresReorg) { + ret.add(newRawCommand("call sysproc.admin_cmd('reorg table " + tableName() + "')")); + } + return ret; + } + + /** + * determine, if we need a reorg. + * + * See: https://www.ibm.com/docs/en/db2/11.5?topic=statements-alter-table The following is the full list of REORG-recommended + * ALTER statements that cause a version change and place the table into a REORG-pending state: + *
    + *
  • DROP COLUMN + *
  • ALTER COLUMN SET NOT NULL + *
  • ALTER COLUMN DROP NOT NULL + *
  • ALTER COLUMN SET DATA TYPE, except in the following situations:
    + * Increasing the length of a VARCHAR or VARGRAPHIC column
    + * Decreasing the length of a VARCHAR or VARGRAPHIC column without truncating trailing blanks from existing data, when no indexes + * exist on the column + *
+ * + */ + private boolean checkReorg(AlterCmd cmd) { + switch (cmd.getOperation()) { + case "drop column": + return true; + case "alter column": + String alter = cmd.getAlternation(); + return alter.equals("set not null") + || alter.equals("drop not default") + || alter.startsWith("set data type"); // note: altering varchar length only is not detected here + default: + return false; + } + } + } } 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 index 7afc39559..52fee3a2e 100644 --- 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 @@ -165,13 +165,13 @@ create unique index uq_migtest_e_basic_indextest6 on migtest_e_basic(indextest6) alter table migtest_e_ref add constraint uq_migtest_e_ref_name unique (name); -- foreign keys and indices 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; +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; +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; +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 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/db2fori/1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/db2fori/1.1.sql index b459d8c09..1e5338263 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/db2fori/1.1.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2fori/1.1.sql @@ -1,14 +1,82 @@ -- Migrationscripts for ebean unittest -- drop dependencies -alter table migtest_fk_cascade drop constraint fk_migtest_fk_cascade_one_id; -alter table migtest_fk_set_null drop constraint fk_migtest_fk_set_null_one_id; -alter table migtest_e_basic drop constraint ck_migtest_e_basic_status; -alter table migtest_e_basic drop constraint ck_migtest_e_basic_status2; -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_enum drop constraint ck_migtest_e_enum_test_status; -drop index ix_migtest_e_basic_indextest1; -drop index ix_migtest_e_basic_indextest5; +delimiter $$ +begin +if exists (select constname from syscat.tabconst where tabschema = current_schema and constname = 'FK_MIGTEST_FK_CASCADE_ONE_ID' and tabname = 'MIGTEST_FK_CASCADE') then + prepare stmt from 'alter table migtest_fk_cascade drop constraint fk_migtest_fk_cascade_one_id'; + execute stmt; +end if; +end$$; +delimiter $$ +begin +if exists (select constname from syscat.tabconst where tabschema = current_schema and constname = 'FK_MIGTEST_FK_SET_NULL_ONE_ID' and tabname = 'MIGTEST_FK_SET_NULL') then + prepare stmt from 'alter table migtest_fk_set_null drop constraint fk_migtest_fk_set_null_one_id'; + execute stmt; +end if; +end$$; +delimiter $$ +begin +if exists (select constname from syscat.tabconst where tabschema = current_schema and constname = 'CK_MIGTEST_E_BASIC_STATUS' and tabname = 'MIGTEST_E_BASIC') then + prepare stmt from 'alter table migtest_e_basic drop constraint ck_migtest_e_basic_status'; + execute stmt; +end if; +end$$; +delimiter $$ +begin +if exists (select constname from syscat.tabconst where tabschema = current_schema and constname = 'CK_MIGTEST_E_BASIC_STATUS2' and tabname = 'MIGTEST_E_BASIC') then + prepare stmt from 'alter table migtest_e_basic drop constraint ck_migtest_e_basic_status2'; + execute stmt; +end if; +end$$; +delimiter $$ +begin +if exists (select constname from syscat.tabconst where tabschema = current_schema and constname = 'UQ_MIGTEST_E_BASIC_INDEXTEST2' and tabname = 'MIGTEST_E_BASIC') then + prepare stmt from 'alter table migtest_e_basic drop constraint uq_migtest_e_basic_indextest2'; + execute stmt; +end if; +end$$ +delimiter $$ +begin +if exists (select indname from syscat.indexes where indschema = current_schema and indname = 'UQ_MIGTEST_E_BASIC_INDEXTEST2') then + prepare stmt from 'drop index uq_migtest_e_basic_indextest2'; + execute stmt; +end if; +end$$; +delimiter $$ +begin +if exists (select constname from syscat.tabconst where tabschema = current_schema and constname = 'UQ_MIGTEST_E_BASIC_INDEXTEST6' and tabname = 'MIGTEST_E_BASIC') then + prepare stmt from 'alter table migtest_e_basic drop constraint uq_migtest_e_basic_indextest6'; + execute stmt; +end if; +end$$ +delimiter $$ +begin +if exists (select indname from syscat.indexes where indschema = current_schema and indname = 'UQ_MIGTEST_E_BASIC_INDEXTEST6') then + prepare stmt from 'drop index uq_migtest_e_basic_indextest6'; + execute stmt; +end if; +end$$; +delimiter $$ +begin +if exists (select constname from syscat.tabconst where tabschema = current_schema and constname = 'CK_MIGTEST_E_ENUM_TEST_STATUS' and tabname = 'MIGTEST_E_ENUM') then + prepare stmt from 'alter table migtest_e_enum drop constraint ck_migtest_e_enum_test_status'; + execute stmt; +end if; +end$$; +delimiter $$ +begin +if exists (select indname from syscat.indexes where indschema = current_schema and indname = 'IX_MIGTEST_E_BASIC_INDEXTEST1') then + prepare stmt from 'drop index ix_migtest_e_basic_indextest1'; + execute stmt; +end if; +end$$; +delimiter $$ +begin +if exists (select indname from syscat.indexes where indschema = current_schema and indname = 'IX_MIGTEST_E_BASIC_INDEXTEST5') then + prepare stmt from 'drop index ix_migtest_e_basic_indextest5'; + execute stmt; +end if; +end$$; -- apply changes create table migtest_e_user ( id integer generated by default as identity not null, @@ -60,17 +128,22 @@ alter table migtest_e_basic add column new_boolean_field smallint default 0 defa 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 column new_integer integer default 42 not null; +call sysproc.admin_cmd('reorg table migtest_e_basic'); alter table migtest_e_history alter column test_string set data type bigint; +call sysproc.admin_cmd('reorg table migtest_e_history'); 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); +call sysproc.admin_cmd('reorg table migtest_e_history2'); alter table migtest_e_history4 alter column test_number set data type bigint; +call sysproc.admin_cmd('reorg table migtest_e_history4'); alter table migtest_e_history5 add column test_boolean smallint default 0 default false not 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; +call sysproc.admin_cmd('reorg table migtest_e_history6'); 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; -- apply post alter @@ -88,30 +161,30 @@ comment on column migtest_e_history.test_string is 'Column altered to long now'; comment on table migtest_e_history is 'We have history now'; -- foreign keys and indices 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; +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; +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; +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; +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; +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; -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_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; 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_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_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 add constraint fk_migtest_fk_set_null_one_id foreign key (one_id) references migtest_fk_one (id) on delete restrict; -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_oto_child add constraint fk_migtest_oto_child_master_id foreign key (master_id) references migtest_oto_master (id) on delete restrict; +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 add constraint fk_migtest_fk_set_null_one_id foreign key (one_id) references migtest_fk_one (id) on delete restrict on update restrict; +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_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 index ix_migtest_e_basic_indextest3 on migtest_e_basic (indextest3); create index ix_migtest_e_basic_indextest6 on migtest_e_basic (indextest6); diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/db2fori/1.2__dropsFor_1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/db2fori/1.2__dropsFor_1.1.sql index c7f896822..50f34feed 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/db2fori/1.2__dropsFor_1.1.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2fori/1.2__dropsFor_1.1.sql @@ -4,8 +4,16 @@ alter table migtest_e_basic drop column description_file; 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; +call sysproc.admin_cmd('reorg table migtest_e_basic'); alter table migtest_e_history2 drop column obsolete_string1; alter table migtest_e_history2 drop column obsolete_string2; +call sysproc.admin_cmd('reorg table migtest_e_history2'); -- apply post alter drop table migtest_e_ref; -drop sequence migtest_e_ref_seq; +delimiter $$ +begin +if exists (select seqschema from syscat.sequences where seqschema = current_schema and seqname = 'MIGTEST_E_REF_SEQ') then + prepare stmt from 'drop sequence migtest_e_ref_seq'; + execute stmt; +end if; +end$$; 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 index 7e64cc664..dd47fb80e 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/db2fori/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2fori/1.3.sql @@ -1,21 +1,152 @@ -- Migrationscripts for ebean unittest -- drop dependencies -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_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_e_basic drop constraint ck_migtest_e_basic_status; -alter table migtest_e_basic drop constraint ck_migtest_e_basic_status2; -alter table migtest_e_basic drop constraint uq_migtest_e_basic_description; -alter table migtest_e_basic drop constraint fk_migtest_e_basic_user_id; -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_enum drop constraint ck_migtest_e_enum_test_status; -drop index ix_migtest_e_basic_indextest3; -drop index ix_migtest_e_basic_indextest6; +delimiter $$ +begin +if exists (select constname from syscat.tabconst where tabschema = current_schema and constname = 'FK_MIGTEST_CKEY_DETAIL_PARENT' and tabname = 'MIGTEST_CKEY_DETAIL') then + prepare stmt from 'alter table migtest_ckey_detail drop constraint fk_migtest_ckey_detail_parent'; + execute stmt; +end if; +end$$; +delimiter $$ +begin +if exists (select constname from syscat.tabconst where tabschema = current_schema and constname = 'FK_MIGTEST_FK_CASCADE_ONE_ID' and tabname = 'MIGTEST_FK_CASCADE') then + prepare stmt from 'alter table migtest_fk_cascade drop constraint fk_migtest_fk_cascade_one_id'; + execute stmt; +end if; +end$$; +delimiter $$ +begin +if exists (select constname from syscat.tabconst where tabschema = current_schema and constname = 'FK_MIGTEST_FK_NONE_ONE_ID' and tabname = 'MIGTEST_FK_NONE') then + prepare stmt from 'alter table migtest_fk_none drop constraint fk_migtest_fk_none_one_id'; + execute stmt; +end if; +end$$; +delimiter $$ +begin +if exists (select constname from syscat.tabconst where tabschema = current_schema and constname = 'FK_MIGTEST_FK_NONE_VIA_JOIN_ONE_ID' and tabname = 'MIGTEST_FK_NONE_VIA_JOIN') then + prepare stmt from 'alter table migtest_fk_none_via_join drop constraint fk_migtest_fk_none_via_join_one_id'; + execute stmt; +end if; +end$$; +delimiter $$ +begin +if exists (select constname from syscat.tabconst where tabschema = current_schema and constname = 'FK_MIGTEST_FK_SET_NULL_ONE_ID' and tabname = 'MIGTEST_FK_SET_NULL') then + prepare stmt from 'alter table migtest_fk_set_null drop constraint fk_migtest_fk_set_null_one_id'; + execute stmt; +end if; +end$$; +delimiter $$ +begin +if exists (select constname from syscat.tabconst where tabschema = current_schema and constname = 'CK_MIGTEST_E_BASIC_STATUS' and tabname = 'MIGTEST_E_BASIC') then + prepare stmt from 'alter table migtest_e_basic drop constraint ck_migtest_e_basic_status'; + execute stmt; +end if; +end$$; +delimiter $$ +begin +if exists (select constname from syscat.tabconst where tabschema = current_schema and constname = 'CK_MIGTEST_E_BASIC_STATUS2' and tabname = 'MIGTEST_E_BASIC') then + prepare stmt from 'alter table migtest_e_basic drop constraint ck_migtest_e_basic_status2'; + execute stmt; +end if; +end$$; +delimiter $$ +begin +if exists (select constname from syscat.tabconst where tabschema = current_schema and constname = 'UQ_MIGTEST_E_BASIC_DESCRIPTION' and tabname = 'MIGTEST_E_BASIC') then + prepare stmt from 'alter table migtest_e_basic drop constraint uq_migtest_e_basic_description'; + execute stmt; +end if; +end$$ +delimiter $$ +begin +if exists (select indname from syscat.indexes where indschema = current_schema and indname = 'UQ_MIGTEST_E_BASIC_DESCRIPTION') then + prepare stmt from 'drop index uq_migtest_e_basic_description'; + execute stmt; +end if; +end$$; +delimiter $$ +begin +if exists (select constname from syscat.tabconst where tabschema = current_schema and constname = 'FK_MIGTEST_E_BASIC_USER_ID' and tabname = 'MIGTEST_E_BASIC') then + prepare stmt from 'alter table migtest_e_basic drop constraint fk_migtest_e_basic_user_id'; + execute stmt; +end if; +end$$; +delimiter $$ +begin +if exists (select constname from syscat.tabconst where tabschema = current_schema and constname = 'UQ_MIGTEST_E_BASIC_STATUS_INDEXTEST1' and tabname = 'MIGTEST_E_BASIC') then + prepare stmt from 'alter table migtest_e_basic drop constraint uq_migtest_e_basic_status_indextest1'; + execute stmt; +end if; +end$$ +delimiter $$ +begin +if exists (select indname from syscat.indexes where indschema = current_schema and indname = 'UQ_MIGTEST_E_BASIC_STATUS_INDEXTEST1') then + prepare stmt from 'drop index uq_migtest_e_basic_status_indextest1'; + execute stmt; +end if; +end$$; +delimiter $$ +begin +if exists (select constname from syscat.tabconst where tabschema = current_schema and constname = 'UQ_MIGTEST_E_BASIC_NAME' and tabname = 'MIGTEST_E_BASIC') then + prepare stmt from 'alter table migtest_e_basic drop constraint uq_migtest_e_basic_name'; + execute stmt; +end if; +end$$ +delimiter $$ +begin +if exists (select indname from syscat.indexes where indschema = current_schema and indname = 'UQ_MIGTEST_E_BASIC_NAME') then + prepare stmt from 'drop index uq_migtest_e_basic_name'; + execute stmt; +end if; +end$$; +delimiter $$ +begin +if exists (select constname from syscat.tabconst where tabschema = current_schema and constname = 'UQ_MIGTEST_E_BASIC_INDEXTEST4' and tabname = 'MIGTEST_E_BASIC') then + prepare stmt from 'alter table migtest_e_basic drop constraint uq_migtest_e_basic_indextest4'; + execute stmt; +end if; +end$$ +delimiter $$ +begin +if exists (select indname from syscat.indexes where indschema = current_schema and indname = 'UQ_MIGTEST_E_BASIC_INDEXTEST4') then + prepare stmt from 'drop index uq_migtest_e_basic_indextest4'; + execute stmt; +end if; +end$$; +delimiter $$ +begin +if exists (select constname from syscat.tabconst where tabschema = current_schema and constname = 'UQ_MIGTEST_E_BASIC_INDEXTEST5' and tabname = 'MIGTEST_E_BASIC') then + prepare stmt from 'alter table migtest_e_basic drop constraint uq_migtest_e_basic_indextest5'; + execute stmt; +end if; +end$$ +delimiter $$ +begin +if exists (select indname from syscat.indexes where indschema = current_schema and indname = 'UQ_MIGTEST_E_BASIC_INDEXTEST5') then + prepare stmt from 'drop index uq_migtest_e_basic_indextest5'; + execute stmt; +end if; +end$$; +delimiter $$ +begin +if exists (select constname from syscat.tabconst where tabschema = current_schema and constname = 'CK_MIGTEST_E_ENUM_TEST_STATUS' and tabname = 'MIGTEST_E_ENUM') then + prepare stmt from 'alter table migtest_e_enum drop constraint ck_migtest_e_enum_test_status'; + execute stmt; +end if; +end$$; +delimiter $$ +begin +if exists (select indname from syscat.indexes where indschema = current_schema and indname = 'IX_MIGTEST_E_BASIC_INDEXTEST3') then + prepare stmt from 'drop index ix_migtest_e_basic_indextest3'; + execute stmt; +end if; +end$$; +delimiter $$ +begin +if exists (select indname from syscat.indexes where indschema = current_schema and indname = 'IX_MIGTEST_E_BASIC_INDEXTEST6') then + prepare stmt from 'drop index ix_migtest_e_basic_indextest6'; + execute stmt; +end if; +end$$; -- apply changes create table migtest_e_ref ( id integer generated by default as identity not null, @@ -42,15 +173,18 @@ alter table migtest_e_basic add column description_file blob(64M); 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; +call sysproc.admin_cmd('reorg table migtest_e_basic'); 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; +call sysproc.admin_cmd('reorg table migtest_e_history4'); alter table migtest_e_history6 alter column test_number1 drop default; alter table migtest_e_history6 alter column test_number1 drop not 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; +call sysproc.admin_cmd('reorg table migtest_e_history6'); -- apply post alter alter table migtest_e_ref add constraint uq_migtest_e_ref_name unique (name); alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I')); @@ -61,10 +195,10 @@ alter table migtest_e_enum add constraint ck_migtest_e_enum_test_status check ( comment on column migtest_e_history.test_string is ''; comment on table migtest_e_history is ''; -- foreign keys and indices -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_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_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_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; +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 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/db2fori/1.4__dropsFor_1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/db2fori/1.4__dropsFor_1.3.sql index 43523ab64..98a76eaf1 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/db2fori/1.4__dropsFor_1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2fori/1.4__dropsFor_1.3.sql @@ -2,21 +2,34 @@ -- apply alter tables alter table migtest_ckey_detail drop column one_key; alter table migtest_ckey_detail drop column two_key; +call sysproc.admin_cmd('reorg table migtest_ckey_detail'); alter table migtest_ckey_parent drop column assoc_id; +call sysproc.admin_cmd('reorg table migtest_ckey_parent'); 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; +call sysproc.admin_cmd('reorg table migtest_e_basic'); 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; +call sysproc.admin_cmd('reorg table migtest_e_history2'); alter table migtest_e_history5 drop column test_boolean; +call sysproc.admin_cmd('reorg table migtest_e_history5'); alter table migtest_e_softdelete drop column deleted; +call sysproc.admin_cmd('reorg table migtest_e_softdelete'); alter table migtest_oto_child drop column master_id; +call sysproc.admin_cmd('reorg table migtest_oto_child'); -- apply post alter drop table migtest_e_user; -drop sequence migtest_e_user_seq; +delimiter $$ +begin +if exists (select seqschema from syscat.sequences where seqschema = current_schema and seqname = 'MIGTEST_E_USER_SEQ') then + prepare stmt from 'drop sequence migtest_e_user_seq'; + execute stmt; +end if; +end$$; 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/db2fori/idx_db2.migrations b/ebean-test/src/test/resources/migrationtest/dbmigration/db2fori/idx_db2.migrations index 85f2f8601..286bcc203 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/db2fori/idx_db2.migrations +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2fori/idx_db2.migrations @@ -1,7 +1,7 @@ -101990988, 1.0__initial.sql -1882152352, 1.1.sql --2081356955, 1.2__dropsFor_1.1.sql --1397487290, 1.3.sql --1610622815, 1.4__dropsFor_1.3.sql +1004346570, 1.0__initial.sql +972719393, 1.1.sql +859277843, 1.2__dropsFor_1.1.sql +-583344310, 1.3.sql +1763447809, 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 index bfc570b84..e9412a536 100644 --- 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 @@ -160,18 +160,18 @@ create table migtest_oto_master ( ); -- apply post alter -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 unique index uq_mgtst__b_4aybzy on migtest_e_basic(indextest2) exclude null keys; +create unique index uq_mgtst__b_4ayc02 on migtest_e_basic(indextest6) exclude null keys; alter table migtest_e_ref add constraint uq_mgtst__rf_nm unique (name); -- foreign keys and indices 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; +alter table migtest_fk_cascade add constraint fk_mgtst_fk_65kf6l foreign key (one_id) references migtest_fk_cascade_one (id) on delete cascade on update restrict; 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; +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 on update restrict; 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; +alter table migtest_e_basic add constraint fk_mgtst__bsc_rf_d foreign key (eref_id) references migtest_e_ref (id) on delete restrict on update restrict; create index ix_mgtst__b_eu8csq on migtest_e_basic (indextest1); create index ix_mgtst__b_eu8csu on migtest_e_basic (indextest5); 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 index 058fce09a..4ca572ac6 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/db2legacy/1.1.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2legacy/1.1.sql @@ -1,14 +1,82 @@ -- Migrationscripts for ebean unittest -- drop dependencies -alter table migtest_fk_cascade drop constraint fk_mgtst_fk_65kf6l; -alter table migtest_fk_set_null drop constraint fk_mgtst_fk_wicx8x; -alter table migtest_e_basic drop constraint ck_mgtst__bsc_stts; -alter table migtest_e_basic drop constraint ck_mgtst__b_z543fg; -alter table migtest_e_basic drop constraint uq_mgtst__b_4aybzy; -alter table migtest_e_basic drop constraint uq_mgtst__b_4ayc02; -alter table migtest_e_enum drop constraint ck_mgtst__n_773sok; -drop index ix_mgtst__b_eu8csq; -drop index ix_mgtst__b_eu8csu; +delimiter $$ +begin +if exists (select constname from syscat.tabconst where tabschema = current_schema and constname = 'FK_MGTST_FK_65KF6L' and tabname = 'MIGTEST_FK_CASCADE') then + prepare stmt from 'alter table migtest_fk_cascade drop constraint fk_mgtst_fk_65kf6l'; + execute stmt; +end if; +end$$; +delimiter $$ +begin +if exists (select constname from syscat.tabconst where tabschema = current_schema and constname = 'FK_MGTST_FK_WICX8X' and tabname = 'MIGTEST_FK_SET_NULL') then + prepare stmt from 'alter table migtest_fk_set_null drop constraint fk_mgtst_fk_wicx8x'; + execute stmt; +end if; +end$$; +delimiter $$ +begin +if exists (select constname from syscat.tabconst where tabschema = current_schema and constname = 'CK_MGTST__BSC_STTS' and tabname = 'MIGTEST_E_BASIC') then + prepare stmt from 'alter table migtest_e_basic drop constraint ck_mgtst__bsc_stts'; + execute stmt; +end if; +end$$; +delimiter $$ +begin +if exists (select constname from syscat.tabconst where tabschema = current_schema and constname = 'CK_MGTST__B_Z543FG' and tabname = 'MIGTEST_E_BASIC') then + prepare stmt from 'alter table migtest_e_basic drop constraint ck_mgtst__b_z543fg'; + execute stmt; +end if; +end$$; +delimiter $$ +begin +if exists (select constname from syscat.tabconst where tabschema = current_schema and constname = 'UQ_MGTST__B_4AYBZY' and tabname = 'MIGTEST_E_BASIC') then + prepare stmt from 'alter table migtest_e_basic drop constraint uq_mgtst__b_4aybzy'; + execute stmt; +end if; +end$$ +delimiter $$ +begin +if exists (select indname from syscat.indexes where indschema = current_schema and indname = 'UQ_MGTST__B_4AYBZY') then + prepare stmt from 'drop index uq_mgtst__b_4aybzy'; + execute stmt; +end if; +end$$; +delimiter $$ +begin +if exists (select constname from syscat.tabconst where tabschema = current_schema and constname = 'UQ_MGTST__B_4AYC02' and tabname = 'MIGTEST_E_BASIC') then + prepare stmt from 'alter table migtest_e_basic drop constraint uq_mgtst__b_4ayc02'; + execute stmt; +end if; +end$$ +delimiter $$ +begin +if exists (select indname from syscat.indexes where indschema = current_schema and indname = 'UQ_MGTST__B_4AYC02') then + prepare stmt from 'drop index uq_mgtst__b_4ayc02'; + execute stmt; +end if; +end$$; +delimiter $$ +begin +if exists (select constname from syscat.tabconst where tabschema = current_schema and constname = 'CK_MGTST__N_773SOK' and tabname = 'MIGTEST_E_ENUM') then + prepare stmt from 'alter table migtest_e_enum drop constraint ck_mgtst__n_773sok'; + execute stmt; +end if; +end$$; +delimiter $$ +begin +if exists (select indname from syscat.indexes where indschema = current_schema and indname = 'IX_MGTST__B_EU8CSQ') then + prepare stmt from 'drop index ix_mgtst__b_eu8csq'; + execute stmt; +end if; +end$$; +delimiter $$ +begin +if exists (select indname from syscat.indexes where indschema = current_schema and indname = 'IX_MGTST__B_EU8CSU') then + prepare stmt from 'drop index ix_mgtst__b_eu8csu'; + execute stmt; +end if; +end$$; -- apply changes create table migtest_e_user ( id integer generated by default as identity not null, @@ -60,58 +128,63 @@ alter table migtest_e_basic add column new_boolean_field boolean default true no 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 column new_integer integer default 42 not null; +call sysproc.admin_cmd('reorg table migtest_e_basic'); alter table migtest_e_history alter column test_string set data type bigint; +call sysproc.admin_cmd('reorg table migtest_e_history'); 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); +call sysproc.admin_cmd('reorg table migtest_e_history2'); alter table migtest_e_history4 alter column test_number set data type bigint; +call sysproc.admin_cmd('reorg table migtest_e_history4'); alter table migtest_e_history5 add column test_boolean boolean default false not 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; +call sysproc.admin_cmd('reorg table migtest_e_history6'); alter table migtest_e_softdelete add column deleted boolean default false not null; alter table migtest_oto_child add column master_id bigint; -- apply post alter alter table migtest_e_basic add constraint ck_mgtst__bsc_stts check ( status in ('N','A','I','?')); -create unique index uq_migtest_e_basic_description on migtest_e_basic(description) exclude null keys; +create unique index uq_mgtst__b_vs45xo on migtest_e_basic(description) exclude null keys; -- NOTE: table has @History - special migration may be necessary update migtest_e_basic set new_boolean_field = old_boolean; alter table migtest_e_basic add constraint ck_mgtst__b_l39g41 check ( progress in (0,1,2)); -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; +create unique index uq_mgtst__b_ucfcne on migtest_e_basic(status,indextest1) exclude null keys; +create unique index uq_mgtst__bsc_nm on migtest_e_basic(name) exclude null keys; +create unique index uq_mgtst__b_4ayc00 on migtest_e_basic(indextest4) exclude null keys; +create unique index uq_mgtst__b_4ayc01 on migtest_e_basic(indextest5) exclude null keys; comment on column migtest_e_history.test_string is 'Column altered to long now'; comment on table migtest_e_history is 'We have history now'; -- foreign keys and indices 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; +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 on update 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; +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 on update 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; +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 on update 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; +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 on update 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; +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 on update restrict; -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_detail add constraint fk_mgtst_ck_e1qkb5 foreign key (one_key,two_key) references migtest_ckey_parent (one_key,two_key) on delete restrict on update 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_ckey_parent add constraint fk_mgtst_ck_da00mr foreign key (assoc_id) references migtest_ckey_assoc (id) on delete restrict on update restrict; -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 add constraint fk_mgtst_fk_wicx8x foreign key (one_id) references migtest_fk_one (id) on delete restrict; -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_oto_child add constraint fk_mgtst_t__csyl38 foreign key (master_id) references migtest_oto_master (id) on delete restrict; +alter table migtest_fk_cascade add constraint fk_mgtst_fk_65kf6l foreign key (one_id) references migtest_fk_cascade_one (id) on delete restrict on update 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 on update 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 on update restrict; +alter table migtest_fk_set_null add constraint fk_mgtst_fk_wicx8x foreign key (one_id) references migtest_fk_one (id) on delete restrict on update restrict; +alter table migtest_e_basic add constraint fk_mgtst__bsc_sr_d foreign key (user_id) references migtest_e_user (id) on delete restrict on update restrict; +alter table migtest_oto_child add constraint fk_mgtst_t__csyl38 foreign key (master_id) references migtest_oto_master (id) on delete restrict on update restrict; create index ix_mgtst__b_eu8css on migtest_e_basic (indextest3); create index ix_mgtst__b_eu8csv on migtest_e_basic (indextest6); 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 index c7f896822..50f34feed 100644 --- 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 @@ -4,8 +4,16 @@ alter table migtest_e_basic drop column description_file; 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; +call sysproc.admin_cmd('reorg table migtest_e_basic'); alter table migtest_e_history2 drop column obsolete_string1; alter table migtest_e_history2 drop column obsolete_string2; +call sysproc.admin_cmd('reorg table migtest_e_history2'); -- apply post alter drop table migtest_e_ref; -drop sequence migtest_e_ref_seq; +delimiter $$ +begin +if exists (select seqschema from syscat.sequences where seqschema = current_schema and seqname = 'MIGTEST_E_REF_SEQ') then + prepare stmt from 'drop sequence migtest_e_ref_seq'; + execute stmt; +end if; +end$$; 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 index 5adb11e10..c236a0034 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/db2legacy/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2legacy/1.3.sql @@ -1,21 +1,152 @@ -- Migrationscripts for ebean unittest -- drop dependencies -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_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_e_basic drop constraint ck_mgtst__bsc_stts; -alter table migtest_e_basic drop constraint ck_mgtst__b_z543fg; -alter table migtest_e_basic drop constraint uq_mgtst__b_vs45xo; -alter table migtest_e_basic drop constraint fk_mgtst__bsc_sr_d; -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; -alter table migtest_e_enum drop constraint ck_mgtst__n_773sok; -drop index ix_mgtst__b_eu8css; -drop index ix_mgtst__b_eu8csv; +delimiter $$ +begin +if exists (select constname from syscat.tabconst where tabschema = current_schema and constname = 'FK_MGTST_CK_E1QKB5' and tabname = 'MIGTEST_CKEY_DETAIL') then + prepare stmt from 'alter table migtest_ckey_detail drop constraint fk_mgtst_ck_e1qkb5'; + execute stmt; +end if; +end$$; +delimiter $$ +begin +if exists (select constname from syscat.tabconst where tabschema = current_schema and constname = 'FK_MGTST_FK_65KF6L' and tabname = 'MIGTEST_FK_CASCADE') then + prepare stmt from 'alter table migtest_fk_cascade drop constraint fk_mgtst_fk_65kf6l'; + execute stmt; +end if; +end$$; +delimiter $$ +begin +if exists (select constname from syscat.tabconst where tabschema = current_schema and constname = 'FK_MGTST_FK_NN_N_D' and tabname = 'MIGTEST_FK_NONE') then + prepare stmt from 'alter table migtest_fk_none drop constraint fk_mgtst_fk_nn_n_d'; + execute stmt; +end if; +end$$; +delimiter $$ +begin +if exists (select constname from syscat.tabconst where tabschema = current_schema and constname = 'FK_MGTST_FK_9TKNZJ' and tabname = 'MIGTEST_FK_NONE_VIA_JOIN') then + prepare stmt from 'alter table migtest_fk_none_via_join drop constraint fk_mgtst_fk_9tknzj'; + execute stmt; +end if; +end$$; +delimiter $$ +begin +if exists (select constname from syscat.tabconst where tabschema = current_schema and constname = 'FK_MGTST_FK_WICX8X' and tabname = 'MIGTEST_FK_SET_NULL') then + prepare stmt from 'alter table migtest_fk_set_null drop constraint fk_mgtst_fk_wicx8x'; + execute stmt; +end if; +end$$; +delimiter $$ +begin +if exists (select constname from syscat.tabconst where tabschema = current_schema and constname = 'CK_MGTST__BSC_STTS' and tabname = 'MIGTEST_E_BASIC') then + prepare stmt from 'alter table migtest_e_basic drop constraint ck_mgtst__bsc_stts'; + execute stmt; +end if; +end$$; +delimiter $$ +begin +if exists (select constname from syscat.tabconst where tabschema = current_schema and constname = 'CK_MGTST__B_Z543FG' and tabname = 'MIGTEST_E_BASIC') then + prepare stmt from 'alter table migtest_e_basic drop constraint ck_mgtst__b_z543fg'; + execute stmt; +end if; +end$$; +delimiter $$ +begin +if exists (select constname from syscat.tabconst where tabschema = current_schema and constname = 'UQ_MGTST__B_VS45XO' and tabname = 'MIGTEST_E_BASIC') then + prepare stmt from 'alter table migtest_e_basic drop constraint uq_mgtst__b_vs45xo'; + execute stmt; +end if; +end$$ +delimiter $$ +begin +if exists (select indname from syscat.indexes where indschema = current_schema and indname = 'UQ_MGTST__B_VS45XO') then + prepare stmt from 'drop index uq_mgtst__b_vs45xo'; + execute stmt; +end if; +end$$; +delimiter $$ +begin +if exists (select constname from syscat.tabconst where tabschema = current_schema and constname = 'FK_MGTST__BSC_SR_D' and tabname = 'MIGTEST_E_BASIC') then + prepare stmt from 'alter table migtest_e_basic drop constraint fk_mgtst__bsc_sr_d'; + execute stmt; +end if; +end$$; +delimiter $$ +begin +if exists (select constname from syscat.tabconst where tabschema = current_schema and constname = 'UQ_MGTST__B_UCFCNE' and tabname = 'MIGTEST_E_BASIC') then + prepare stmt from 'alter table migtest_e_basic drop constraint uq_mgtst__b_ucfcne'; + execute stmt; +end if; +end$$ +delimiter $$ +begin +if exists (select indname from syscat.indexes where indschema = current_schema and indname = 'UQ_MGTST__B_UCFCNE') then + prepare stmt from 'drop index uq_mgtst__b_ucfcne'; + execute stmt; +end if; +end$$; +delimiter $$ +begin +if exists (select constname from syscat.tabconst where tabschema = current_schema and constname = 'UQ_MGTST__BSC_NM' and tabname = 'MIGTEST_E_BASIC') then + prepare stmt from 'alter table migtest_e_basic drop constraint uq_mgtst__bsc_nm'; + execute stmt; +end if; +end$$ +delimiter $$ +begin +if exists (select indname from syscat.indexes where indschema = current_schema and indname = 'UQ_MGTST__BSC_NM') then + prepare stmt from 'drop index uq_mgtst__bsc_nm'; + execute stmt; +end if; +end$$; +delimiter $$ +begin +if exists (select constname from syscat.tabconst where tabschema = current_schema and constname = 'UQ_MGTST__B_4AYC00' and tabname = 'MIGTEST_E_BASIC') then + prepare stmt from 'alter table migtest_e_basic drop constraint uq_mgtst__b_4ayc00'; + execute stmt; +end if; +end$$ +delimiter $$ +begin +if exists (select indname from syscat.indexes where indschema = current_schema and indname = 'UQ_MGTST__B_4AYC00') then + prepare stmt from 'drop index uq_mgtst__b_4ayc00'; + execute stmt; +end if; +end$$; +delimiter $$ +begin +if exists (select constname from syscat.tabconst where tabschema = current_schema and constname = 'UQ_MGTST__B_4AYC01' and tabname = 'MIGTEST_E_BASIC') then + prepare stmt from 'alter table migtest_e_basic drop constraint uq_mgtst__b_4ayc01'; + execute stmt; +end if; +end$$ +delimiter $$ +begin +if exists (select indname from syscat.indexes where indschema = current_schema and indname = 'UQ_MGTST__B_4AYC01') then + prepare stmt from 'drop index uq_mgtst__b_4ayc01'; + execute stmt; +end if; +end$$; +delimiter $$ +begin +if exists (select constname from syscat.tabconst where tabschema = current_schema and constname = 'CK_MGTST__N_773SOK' and tabname = 'MIGTEST_E_ENUM') then + prepare stmt from 'alter table migtest_e_enum drop constraint ck_mgtst__n_773sok'; + execute stmt; +end if; +end$$; +delimiter $$ +begin +if exists (select indname from syscat.indexes where indschema = current_schema and indname = 'IX_MGTST__B_EU8CSS') then + prepare stmt from 'drop index ix_mgtst__b_eu8css'; + execute stmt; +end if; +end$$; +delimiter $$ +begin +if exists (select indname from syscat.indexes where indschema = current_schema and indname = 'IX_MGTST__B_EU8CSV') then + prepare stmt from 'drop index ix_mgtst__b_eu8csv'; + execute stmt; +end if; +end$$; -- apply changes create table migtest_e_ref ( id integer generated by default as identity not null, @@ -42,29 +173,32 @@ alter table migtest_e_basic add column description_file blob(64M); 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; +call sysproc.admin_cmd('reorg table migtest_e_basic'); 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; +call sysproc.admin_cmd('reorg table migtest_e_history4'); alter table migtest_e_history6 alter column test_number1 drop default; alter table migtest_e_history6 alter column test_number1 drop not 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; +call sysproc.admin_cmd('reorg table migtest_e_history6'); -- apply post alter alter table migtest_e_ref add constraint uq_mgtst__rf_nm unique (name); alter table migtest_e_basic add constraint ck_mgtst__bsc_stts check ( status in ('N','A','I')); alter table migtest_e_basic add constraint ck_mgtst__b_z543fg check ( status2 in ('N','A','I')); -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 unique index uq_mgtst__b_4aybzy on migtest_e_basic(indextest2) exclude null keys; +create unique index uq_mgtst__b_4ayc02 on migtest_e_basic(indextest6) exclude null keys; 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 ''; -- foreign keys and indices -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_set_null add constraint fk_mgtst_fk_wicx8x foreign key (one_id) references migtest_fk_one (id) on delete set null; +alter table migtest_fk_cascade add constraint fk_mgtst_fk_65kf6l foreign key (one_id) references migtest_fk_cascade_one (id) on delete cascade on update restrict; +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 on update restrict; 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; +alter table migtest_e_basic add constraint fk_mgtst__bsc_rf_d foreign key (eref_id) references migtest_e_ref (id) on delete restrict on update restrict; create index ix_mgtst__b_eu8csq on migtest_e_basic (indextest1); create index ix_mgtst__b_eu8csu on migtest_e_basic (indextest5); 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 index 43523ab64..98a76eaf1 100644 --- 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 @@ -2,21 +2,34 @@ -- apply alter tables alter table migtest_ckey_detail drop column one_key; alter table migtest_ckey_detail drop column two_key; +call sysproc.admin_cmd('reorg table migtest_ckey_detail'); alter table migtest_ckey_parent drop column assoc_id; +call sysproc.admin_cmd('reorg table migtest_ckey_parent'); 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; +call sysproc.admin_cmd('reorg table migtest_e_basic'); 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; +call sysproc.admin_cmd('reorg table migtest_e_history2'); alter table migtest_e_history5 drop column test_boolean; +call sysproc.admin_cmd('reorg table migtest_e_history5'); alter table migtest_e_softdelete drop column deleted; +call sysproc.admin_cmd('reorg table migtest_e_softdelete'); alter table migtest_oto_child drop column master_id; +call sysproc.admin_cmd('reorg table migtest_oto_child'); -- apply post alter drop table migtest_e_user; -drop sequence migtest_e_user_seq; +delimiter $$ +begin +if exists (select seqschema from syscat.sequences where seqschema = current_schema and seqname = 'MIGTEST_E_USER_SEQ') then + prepare stmt from 'drop sequence migtest_e_user_seq'; + execute stmt; +end if; +end$$; 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/idx_db2.migrations b/ebean-test/src/test/resources/migrationtest/dbmigration/db2legacy/idx_db2.migrations index 58003092b..02be135d7 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/db2legacy/idx_db2.migrations +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2legacy/idx_db2.migrations @@ -1,7 +1,7 @@ -1364985791, 1.0__initial.sql -1265418767, 1.1.sql --2081356955, 1.2__dropsFor_1.1.sql --46810481, 1.3.sql --1610622815, 1.4__dropsFor_1.3.sql +-91718719, 1.0__initial.sql +827855272, 1.1.sql +859277843, 1.2__dropsFor_1.1.sql +1257741278, 1.3.sql +1763447809, 1.4__dropsFor_1.3.sql 561281075, R__order_views.sql diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/db2luw/1.0__initial.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/db2luw/1.0__initial.sql index 714ed5d30..8298c9fa9 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/db2luw/1.0__initial.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2luw/1.0__initial.sql @@ -165,13 +165,13 @@ create unique index uq_migtest_e_basic_indextest6 on migtest_e_basic(indextest6) alter table migtest_e_ref add constraint uq_migtest_e_ref_name unique (name); -- foreign keys and indices 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; +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; +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; +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 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/db2luw/1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/db2luw/1.1.sql index 365d84144..40ebaa171 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/db2luw/1.1.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2luw/1.1.sql @@ -1,14 +1,82 @@ -- Migrationscripts for ebean unittest -- drop dependencies -alter table migtest_fk_cascade drop constraint fk_migtest_fk_cascade_one_id; -alter table migtest_fk_set_null drop constraint fk_migtest_fk_set_null_one_id; -alter table migtest_e_basic drop constraint ck_migtest_e_basic_status; -alter table migtest_e_basic drop constraint ck_migtest_e_basic_status2; -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_enum drop constraint ck_migtest_e_enum_test_status; -drop index ix_migtest_e_basic_indextest1; -drop index ix_migtest_e_basic_indextest5; +delimiter $$ +begin +if exists (select constname from syscat.tabconst where tabschema = current_schema and constname = 'FK_MIGTEST_FK_CASCADE_ONE_ID' and tabname = 'MIGTEST_FK_CASCADE') then + prepare stmt from 'alter table migtest_fk_cascade drop constraint fk_migtest_fk_cascade_one_id'; + execute stmt; +end if; +end$$; +delimiter $$ +begin +if exists (select constname from syscat.tabconst where tabschema = current_schema and constname = 'FK_MIGTEST_FK_SET_NULL_ONE_ID' and tabname = 'MIGTEST_FK_SET_NULL') then + prepare stmt from 'alter table migtest_fk_set_null drop constraint fk_migtest_fk_set_null_one_id'; + execute stmt; +end if; +end$$; +delimiter $$ +begin +if exists (select constname from syscat.tabconst where tabschema = current_schema and constname = 'CK_MIGTEST_E_BASIC_STATUS' and tabname = 'MIGTEST_E_BASIC') then + prepare stmt from 'alter table migtest_e_basic drop constraint ck_migtest_e_basic_status'; + execute stmt; +end if; +end$$; +delimiter $$ +begin +if exists (select constname from syscat.tabconst where tabschema = current_schema and constname = 'CK_MIGTEST_E_BASIC_STATUS2' and tabname = 'MIGTEST_E_BASIC') then + prepare stmt from 'alter table migtest_e_basic drop constraint ck_migtest_e_basic_status2'; + execute stmt; +end if; +end$$; +delimiter $$ +begin +if exists (select constname from syscat.tabconst where tabschema = current_schema and constname = 'UQ_MIGTEST_E_BASIC_INDEXTEST2' and tabname = 'MIGTEST_E_BASIC') then + prepare stmt from 'alter table migtest_e_basic drop constraint uq_migtest_e_basic_indextest2'; + execute stmt; +end if; +end$$ +delimiter $$ +begin +if exists (select indname from syscat.indexes where indschema = current_schema and indname = 'UQ_MIGTEST_E_BASIC_INDEXTEST2') then + prepare stmt from 'drop index uq_migtest_e_basic_indextest2'; + execute stmt; +end if; +end$$; +delimiter $$ +begin +if exists (select constname from syscat.tabconst where tabschema = current_schema and constname = 'UQ_MIGTEST_E_BASIC_INDEXTEST6' and tabname = 'MIGTEST_E_BASIC') then + prepare stmt from 'alter table migtest_e_basic drop constraint uq_migtest_e_basic_indextest6'; + execute stmt; +end if; +end$$ +delimiter $$ +begin +if exists (select indname from syscat.indexes where indschema = current_schema and indname = 'UQ_MIGTEST_E_BASIC_INDEXTEST6') then + prepare stmt from 'drop index uq_migtest_e_basic_indextest6'; + execute stmt; +end if; +end$$; +delimiter $$ +begin +if exists (select constname from syscat.tabconst where tabschema = current_schema and constname = 'CK_MIGTEST_E_ENUM_TEST_STATUS' and tabname = 'MIGTEST_E_ENUM') then + prepare stmt from 'alter table migtest_e_enum drop constraint ck_migtest_e_enum_test_status'; + execute stmt; +end if; +end$$; +delimiter $$ +begin +if exists (select indname from syscat.indexes where indschema = current_schema and indname = 'IX_MIGTEST_E_BASIC_INDEXTEST1') then + prepare stmt from 'drop index ix_migtest_e_basic_indextest1'; + execute stmt; +end if; +end$$; +delimiter $$ +begin +if exists (select indname from syscat.indexes where indschema = current_schema and indname = 'IX_MIGTEST_E_BASIC_INDEXTEST5') then + prepare stmt from 'drop index ix_migtest_e_basic_indextest5'; + execute stmt; +end if; +end$$; -- apply changes create table migtest_e_user ( id integer generated by default as identity not null, @@ -60,17 +128,22 @@ alter table migtest_e_basic add column new_boolean_field boolean default true no 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 column new_integer integer default 42 not null; +call sysproc.admin_cmd('reorg table migtest_e_basic'); alter table migtest_e_history alter column test_string set data type bigint; +call sysproc.admin_cmd('reorg table migtest_e_history'); 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); +call sysproc.admin_cmd('reorg table migtest_e_history2'); alter table migtest_e_history4 alter column test_number set data type bigint; +call sysproc.admin_cmd('reorg table migtest_e_history4'); alter table migtest_e_history5 add column test_boolean boolean default false not 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; +call sysproc.admin_cmd('reorg table migtest_e_history6'); alter table migtest_e_softdelete add column deleted boolean default false not null; alter table migtest_oto_child add column master_id bigint; -- apply post alter @@ -88,30 +161,30 @@ comment on column migtest_e_history.test_string is 'Column altered to long now'; comment on table migtest_e_history is 'We have history now'; -- foreign keys and indices 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; +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; +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; +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; +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; +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; -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_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; 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_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_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 add constraint fk_migtest_fk_set_null_one_id foreign key (one_id) references migtest_fk_one (id) on delete restrict; -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_oto_child add constraint fk_migtest_oto_child_master_id foreign key (master_id) references migtest_oto_master (id) on delete restrict; +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 add constraint fk_migtest_fk_set_null_one_id foreign key (one_id) references migtest_fk_one (id) on delete restrict on update restrict; +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_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 index ix_migtest_e_basic_indextest3 on migtest_e_basic (indextest3); create index ix_migtest_e_basic_indextest6 on migtest_e_basic (indextest6); 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 index c7f896822..50f34feed 100644 --- 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 @@ -4,8 +4,16 @@ alter table migtest_e_basic drop column description_file; 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; +call sysproc.admin_cmd('reorg table migtest_e_basic'); alter table migtest_e_history2 drop column obsolete_string1; alter table migtest_e_history2 drop column obsolete_string2; +call sysproc.admin_cmd('reorg table migtest_e_history2'); -- apply post alter drop table migtest_e_ref; -drop sequence migtest_e_ref_seq; +delimiter $$ +begin +if exists (select seqschema from syscat.sequences where seqschema = current_schema and seqname = 'MIGTEST_E_REF_SEQ') then + prepare stmt from 'drop sequence migtest_e_ref_seq'; + execute stmt; +end if; +end$$; diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/db2luw/1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/db2luw/1.3.sql index 6c4433f9d..ac5a82ecc 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/db2luw/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2luw/1.3.sql @@ -1,21 +1,152 @@ -- Migrationscripts for ebean unittest -- drop dependencies -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_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_e_basic drop constraint ck_migtest_e_basic_status; -alter table migtest_e_basic drop constraint ck_migtest_e_basic_status2; -alter table migtest_e_basic drop constraint uq_migtest_e_basic_description; -alter table migtest_e_basic drop constraint fk_migtest_e_basic_user_id; -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_enum drop constraint ck_migtest_e_enum_test_status; -drop index ix_migtest_e_basic_indextest3; -drop index ix_migtest_e_basic_indextest6; +delimiter $$ +begin +if exists (select constname from syscat.tabconst where tabschema = current_schema and constname = 'FK_MIGTEST_CKEY_DETAIL_PARENT' and tabname = 'MIGTEST_CKEY_DETAIL') then + prepare stmt from 'alter table migtest_ckey_detail drop constraint fk_migtest_ckey_detail_parent'; + execute stmt; +end if; +end$$; +delimiter $$ +begin +if exists (select constname from syscat.tabconst where tabschema = current_schema and constname = 'FK_MIGTEST_FK_CASCADE_ONE_ID' and tabname = 'MIGTEST_FK_CASCADE') then + prepare stmt from 'alter table migtest_fk_cascade drop constraint fk_migtest_fk_cascade_one_id'; + execute stmt; +end if; +end$$; +delimiter $$ +begin +if exists (select constname from syscat.tabconst where tabschema = current_schema and constname = 'FK_MIGTEST_FK_NONE_ONE_ID' and tabname = 'MIGTEST_FK_NONE') then + prepare stmt from 'alter table migtest_fk_none drop constraint fk_migtest_fk_none_one_id'; + execute stmt; +end if; +end$$; +delimiter $$ +begin +if exists (select constname from syscat.tabconst where tabschema = current_schema and constname = 'FK_MIGTEST_FK_NONE_VIA_JOIN_ONE_ID' and tabname = 'MIGTEST_FK_NONE_VIA_JOIN') then + prepare stmt from 'alter table migtest_fk_none_via_join drop constraint fk_migtest_fk_none_via_join_one_id'; + execute stmt; +end if; +end$$; +delimiter $$ +begin +if exists (select constname from syscat.tabconst where tabschema = current_schema and constname = 'FK_MIGTEST_FK_SET_NULL_ONE_ID' and tabname = 'MIGTEST_FK_SET_NULL') then + prepare stmt from 'alter table migtest_fk_set_null drop constraint fk_migtest_fk_set_null_one_id'; + execute stmt; +end if; +end$$; +delimiter $$ +begin +if exists (select constname from syscat.tabconst where tabschema = current_schema and constname = 'CK_MIGTEST_E_BASIC_STATUS' and tabname = 'MIGTEST_E_BASIC') then + prepare stmt from 'alter table migtest_e_basic drop constraint ck_migtest_e_basic_status'; + execute stmt; +end if; +end$$; +delimiter $$ +begin +if exists (select constname from syscat.tabconst where tabschema = current_schema and constname = 'CK_MIGTEST_E_BASIC_STATUS2' and tabname = 'MIGTEST_E_BASIC') then + prepare stmt from 'alter table migtest_e_basic drop constraint ck_migtest_e_basic_status2'; + execute stmt; +end if; +end$$; +delimiter $$ +begin +if exists (select constname from syscat.tabconst where tabschema = current_schema and constname = 'UQ_MIGTEST_E_BASIC_DESCRIPTION' and tabname = 'MIGTEST_E_BASIC') then + prepare stmt from 'alter table migtest_e_basic drop constraint uq_migtest_e_basic_description'; + execute stmt; +end if; +end$$ +delimiter $$ +begin +if exists (select indname from syscat.indexes where indschema = current_schema and indname = 'UQ_MIGTEST_E_BASIC_DESCRIPTION') then + prepare stmt from 'drop index uq_migtest_e_basic_description'; + execute stmt; +end if; +end$$; +delimiter $$ +begin +if exists (select constname from syscat.tabconst where tabschema = current_schema and constname = 'FK_MIGTEST_E_BASIC_USER_ID' and tabname = 'MIGTEST_E_BASIC') then + prepare stmt from 'alter table migtest_e_basic drop constraint fk_migtest_e_basic_user_id'; + execute stmt; +end if; +end$$; +delimiter $$ +begin +if exists (select constname from syscat.tabconst where tabschema = current_schema and constname = 'UQ_MIGTEST_E_BASIC_STATUS_INDEXTEST1' and tabname = 'MIGTEST_E_BASIC') then + prepare stmt from 'alter table migtest_e_basic drop constraint uq_migtest_e_basic_status_indextest1'; + execute stmt; +end if; +end$$ +delimiter $$ +begin +if exists (select indname from syscat.indexes where indschema = current_schema and indname = 'UQ_MIGTEST_E_BASIC_STATUS_INDEXTEST1') then + prepare stmt from 'drop index uq_migtest_e_basic_status_indextest1'; + execute stmt; +end if; +end$$; +delimiter $$ +begin +if exists (select constname from syscat.tabconst where tabschema = current_schema and constname = 'UQ_MIGTEST_E_BASIC_NAME' and tabname = 'MIGTEST_E_BASIC') then + prepare stmt from 'alter table migtest_e_basic drop constraint uq_migtest_e_basic_name'; + execute stmt; +end if; +end$$ +delimiter $$ +begin +if exists (select indname from syscat.indexes where indschema = current_schema and indname = 'UQ_MIGTEST_E_BASIC_NAME') then + prepare stmt from 'drop index uq_migtest_e_basic_name'; + execute stmt; +end if; +end$$; +delimiter $$ +begin +if exists (select constname from syscat.tabconst where tabschema = current_schema and constname = 'UQ_MIGTEST_E_BASIC_INDEXTEST4' and tabname = 'MIGTEST_E_BASIC') then + prepare stmt from 'alter table migtest_e_basic drop constraint uq_migtest_e_basic_indextest4'; + execute stmt; +end if; +end$$ +delimiter $$ +begin +if exists (select indname from syscat.indexes where indschema = current_schema and indname = 'UQ_MIGTEST_E_BASIC_INDEXTEST4') then + prepare stmt from 'drop index uq_migtest_e_basic_indextest4'; + execute stmt; +end if; +end$$; +delimiter $$ +begin +if exists (select constname from syscat.tabconst where tabschema = current_schema and constname = 'UQ_MIGTEST_E_BASIC_INDEXTEST5' and tabname = 'MIGTEST_E_BASIC') then + prepare stmt from 'alter table migtest_e_basic drop constraint uq_migtest_e_basic_indextest5'; + execute stmt; +end if; +end$$ +delimiter $$ +begin +if exists (select indname from syscat.indexes where indschema = current_schema and indname = 'UQ_MIGTEST_E_BASIC_INDEXTEST5') then + prepare stmt from 'drop index uq_migtest_e_basic_indextest5'; + execute stmt; +end if; +end$$; +delimiter $$ +begin +if exists (select constname from syscat.tabconst where tabschema = current_schema and constname = 'CK_MIGTEST_E_ENUM_TEST_STATUS' and tabname = 'MIGTEST_E_ENUM') then + prepare stmt from 'alter table migtest_e_enum drop constraint ck_migtest_e_enum_test_status'; + execute stmt; +end if; +end$$; +delimiter $$ +begin +if exists (select indname from syscat.indexes where indschema = current_schema and indname = 'IX_MIGTEST_E_BASIC_INDEXTEST3') then + prepare stmt from 'drop index ix_migtest_e_basic_indextest3'; + execute stmt; +end if; +end$$; +delimiter $$ +begin +if exists (select indname from syscat.indexes where indschema = current_schema and indname = 'IX_MIGTEST_E_BASIC_INDEXTEST6') then + prepare stmt from 'drop index ix_migtest_e_basic_indextest6'; + execute stmt; +end if; +end$$; -- apply changes create table migtest_e_ref ( id integer generated by default as identity not null, @@ -42,15 +173,18 @@ alter table migtest_e_basic add column description_file blob(64M); 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; +call sysproc.admin_cmd('reorg table migtest_e_basic'); 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; +call sysproc.admin_cmd('reorg table migtest_e_history4'); alter table migtest_e_history6 alter column test_number1 drop default; alter table migtest_e_history6 alter column test_number1 drop not 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; +call sysproc.admin_cmd('reorg table migtest_e_history6'); -- apply post alter alter table migtest_e_ref add constraint uq_migtest_e_ref_name unique (name); alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I')); @@ -61,10 +195,10 @@ alter table migtest_e_enum add constraint ck_migtest_e_enum_test_status check ( comment on column migtest_e_history.test_string is ''; comment on table migtest_e_history is ''; -- foreign keys and indices -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_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_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_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; +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 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/db2luw/1.4__dropsFor_1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/db2luw/1.4__dropsFor_1.3.sql index 43523ab64..98a76eaf1 100644 --- 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 @@ -2,21 +2,34 @@ -- apply alter tables alter table migtest_ckey_detail drop column one_key; alter table migtest_ckey_detail drop column two_key; +call sysproc.admin_cmd('reorg table migtest_ckey_detail'); alter table migtest_ckey_parent drop column assoc_id; +call sysproc.admin_cmd('reorg table migtest_ckey_parent'); 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; +call sysproc.admin_cmd('reorg table migtest_e_basic'); 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; +call sysproc.admin_cmd('reorg table migtest_e_history2'); alter table migtest_e_history5 drop column test_boolean; +call sysproc.admin_cmd('reorg table migtest_e_history5'); alter table migtest_e_softdelete drop column deleted; +call sysproc.admin_cmd('reorg table migtest_e_softdelete'); alter table migtest_oto_child drop column master_id; +call sysproc.admin_cmd('reorg table migtest_oto_child'); -- apply post alter drop table migtest_e_user; -drop sequence migtest_e_user_seq; +delimiter $$ +begin +if exists (select seqschema from syscat.sequences where seqschema = current_schema and seqname = 'MIGTEST_E_USER_SEQ') then + prepare stmt from 'drop sequence migtest_e_user_seq'; + execute stmt; +end if; +end$$; 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/idx_db2.migrations b/ebean-test/src/test/resources/migrationtest/dbmigration/db2luw/idx_db2.migrations index 99b573f52..4209b5501 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/db2luw/idx_db2.migrations +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2luw/idx_db2.migrations @@ -1,7 +1,7 @@ -840828324, 1.0__initial.sql --1269751430, 1.1.sql --2081356955, 1.2__dropsFor_1.1.sql --998558087, 1.3.sql --1610622815, 1.4__dropsFor_1.3.sql +-583456994, 1.0__initial.sql +-40028187, 1.1.sql +859277843, 1.2__dropsFor_1.1.sql +-1165877856, 1.3.sql +1763447809, 1.4__dropsFor_1.3.sql 561281075, R__order_views.sql 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 index 714ed5d30..8298c9fa9 100644 --- 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 @@ -165,13 +165,13 @@ create unique index uq_migtest_e_basic_indextest6 on migtest_e_basic(indextest6) alter table migtest_e_ref add constraint uq_migtest_e_ref_name unique (name); -- foreign keys and indices 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; +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; +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; +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 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/db2zos/1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/db2zos/1.1.sql index 365d84144..40ebaa171 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/db2zos/1.1.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2zos/1.1.sql @@ -1,14 +1,82 @@ -- Migrationscripts for ebean unittest -- drop dependencies -alter table migtest_fk_cascade drop constraint fk_migtest_fk_cascade_one_id; -alter table migtest_fk_set_null drop constraint fk_migtest_fk_set_null_one_id; -alter table migtest_e_basic drop constraint ck_migtest_e_basic_status; -alter table migtest_e_basic drop constraint ck_migtest_e_basic_status2; -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_enum drop constraint ck_migtest_e_enum_test_status; -drop index ix_migtest_e_basic_indextest1; -drop index ix_migtest_e_basic_indextest5; +delimiter $$ +begin +if exists (select constname from syscat.tabconst where tabschema = current_schema and constname = 'FK_MIGTEST_FK_CASCADE_ONE_ID' and tabname = 'MIGTEST_FK_CASCADE') then + prepare stmt from 'alter table migtest_fk_cascade drop constraint fk_migtest_fk_cascade_one_id'; + execute stmt; +end if; +end$$; +delimiter $$ +begin +if exists (select constname from syscat.tabconst where tabschema = current_schema and constname = 'FK_MIGTEST_FK_SET_NULL_ONE_ID' and tabname = 'MIGTEST_FK_SET_NULL') then + prepare stmt from 'alter table migtest_fk_set_null drop constraint fk_migtest_fk_set_null_one_id'; + execute stmt; +end if; +end$$; +delimiter $$ +begin +if exists (select constname from syscat.tabconst where tabschema = current_schema and constname = 'CK_MIGTEST_E_BASIC_STATUS' and tabname = 'MIGTEST_E_BASIC') then + prepare stmt from 'alter table migtest_e_basic drop constraint ck_migtest_e_basic_status'; + execute stmt; +end if; +end$$; +delimiter $$ +begin +if exists (select constname from syscat.tabconst where tabschema = current_schema and constname = 'CK_MIGTEST_E_BASIC_STATUS2' and tabname = 'MIGTEST_E_BASIC') then + prepare stmt from 'alter table migtest_e_basic drop constraint ck_migtest_e_basic_status2'; + execute stmt; +end if; +end$$; +delimiter $$ +begin +if exists (select constname from syscat.tabconst where tabschema = current_schema and constname = 'UQ_MIGTEST_E_BASIC_INDEXTEST2' and tabname = 'MIGTEST_E_BASIC') then + prepare stmt from 'alter table migtest_e_basic drop constraint uq_migtest_e_basic_indextest2'; + execute stmt; +end if; +end$$ +delimiter $$ +begin +if exists (select indname from syscat.indexes where indschema = current_schema and indname = 'UQ_MIGTEST_E_BASIC_INDEXTEST2') then + prepare stmt from 'drop index uq_migtest_e_basic_indextest2'; + execute stmt; +end if; +end$$; +delimiter $$ +begin +if exists (select constname from syscat.tabconst where tabschema = current_schema and constname = 'UQ_MIGTEST_E_BASIC_INDEXTEST6' and tabname = 'MIGTEST_E_BASIC') then + prepare stmt from 'alter table migtest_e_basic drop constraint uq_migtest_e_basic_indextest6'; + execute stmt; +end if; +end$$ +delimiter $$ +begin +if exists (select indname from syscat.indexes where indschema = current_schema and indname = 'UQ_MIGTEST_E_BASIC_INDEXTEST6') then + prepare stmt from 'drop index uq_migtest_e_basic_indextest6'; + execute stmt; +end if; +end$$; +delimiter $$ +begin +if exists (select constname from syscat.tabconst where tabschema = current_schema and constname = 'CK_MIGTEST_E_ENUM_TEST_STATUS' and tabname = 'MIGTEST_E_ENUM') then + prepare stmt from 'alter table migtest_e_enum drop constraint ck_migtest_e_enum_test_status'; + execute stmt; +end if; +end$$; +delimiter $$ +begin +if exists (select indname from syscat.indexes where indschema = current_schema and indname = 'IX_MIGTEST_E_BASIC_INDEXTEST1') then + prepare stmt from 'drop index ix_migtest_e_basic_indextest1'; + execute stmt; +end if; +end$$; +delimiter $$ +begin +if exists (select indname from syscat.indexes where indschema = current_schema and indname = 'IX_MIGTEST_E_BASIC_INDEXTEST5') then + prepare stmt from 'drop index ix_migtest_e_basic_indextest5'; + execute stmt; +end if; +end$$; -- apply changes create table migtest_e_user ( id integer generated by default as identity not null, @@ -60,17 +128,22 @@ alter table migtest_e_basic add column new_boolean_field boolean default true no 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 column new_integer integer default 42 not null; +call sysproc.admin_cmd('reorg table migtest_e_basic'); alter table migtest_e_history alter column test_string set data type bigint; +call sysproc.admin_cmd('reorg table migtest_e_history'); 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); +call sysproc.admin_cmd('reorg table migtest_e_history2'); alter table migtest_e_history4 alter column test_number set data type bigint; +call sysproc.admin_cmd('reorg table migtest_e_history4'); alter table migtest_e_history5 add column test_boolean boolean default false not 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; +call sysproc.admin_cmd('reorg table migtest_e_history6'); alter table migtest_e_softdelete add column deleted boolean default false not null; alter table migtest_oto_child add column master_id bigint; -- apply post alter @@ -88,30 +161,30 @@ comment on column migtest_e_history.test_string is 'Column altered to long now'; comment on table migtest_e_history is 'We have history now'; -- foreign keys and indices 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; +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; +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; +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; +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; +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; -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_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; 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_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_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 add constraint fk_migtest_fk_set_null_one_id foreign key (one_id) references migtest_fk_one (id) on delete restrict; -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_oto_child add constraint fk_migtest_oto_child_master_id foreign key (master_id) references migtest_oto_master (id) on delete restrict; +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 add constraint fk_migtest_fk_set_null_one_id foreign key (one_id) references migtest_fk_one (id) on delete restrict on update restrict; +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_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 index ix_migtest_e_basic_indextest3 on migtest_e_basic (indextest3); create index ix_migtest_e_basic_indextest6 on migtest_e_basic (indextest6); 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 index c7f896822..50f34feed 100644 --- 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 @@ -4,8 +4,16 @@ alter table migtest_e_basic drop column description_file; 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; +call sysproc.admin_cmd('reorg table migtest_e_basic'); alter table migtest_e_history2 drop column obsolete_string1; alter table migtest_e_history2 drop column obsolete_string2; +call sysproc.admin_cmd('reorg table migtest_e_history2'); -- apply post alter drop table migtest_e_ref; -drop sequence migtest_e_ref_seq; +delimiter $$ +begin +if exists (select seqschema from syscat.sequences where seqschema = current_schema and seqname = 'MIGTEST_E_REF_SEQ') then + prepare stmt from 'drop sequence migtest_e_ref_seq'; + execute stmt; +end if; +end$$; 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 index 6c4433f9d..ac5a82ecc 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/db2zos/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2zos/1.3.sql @@ -1,21 +1,152 @@ -- Migrationscripts for ebean unittest -- drop dependencies -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_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_e_basic drop constraint ck_migtest_e_basic_status; -alter table migtest_e_basic drop constraint ck_migtest_e_basic_status2; -alter table migtest_e_basic drop constraint uq_migtest_e_basic_description; -alter table migtest_e_basic drop constraint fk_migtest_e_basic_user_id; -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_enum drop constraint ck_migtest_e_enum_test_status; -drop index ix_migtest_e_basic_indextest3; -drop index ix_migtest_e_basic_indextest6; +delimiter $$ +begin +if exists (select constname from syscat.tabconst where tabschema = current_schema and constname = 'FK_MIGTEST_CKEY_DETAIL_PARENT' and tabname = 'MIGTEST_CKEY_DETAIL') then + prepare stmt from 'alter table migtest_ckey_detail drop constraint fk_migtest_ckey_detail_parent'; + execute stmt; +end if; +end$$; +delimiter $$ +begin +if exists (select constname from syscat.tabconst where tabschema = current_schema and constname = 'FK_MIGTEST_FK_CASCADE_ONE_ID' and tabname = 'MIGTEST_FK_CASCADE') then + prepare stmt from 'alter table migtest_fk_cascade drop constraint fk_migtest_fk_cascade_one_id'; + execute stmt; +end if; +end$$; +delimiter $$ +begin +if exists (select constname from syscat.tabconst where tabschema = current_schema and constname = 'FK_MIGTEST_FK_NONE_ONE_ID' and tabname = 'MIGTEST_FK_NONE') then + prepare stmt from 'alter table migtest_fk_none drop constraint fk_migtest_fk_none_one_id'; + execute stmt; +end if; +end$$; +delimiter $$ +begin +if exists (select constname from syscat.tabconst where tabschema = current_schema and constname = 'FK_MIGTEST_FK_NONE_VIA_JOIN_ONE_ID' and tabname = 'MIGTEST_FK_NONE_VIA_JOIN') then + prepare stmt from 'alter table migtest_fk_none_via_join drop constraint fk_migtest_fk_none_via_join_one_id'; + execute stmt; +end if; +end$$; +delimiter $$ +begin +if exists (select constname from syscat.tabconst where tabschema = current_schema and constname = 'FK_MIGTEST_FK_SET_NULL_ONE_ID' and tabname = 'MIGTEST_FK_SET_NULL') then + prepare stmt from 'alter table migtest_fk_set_null drop constraint fk_migtest_fk_set_null_one_id'; + execute stmt; +end if; +end$$; +delimiter $$ +begin +if exists (select constname from syscat.tabconst where tabschema = current_schema and constname = 'CK_MIGTEST_E_BASIC_STATUS' and tabname = 'MIGTEST_E_BASIC') then + prepare stmt from 'alter table migtest_e_basic drop constraint ck_migtest_e_basic_status'; + execute stmt; +end if; +end$$; +delimiter $$ +begin +if exists (select constname from syscat.tabconst where tabschema = current_schema and constname = 'CK_MIGTEST_E_BASIC_STATUS2' and tabname = 'MIGTEST_E_BASIC') then + prepare stmt from 'alter table migtest_e_basic drop constraint ck_migtest_e_basic_status2'; + execute stmt; +end if; +end$$; +delimiter $$ +begin +if exists (select constname from syscat.tabconst where tabschema = current_schema and constname = 'UQ_MIGTEST_E_BASIC_DESCRIPTION' and tabname = 'MIGTEST_E_BASIC') then + prepare stmt from 'alter table migtest_e_basic drop constraint uq_migtest_e_basic_description'; + execute stmt; +end if; +end$$ +delimiter $$ +begin +if exists (select indname from syscat.indexes where indschema = current_schema and indname = 'UQ_MIGTEST_E_BASIC_DESCRIPTION') then + prepare stmt from 'drop index uq_migtest_e_basic_description'; + execute stmt; +end if; +end$$; +delimiter $$ +begin +if exists (select constname from syscat.tabconst where tabschema = current_schema and constname = 'FK_MIGTEST_E_BASIC_USER_ID' and tabname = 'MIGTEST_E_BASIC') then + prepare stmt from 'alter table migtest_e_basic drop constraint fk_migtest_e_basic_user_id'; + execute stmt; +end if; +end$$; +delimiter $$ +begin +if exists (select constname from syscat.tabconst where tabschema = current_schema and constname = 'UQ_MIGTEST_E_BASIC_STATUS_INDEXTEST1' and tabname = 'MIGTEST_E_BASIC') then + prepare stmt from 'alter table migtest_e_basic drop constraint uq_migtest_e_basic_status_indextest1'; + execute stmt; +end if; +end$$ +delimiter $$ +begin +if exists (select indname from syscat.indexes where indschema = current_schema and indname = 'UQ_MIGTEST_E_BASIC_STATUS_INDEXTEST1') then + prepare stmt from 'drop index uq_migtest_e_basic_status_indextest1'; + execute stmt; +end if; +end$$; +delimiter $$ +begin +if exists (select constname from syscat.tabconst where tabschema = current_schema and constname = 'UQ_MIGTEST_E_BASIC_NAME' and tabname = 'MIGTEST_E_BASIC') then + prepare stmt from 'alter table migtest_e_basic drop constraint uq_migtest_e_basic_name'; + execute stmt; +end if; +end$$ +delimiter $$ +begin +if exists (select indname from syscat.indexes where indschema = current_schema and indname = 'UQ_MIGTEST_E_BASIC_NAME') then + prepare stmt from 'drop index uq_migtest_e_basic_name'; + execute stmt; +end if; +end$$; +delimiter $$ +begin +if exists (select constname from syscat.tabconst where tabschema = current_schema and constname = 'UQ_MIGTEST_E_BASIC_INDEXTEST4' and tabname = 'MIGTEST_E_BASIC') then + prepare stmt from 'alter table migtest_e_basic drop constraint uq_migtest_e_basic_indextest4'; + execute stmt; +end if; +end$$ +delimiter $$ +begin +if exists (select indname from syscat.indexes where indschema = current_schema and indname = 'UQ_MIGTEST_E_BASIC_INDEXTEST4') then + prepare stmt from 'drop index uq_migtest_e_basic_indextest4'; + execute stmt; +end if; +end$$; +delimiter $$ +begin +if exists (select constname from syscat.tabconst where tabschema = current_schema and constname = 'UQ_MIGTEST_E_BASIC_INDEXTEST5' and tabname = 'MIGTEST_E_BASIC') then + prepare stmt from 'alter table migtest_e_basic drop constraint uq_migtest_e_basic_indextest5'; + execute stmt; +end if; +end$$ +delimiter $$ +begin +if exists (select indname from syscat.indexes where indschema = current_schema and indname = 'UQ_MIGTEST_E_BASIC_INDEXTEST5') then + prepare stmt from 'drop index uq_migtest_e_basic_indextest5'; + execute stmt; +end if; +end$$; +delimiter $$ +begin +if exists (select constname from syscat.tabconst where tabschema = current_schema and constname = 'CK_MIGTEST_E_ENUM_TEST_STATUS' and tabname = 'MIGTEST_E_ENUM') then + prepare stmt from 'alter table migtest_e_enum drop constraint ck_migtest_e_enum_test_status'; + execute stmt; +end if; +end$$; +delimiter $$ +begin +if exists (select indname from syscat.indexes where indschema = current_schema and indname = 'IX_MIGTEST_E_BASIC_INDEXTEST3') then + prepare stmt from 'drop index ix_migtest_e_basic_indextest3'; + execute stmt; +end if; +end$$; +delimiter $$ +begin +if exists (select indname from syscat.indexes where indschema = current_schema and indname = 'IX_MIGTEST_E_BASIC_INDEXTEST6') then + prepare stmt from 'drop index ix_migtest_e_basic_indextest6'; + execute stmt; +end if; +end$$; -- apply changes create table migtest_e_ref ( id integer generated by default as identity not null, @@ -42,15 +173,18 @@ alter table migtest_e_basic add column description_file blob(64M); 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; +call sysproc.admin_cmd('reorg table migtest_e_basic'); 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; +call sysproc.admin_cmd('reorg table migtest_e_history4'); alter table migtest_e_history6 alter column test_number1 drop default; alter table migtest_e_history6 alter column test_number1 drop not 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; +call sysproc.admin_cmd('reorg table migtest_e_history6'); -- apply post alter alter table migtest_e_ref add constraint uq_migtest_e_ref_name unique (name); alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I')); @@ -61,10 +195,10 @@ alter table migtest_e_enum add constraint ck_migtest_e_enum_test_status check ( comment on column migtest_e_history.test_string is ''; comment on table migtest_e_history is ''; -- foreign keys and indices -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_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_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_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; +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 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/db2zos/1.4__dropsFor_1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/db2zos/1.4__dropsFor_1.3.sql index 43523ab64..98a76eaf1 100644 --- 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 @@ -2,21 +2,34 @@ -- apply alter tables alter table migtest_ckey_detail drop column one_key; alter table migtest_ckey_detail drop column two_key; +call sysproc.admin_cmd('reorg table migtest_ckey_detail'); alter table migtest_ckey_parent drop column assoc_id; +call sysproc.admin_cmd('reorg table migtest_ckey_parent'); 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; +call sysproc.admin_cmd('reorg table migtest_e_basic'); 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; +call sysproc.admin_cmd('reorg table migtest_e_history2'); alter table migtest_e_history5 drop column test_boolean; +call sysproc.admin_cmd('reorg table migtest_e_history5'); alter table migtest_e_softdelete drop column deleted; +call sysproc.admin_cmd('reorg table migtest_e_softdelete'); alter table migtest_oto_child drop column master_id; +call sysproc.admin_cmd('reorg table migtest_oto_child'); -- apply post alter drop table migtest_e_user; -drop sequence migtest_e_user_seq; +delimiter $$ +begin +if exists (select seqschema from syscat.sequences where seqschema = current_schema and seqname = 'MIGTEST_E_USER_SEQ') then + prepare stmt from 'drop sequence migtest_e_user_seq'; + execute stmt; +end if; +end$$; 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/idx_db2.migrations b/ebean-test/src/test/resources/migrationtest/dbmigration/db2zos/idx_db2.migrations index 99b573f52..4209b5501 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/db2zos/idx_db2.migrations +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2zos/idx_db2.migrations @@ -1,7 +1,7 @@ -840828324, 1.0__initial.sql --1269751430, 1.1.sql --2081356955, 1.2__dropsFor_1.1.sql --998558087, 1.3.sql --1610622815, 1.4__dropsFor_1.3.sql +-583456994, 1.0__initial.sql +-40028187, 1.1.sql +859277843, 1.2__dropsFor_1.1.sql +-1165877856, 1.3.sql +1763447809, 1.4__dropsFor_1.3.sql 561281075, R__order_views.sql From 8ad8f47c6b9c791da28659798b783210bd78434a Mon Sep 17 00:00:00 2001 From: Noemi Szemenyei Date: Tue, 15 Mar 2022 10:24:36 +0100 Subject: [PATCH 096/114] Created failing test case (cherry picked from commit 2b21588c903aa526c5586648ea35a5955673bfb9) --- .../TestWithCacheAndLazyLoad.java | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/ebean-test/src/test/java/org/tests/model/lazywithcache/TestWithCacheAndLazyLoad.java b/ebean-test/src/test/java/org/tests/model/lazywithcache/TestWithCacheAndLazyLoad.java index 380f82c5d..8c8066dbc 100644 --- a/ebean-test/src/test/java/org/tests/model/lazywithcache/TestWithCacheAndLazyLoad.java +++ b/ebean-test/src/test/java/org/tests/model/lazywithcache/TestWithCacheAndLazyLoad.java @@ -2,9 +2,14 @@ package org.tests.model.lazywithcache; import io.ebean.BaseTestCase; import io.ebean.DB; +import io.ebean.Transaction; + import org.junit.jupiter.api.Test; import static org.assertj.core.api.Assertions.assertThat; +import static org.junit.jupiter.api.Assertions.assertNotNull; + +import java.util.List; /** * Test with bean cache and lazy loaded property. @@ -47,5 +52,37 @@ public class TestWithCacheAndLazyLoad extends BaseTestCase{ assertThat(temp.getAddress()).isEqualTo("Address"); assertThat(temp.getName()).isEqualTo("Child With Cache"); } + + @Test + public void testBatch() throws Exception { + + for (int i = 0; i < 2; i++) { + ChildWithCache child = new ChildWithCache(); + child.setId(1000L+i); + child.setName("Child With Cache "+ i); + child.setAddress("Address"); + DB.save(child); + + ParentA parentA = new ParentA(); + parentA.setId(1000L+i); + parentA.setName("Parent A"); + parentA.setChild(child); + DB.save(parentA); + } + // 0. load cache + ParentA temp = DB.find(ParentA.class, 1000L); + temp.getChild().getName(); + + try (Transaction txn = DB.beginTransaction()) { + // 1. FindList + List list = DB.find(ParentA.class).where().ge("id", 1000L).orderBy("id").findList(); + // 2. FindById (first element from list) + temp = DB.find(ParentA.class, 1000L); + assertNotNull(temp.getChild().getName()); + // 3. access elements in list + assertNotNull(list.get(0).getChild().getAddress()); + assertNotNull(list.get(1).getChild().getAddress()); + } + } } From 826b507b773afd33bc3328ae0bfc83e921b80022 Mon Sep 17 00:00:00 2001 From: Noemi Szemenyei Date: Tue, 15 Mar 2022 10:36:36 +0100 Subject: [PATCH 097/114] Suggested fix (cherry picked from commit 52ca271a13906971f0769e98c465c5cc87cb06d0) --- .../io/ebeaninternal/server/loadcontext/DLoadBeanContext.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/loadcontext/DLoadBeanContext.java b/ebean-core/src/main/java/io/ebeaninternal/server/loadcontext/DLoadBeanContext.java index 427d59de2..54c4dd84c 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/loadcontext/DLoadBeanContext.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/loadcontext/DLoadBeanContext.java @@ -190,7 +190,7 @@ final class DLoadBeanContext extends DLoadBaseContext implements LoadBeanContext // lazy load property was a Many return; } - if (list.isEmpty()) { + if (!list.contains(ebi)) { // re-add to the batch and lazy load from DB skipping l2 cache list.add(ebi); } else if (context.hitCache) { From edb6a0ebe2d5171157949dd01beaf91934cbd5c0 Mon Sep 17 00:00:00 2001 From: Noemi Szemenyei Date: Tue, 15 Mar 2022 10:46:22 +0100 Subject: [PATCH 098/114] performance boost list --> set (cherry picked from commit 2478aded70357e38efe98307c9362e240bcbed2b) --- .../io/ebeaninternal/api/LoadBeanBuffer.java | 4 +-- .../io/ebeaninternal/api/LoadBeanRequest.java | 4 +-- .../server/core/DefaultBeanLoader.java | 3 ++- .../server/deploy/BeanDescriptor.java | 4 +-- .../deploy/BeanDescriptorCacheHelp.java | 4 +-- .../server/loadcontext/DLoadBeanContext.java | 27 ++++++++++--------- 6 files changed, 24 insertions(+), 22 deletions(-) diff --git a/ebean-core/src/main/java/io/ebeaninternal/api/LoadBeanBuffer.java b/ebean-core/src/main/java/io/ebeaninternal/api/LoadBeanBuffer.java index 3b999bc3c..e19b2d3c0 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/api/LoadBeanBuffer.java +++ b/ebean-core/src/main/java/io/ebeaninternal/api/LoadBeanBuffer.java @@ -4,7 +4,7 @@ import io.ebean.bean.EntityBeanIntercept; import io.ebean.bean.PersistenceContext; import io.ebeaninternal.server.deploy.BeanDescriptor; -import java.util.List; +import java.util.Set; /** * A buffer of beans for batch lazy loading and secondary query loading. @@ -13,7 +13,7 @@ public interface LoadBeanBuffer { int batchSize(); - List batch(); + Set batch(); BeanDescriptor descriptor(); diff --git a/ebean-core/src/main/java/io/ebeaninternal/api/LoadBeanRequest.java b/ebean-core/src/main/java/io/ebeaninternal/api/LoadBeanRequest.java index ffe28462c..092050e7e 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/api/LoadBeanRequest.java +++ b/ebean-core/src/main/java/io/ebeaninternal/api/LoadBeanRequest.java @@ -16,7 +16,7 @@ import java.util.Set; */ public final class LoadBeanRequest extends LoadRequest { - private final List batch; + private final Set batch; private final LoadBeanBuffer loadBuffer; private final String lazyLoadProperty; private final boolean loadCache; @@ -58,7 +58,7 @@ public final class LoadBeanRequest extends LoadRequest { /** * Return the batch of beans to actually load. */ - public List batch() { + public Set batch() { return batch; } diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/core/DefaultBeanLoader.java b/ebean-core/src/main/java/io/ebeaninternal/server/core/DefaultBeanLoader.java index bc03d253c..4a2ffb68c 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/core/DefaultBeanLoader.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/core/DefaultBeanLoader.java @@ -17,6 +17,7 @@ import org.slf4j.Logger; import javax.persistence.EntityNotFoundException; import java.util.List; +import java.util.Set; /** * Helper to handle lazy loading and refreshing of beans. @@ -121,7 +122,7 @@ final class DefaultBeanLoader { * Load a batch of beans for +query or +lazy loading. */ void loadBean(LoadBeanRequest loadRequest) { - List batch = loadRequest.batch(); + Set batch = loadRequest.batch(); if (batch.isEmpty()) { throw new RuntimeException("Nothing in batch?"); } diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanDescriptor.java b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanDescriptor.java index c06dfce3e..761e2e3a5 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanDescriptor.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanDescriptor.java @@ -1310,8 +1310,8 @@ public class BeanDescriptor implements BeanType, STreeType, SpiBeanType { * Hit the bean cache trying to load a list/batch of entities. * Return the set of entities that were successfully loaded from L2 cache. */ - public Set cacheBeanLoadAll(List list, PersistenceContext persistenceContext, int lazyLoadProperty, String propertyName) { - return cacheHelp.beanCacheLoadAll(list, persistenceContext, lazyLoadProperty, propertyName); + public Set cacheBeanLoadAll(Set batch, PersistenceContext persistenceContext, int lazyLoadProperty, String propertyName) { + return cacheHelp.beanCacheLoadAll(batch, persistenceContext, lazyLoadProperty, propertyName); } /** diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanDescriptorCacheHelp.java b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanDescriptorCacheHelp.java index 901f8dff3..725a850e2 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanDescriptorCacheHelp.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanDescriptorCacheHelp.java @@ -693,9 +693,9 @@ final class BeanDescriptorCacheHelp { /** * Load a batch of entities from L2 bean cache checking the lazy loaded property is loaded. */ - Set beanCacheLoadAll(List list, PersistenceContext context, int lazyLoadProperty, String propertyName) { + Set beanCacheLoadAll(Set batch, PersistenceContext context, int lazyLoadProperty, String propertyName) { Map ebis = new HashMap<>(); - for (EntityBeanIntercept ebi : list) { + for (EntityBeanIntercept ebi : batch) { ebis.put(desc.cacheKeyForBean(ebi.getOwner()), ebi); } diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/loadcontext/DLoadBeanContext.java b/ebean-core/src/main/java/io/ebeaninternal/server/loadcontext/DLoadBeanContext.java index 54c4dd84c..a8533956c 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/loadcontext/DLoadBeanContext.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/loadcontext/DLoadBeanContext.java @@ -15,6 +15,7 @@ import io.ebeaninternal.server.deploy.BeanPropertyAssocMany; import io.ebeaninternal.server.querydefn.OrmQueryProperties; import java.util.ArrayList; +import java.util.HashSet; import java.util.List; import java.util.Set; import java.util.concurrent.locks.Lock; @@ -91,7 +92,7 @@ final class DLoadBeanContext extends DLoadBaseContext implements LoadBeanContext try { if (bufferList != null) { for (LoadBuffer loadBuffer : bufferList) { - if (!loadBuffer.list.isEmpty()) { + if (!loadBuffer.batch.isEmpty()) { parent.getEbeanServer().loadBean(new LoadBeanRequest(loadBuffer, parentRequest)); } if (forEach) { @@ -115,13 +116,13 @@ final class DLoadBeanContext extends DLoadBaseContext implements LoadBeanContext private final ReentrantLock bufferLock = new ReentrantLock(); private final DLoadBeanContext context; private final int batchSize; - private final List list; + private final Set batch; private PersistenceContext persistenceContext; LoadBuffer(DLoadBeanContext context, int batchSize) { this.context = context; this.batchSize = batchSize; - this.list = new ArrayList<>(batchSize); + this.batch = new HashSet<>(Math.max((int) (batchSize/.75f) + 1, 16)); } @Override @@ -139,7 +140,7 @@ final class DLoadBeanContext extends DLoadBaseContext implements LoadBeanContext * Return true if the buffer is full. */ public boolean isFull() { - return batchSize == list.size(); + return batchSize == batch.size(); } /** @@ -150,12 +151,12 @@ final class DLoadBeanContext extends DLoadBaseContext implements LoadBeanContext // get persistenceContext from first loaded bean into the buffer persistenceContext = ebi.getPersistenceContext(); } - list.add(ebi); + batch.add(ebi); } @Override - public List batch() { - return list; + public Set batch() { + return batch; } @Override @@ -190,13 +191,13 @@ final class DLoadBeanContext extends DLoadBaseContext implements LoadBeanContext // lazy load property was a Many return; } - if (!list.contains(ebi)) { + if (!batch.contains(ebi)) { // re-add to the batch and lazy load from DB skipping l2 cache - list.add(ebi); + batch.add(ebi); } else if (context.hitCache) { - Set hits = context.desc.cacheBeanLoadAll(list, persistenceContext, ebi.getLazyLoadPropertyIndex(), ebi.getLazyLoadProperty()); - list.removeAll(hits); - if (list.isEmpty() || hits.contains(ebi)) { + Set hits = context.desc.cacheBeanLoadAll(batch, persistenceContext, ebi.getLazyLoadPropertyIndex(), ebi.getLazyLoadProperty()); + batch.removeAll(hits); + if (batch.isEmpty() || hits.contains(ebi)) { // successfully hit the L2 cache so don't invoke DB lazy loading return; } @@ -204,7 +205,7 @@ final class DLoadBeanContext extends DLoadBaseContext implements LoadBeanContext LoadBeanRequest req = new LoadBeanRequest(this, ebi, context.hitCache); context.desc.ebeanServer().loadBean(req); - list.clear(); + batch.clear(); } } From c9204eed3f5fc7d3472434404c69559c0d4c0b7c Mon Sep 17 00:00:00 2001 From: Roland Praml Date: Tue, 15 Mar 2022 15:59:33 +0100 Subject: [PATCH 099/114] DB2: HistorySupport added --- .../dbplatform/db2/BaseDB2Platform.java | 1 + .../dbplatform/db2/DB2HistorySupport.java | 30 ++++ .../ddlgeneration/platform/BaseTableDdl.java | 10 +- .../ddlgeneration/platform/DB2Ddl.java | 30 ++++ .../ddlgeneration/platform/Db2HistoryDdl.java | 138 ++++++++++++++++++ .../dbmigration/DbMigrationTest.java | 3 + 6 files changed, 211 insertions(+), 1 deletion(-) create mode 100644 ebean-api/src/main/java/io/ebean/config/dbplatform/db2/DB2HistorySupport.java create mode 100644 ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/Db2HistoryDdl.java diff --git a/ebean-api/src/main/java/io/ebean/config/dbplatform/db2/BaseDB2Platform.java b/ebean-api/src/main/java/io/ebean/config/dbplatform/db2/BaseDB2Platform.java index 8b313d26d..2ef1488ac 100644 --- a/ebean-api/src/main/java/io/ebean/config/dbplatform/db2/BaseDB2Platform.java +++ b/ebean-api/src/main/java/io/ebean/config/dbplatform/db2/BaseDB2Platform.java @@ -36,6 +36,7 @@ public abstract class BaseDB2Platform extends DatabasePlatform { .addDataIntegrity("23502","23503","23504","23511","23512","23511","42917","23515") .build(); + historySupport = new DB2HistorySupport(); booleanDbType = Types.BOOLEAN; dbTypeMap.put(DbType.TINYINT, new DbPlatformType("smallint", false)); dbTypeMap.put(DbType.INTEGER, new DbPlatformType("integer", false)); diff --git a/ebean-api/src/main/java/io/ebean/config/dbplatform/db2/DB2HistorySupport.java b/ebean-api/src/main/java/io/ebean/config/dbplatform/db2/DB2HistorySupport.java new file mode 100644 index 000000000..122f1b57c --- /dev/null +++ b/ebean-api/src/main/java/io/ebean/config/dbplatform/db2/DB2HistorySupport.java @@ -0,0 +1,30 @@ +package io.ebean.config.dbplatform.db2; + +import io.ebean.config.dbplatform.DbStandardHistorySupport; + +/** + * DB2 based history support. + */ +public class DB2HistorySupport extends DbStandardHistorySupport { + + @Override + public String getAsOfViewSuffix(String asOfViewSuffix) { + return " for system_time as of ?"; + } + + @Override + public String getVersionsBetweenSuffix(String asOfViewSuffix) { + return " for system_time between ? and ?"; + } + + @Override + public String getSysPeriodLower(String tableAlias, String sysPeriod) { + return tableAlias + "." + sysPeriod + "_start"; + } + + @Override + public String getSysPeriodUpper(String tableAlias, String sysPeriod) { + return tableAlias + "." + sysPeriod + "_end"; + } + +} diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/BaseTableDdl.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/BaseTableDdl.java index cef2edc92..8d606abfa 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/BaseTableDdl.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/BaseTableDdl.java @@ -759,6 +759,11 @@ public class BaseTableDdl implements TableDdl { // we will apply only type changes or notNull -> null transition boolean isNull = Boolean.FALSE.equals(alter.isNotnull()); boolean applyToHistory = alter.getType() != null || isNull; + boolean syncExact = platformDdl.getPlatform().isPlatform(Platform.DB2); + // DB2 needs exact sync for notnull/null + if (syncExact && alter.isNotnull() != null) { + applyToHistory = true; + } if (applyToHistory) { platformDdl.regenerateHistoryTriggers(writer, alter.getTableName()); if (alterHistoryTables) { @@ -768,7 +773,10 @@ public class BaseTableDdl implements TableDdl { // ignore default value (not needed on history tables) alterHistoryColumn.setCurrentType(alter.getCurrentType()); alterHistoryColumn.setType(alter.getType()); - if (isNull) { + if (syncExact) { + alterHistoryColumn.setCurrentNotnull(alter.isCurrentNotnull()); + alterHistoryColumn.setNotnull(alter.isNotnull()); + } else if (isNull) { // do transition from notNull to null alterHistoryColumn.setCurrentNotnull(Boolean.TRUE); alterHistoryColumn.setNotnull(Boolean.FALSE); diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/DB2Ddl.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/DB2Ddl.java index cb4b3434c..c021cfdfc 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/DB2Ddl.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/DB2Ddl.java @@ -4,8 +4,11 @@ import java.util.ArrayList; import java.util.List; import io.ebean.config.dbplatform.DatabasePlatform; +import io.ebean.util.StringHelper; import io.ebeaninternal.dbmigration.ddlgeneration.DdlAlterTable; +import io.ebeaninternal.dbmigration.ddlgeneration.DdlBuffer; import io.ebeaninternal.dbmigration.ddlgeneration.DdlWrite; +import io.ebeaninternal.dbmigration.migration.Column; /** * DB2 platform specific DDL. @@ -22,6 +25,7 @@ public class DB2Ddl extends PlatformDdl { this.columnSetNull = "drop not null"; this.columnSetType = "set data type "; this.inlineUniqueWhenNullable = false; + this.historyDdl = new Db2HistoryDdl(); } @Override @@ -46,6 +50,32 @@ public class DB2Ddl extends PlatformDdl { return sb.toString(); } + @Override + public void alterTableAddColumn(DdlWrite writer, String tableName, Column column, boolean onHistoryTable, String defaultValue) { + + String convertedType = convert(column.getType()); + DdlBuffer buffer = alterTable(writer, tableName).append(addColumn, column.getName()); + buffer.append(convertedType); + + // Add default value also to history table if it is not excluded + if (defaultValue != null) { + buffer.append(" default "); + buffer.append(defaultValue); + } + + if (isTrue(column.isNotnull())) { + buffer.appendWithSpace(columnNotNull); + } + // DB2 History table must match exact! + if (!onHistoryTable) { + // check constraints cannot be added in one statement for h2 + if (!StringHelper.isNull(column.getCheckConstraint())) { + String ddl = alterTableAddCheckConstraint(tableName, column.getCheckConstraintName(), column.getCheckConstraint()); + writer.applyPostAlter().appendStatement(ddl); + } + } + + } @Override public String alterTableDropForeignKey(String tableName, String fkName) { return alterTableDropConstraint(tableName, fkName); diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/Db2HistoryDdl.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/Db2HistoryDdl.java new file mode 100644 index 000000000..f1409974d --- /dev/null +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/Db2HistoryDdl.java @@ -0,0 +1,138 @@ +package io.ebeaninternal.dbmigration.ddlgeneration.platform; + +import java.util.Collection; + +import io.ebean.config.DatabaseConfig; +import io.ebeaninternal.dbmigration.ddlgeneration.DdlAlterTable; +import io.ebeaninternal.dbmigration.ddlgeneration.DdlBuffer; +import io.ebeaninternal.dbmigration.ddlgeneration.DdlWrite; +import io.ebeaninternal.dbmigration.migration.AddHistoryTable; +import io.ebeaninternal.dbmigration.migration.DropHistoryTable; +import io.ebeaninternal.dbmigration.model.MColumn; +import io.ebeaninternal.dbmigration.model.MTable; + +/** + * DB2 History support. + * + * @author Roland Praml, FOCONIS AG + */ +public class Db2HistoryDdl implements PlatformHistoryDdl { + + private String systemPeriodStart; + private String systemPeriodEnd; + private String transactionId; + private PlatformDdl platformDdl; + private String historySuffix; + + @Override + public void configure(DatabaseConfig config, PlatformDdl platformDdl) { + this.systemPeriodStart = config.getAsOfSysPeriod() + "_start"; + this.systemPeriodEnd = config.getAsOfSysPeriod() + "_end"; + this.transactionId = config.getAsOfSysPeriod() + "_txn"; // required for DB2 + this.platformDdl = platformDdl; + this.historySuffix = config.getHistoryTableSuffix(); + } + + @Override + public void createWithHistory(DdlWrite writer, MTable table) { + String tableName = table.getName(); + String historyTableName = tableName + historySuffix; + + DdlBuffer apply = writer.applyPostAlter(); + apply.append(platformDdl.getCreateTableCommandPrefix()).append(" ").append(historyTableName).append(" (").newLine(); + + // create history table + Collection cols = table.allColumns(); + for (MColumn column : cols) { + if (!column.isDraftOnly()) { + writeColumnDefinition(apply, column.getName(), column.getType(), column.isNotnull() || column.isPrimaryKey()); + apply.append(",").newLine(); + } + } + writeColumnDefinition(apply, systemPeriodStart, "timestamp(12)", true); + apply.append(",").newLine(); + writeColumnDefinition(apply, systemPeriodEnd, "timestamp(12)", true); + apply.append(",").newLine(); + writeColumnDefinition(apply, transactionId, "timestamp(12)", false); + apply.newLine().append(")").endOfStatement(); + + // enable system versioning + addSysPeriodColumns(writer, tableName); + enableSystemVersioning(apply, tableName); + platformDdl.alterTable(writer, tableName).setHistoryHandled(); + + // drop all: We do not drop columns here, as the whole table will be dropped + disableSystemVersioning(writer.dropAll(), tableName); + writer.dropAll().append("drop table ").append(historyTableName).endOfStatement(); + } + + void addSysPeriodColumns(DdlWrite writer, String baseTable) { + platformDdl.alterTableAddColumn(writer, baseTable, systemPeriodStart, "timestamp(12) not null generated always as row begin", null); + platformDdl.alterTableAddColumn(writer, baseTable, systemPeriodEnd, "timestamp(12) not null generated always as row end", null); + platformDdl.alterTableAddColumn(writer, baseTable, transactionId, "timestamp(12) generated always as transaction start id", null); + platformDdl.alterTable(writer, baseTable).append("add period system_time", null) + .append("(").append(systemPeriodStart).append(",").append(systemPeriodEnd).append(")"); + } + + @Override + public void dropHistoryTable(DdlWrite writer, DropHistoryTable dropHistoryTable) { + dropHistoryTable(writer, dropHistoryTable.getBaseTable(), dropHistoryTable.getBaseTable() + historySuffix); + } + + protected void dropHistoryTable(DdlWrite writer, String baseTable, String historyTable) { + disableSystemVersioning(writer.apply(), baseTable); + writer.apply().append("alter table ").append(baseTable).append(" drop period system_time").endOfStatement(); + + // drop the period & period columns + platformDdl.alterTableDropColumn(writer, baseTable, systemPeriodStart); + platformDdl.alterTableDropColumn(writer, baseTable, systemPeriodEnd); + platformDdl.alterTableDropColumn(writer, baseTable, transactionId); + + // drop the history table + writer.applyPostAlter().append("drop table ").append(historyTable).endOfStatement(); + } + + @Override + public void addHistoryTable(DdlWrite writer, AddHistoryTable addHistoryTable) { + MTable table = writer.getTable(addHistoryTable.getBaseTable()); + if (table == null) { + throw new IllegalStateException("MTable " + addHistoryTable.getBaseTable() + " not found in writer? (required for history DDL)"); + } + createWithHistory(writer, table); + } + + @Override + public boolean alterHistoryTables() { + return true; + } + + @Override + public void updateTriggers(DdlWrite writer, String tableName) { + DdlAlterTable alter = platformDdl.alterTable(writer, tableName); + MTable table = writer.getTable(tableName); + if (table.isWithHistory() && !alter.isHistoryHandled()) { + disableSystemVersioning(writer.apply(), tableName); + enableSystemVersioning(writer.applyPostAlter(), tableName); + alter.setHistoryHandled(); + } + } + + protected void writeColumnDefinition(DdlBuffer buffer, String columnName, String type, boolean isNotNull) { + + String platformType = platformDdl.convert(type); + buffer.append(" ").append(platformDdl.lowerColumnName(columnName)); + buffer.append(" ").append(platformType); + if (isNotNull) { + buffer.append(" not null"); + } + } + + public void disableSystemVersioning(DdlBuffer apply, String tableName) { + apply.append("alter table ").append(tableName).append(" drop versioning").endOfStatement(); + } + + public void enableSystemVersioning(DdlBuffer apply, String tableName) { + apply.append("alter table ").append(tableName).append(" add versioning use history table ").append(tableName).append(historySuffix).endOfStatement(); + } + +} 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 7131e0a90..df309a65a 100644 --- a/ebean-test/src/test/java/io/ebeaninternal/dbmigration/DbMigrationTest.java +++ b/ebean-test/src/test/java/io/ebeaninternal/dbmigration/DbMigrationTest.java @@ -235,6 +235,9 @@ public class DbMigrationTest extends BaseTestCase { case SQLSERVER17: // these DBs are 'standard based' so they also do not support HistoryExclude case MARIADB: case HANA: + case DB2LUW: + case DB2FORI: // not yet tested + case DB2ZOS: // not yet tested assertThat(versions2.get(0).getDiff().toString()).as("using platform: %s, versions2:%s", server().platform(), versions2) .contains("testString=foo2,foo1") .contains("testString2=bar2,bar1"); From be3e08018e9bde3409b50277d0de8f3c30e2dffb Mon Sep 17 00:00:00 2001 From: Roland Praml Date: Tue, 15 Mar 2022 15:59:50 +0100 Subject: [PATCH 100/114] Reference Scripts --- .../dbmigration/db2fori/1.0__initial.sql | 64 +++++++++++++++++++ .../migrationtest/dbmigration/db2fori/1.1.sql | 33 ++++++++++ .../dbmigration/db2fori/1.2__dropsFor_1.1.sql | 6 ++ .../migrationtest/dbmigration/db2fori/1.3.sql | 16 +++++ .../dbmigration/db2fori/1.4__dropsFor_1.3.sql | 18 ++++++ .../dbmigration/db2fori/idx_db2.migrations | 10 +-- .../dbmigration/db2legacy/1.0__initial.sql | 64 +++++++++++++++++++ .../dbmigration/db2legacy/1.1.sql | 33 ++++++++++ .../db2legacy/1.2__dropsFor_1.1.sql | 6 ++ .../dbmigration/db2legacy/1.3.sql | 16 +++++ .../db2legacy/1.4__dropsFor_1.3.sql | 18 ++++++ .../dbmigration/db2legacy/idx_db2.migrations | 10 +-- .../dbmigration/db2luw/1.0__initial.sql | 64 +++++++++++++++++++ .../migrationtest/dbmigration/db2luw/1.1.sql | 33 ++++++++++ .../dbmigration/db2luw/1.2__dropsFor_1.1.sql | 6 ++ .../migrationtest/dbmigration/db2luw/1.3.sql | 16 +++++ .../dbmigration/db2luw/1.4__dropsFor_1.3.sql | 18 ++++++ .../dbmigration/db2luw/idx_db2.migrations | 10 +-- .../dbmigration/db2zos/1.0__initial.sql | 64 +++++++++++++++++++ .../migrationtest/dbmigration/db2zos/1.1.sql | 33 ++++++++++ .../dbmigration/db2zos/1.2__dropsFor_1.1.sql | 6 ++ .../migrationtest/dbmigration/db2zos/1.3.sql | 16 +++++ .../dbmigration/db2zos/1.4__dropsFor_1.3.sql | 18 ++++++ .../dbmigration/db2zos/idx_db2.migrations | 10 +-- 24 files changed, 568 insertions(+), 20 deletions(-) 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 index 52fee3a2e..cc23e8881 100644 --- 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 @@ -159,9 +159,73 @@ create table migtest_oto_master ( constraint pk_migtest_oto_master primary key (id) ); +-- apply alter tables +alter table migtest_e_history2 add column sys_period_start timestamp(12) not null generated always as row begin; +alter table migtest_e_history2 add column sys_period_end timestamp(12) not null generated always as row end; +alter table migtest_e_history2 add column sys_period_txn timestamp(12) generated always as transaction start id; +alter table migtest_e_history2 add period system_time (sys_period_start,sys_period_end); +alter table migtest_e_history3 add column sys_period_start timestamp(12) not null generated always as row begin; +alter table migtest_e_history3 add column sys_period_end timestamp(12) not null generated always as row end; +alter table migtest_e_history3 add column sys_period_txn timestamp(12) generated always as transaction start id; +alter table migtest_e_history3 add period system_time (sys_period_start,sys_period_end); +alter table migtest_e_history4 add column sys_period_start timestamp(12) not null generated always as row begin; +alter table migtest_e_history4 add column sys_period_end timestamp(12) not null generated always as row end; +alter table migtest_e_history4 add column sys_period_txn timestamp(12) generated always as transaction start id; +alter table migtest_e_history4 add period system_time (sys_period_start,sys_period_end); +alter table migtest_e_history5 add column sys_period_start timestamp(12) not null generated always as row begin; +alter table migtest_e_history5 add column sys_period_end timestamp(12) not null generated always as row end; +alter table migtest_e_history5 add column sys_period_txn timestamp(12) generated always as transaction start id; +alter table migtest_e_history5 add period system_time (sys_period_start,sys_period_end); +alter table migtest_e_history6 add column sys_period_start timestamp(12) not null generated always as row begin; +alter table migtest_e_history6 add column sys_period_end timestamp(12) not null generated always as row end; +alter table migtest_e_history6 add column sys_period_txn timestamp(12) generated always as transaction start id; +alter table migtest_e_history6 add period system_time (sys_period_start,sys_period_end); -- apply post alter 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_history2_history ( + id integer not null, + test_string varchar(255), + obsolete_string1 varchar(255), + obsolete_string2 varchar(255), + sys_period_start timestamp(12) not null, + sys_period_end timestamp(12) not null, + sys_period_txn timestamp(12) +); +alter table migtest_e_history2 add versioning use history table migtest_e_history2_history; +create table migtest_e_history3_history ( + id integer not null, + test_string varchar(255), + sys_period_start timestamp(12) not null, + sys_period_end timestamp(12) not null, + sys_period_txn timestamp(12) +); +alter table migtest_e_history3 add versioning use history table migtest_e_history3_history; +create table migtest_e_history4_history ( + id integer not null, + test_number integer, + sys_period_start timestamp(12) not null, + sys_period_end timestamp(12) not null, + sys_period_txn timestamp(12) +); +alter table migtest_e_history4 add versioning use history table migtest_e_history4_history; +create table migtest_e_history5_history ( + id integer not null, + test_number integer, + sys_period_start timestamp(12) not null, + sys_period_end timestamp(12) not null, + sys_period_txn timestamp(12) +); +alter table migtest_e_history5 add versioning use history table migtest_e_history5_history; +create table migtest_e_history6_history ( + id integer not null, + test_number1 integer, + test_number2 integer not null, + sys_period_start timestamp(12) not null, + sys_period_end timestamp(12) not null, + sys_period_txn timestamp(12) +); +alter table migtest_e_history6 add versioning use history table migtest_e_history6_history; alter table migtest_e_ref add constraint uq_migtest_e_ref_name unique (name); -- foreign keys and indices create index ix_migtest_fk_cascade_one_id on migtest_fk_cascade (one_id); 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 index 1e5338263..298982766 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/db2fori/1.1.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2fori/1.1.sql @@ -110,9 +110,14 @@ insert into migtest_e_user (id) select distinct user_id from migtest_e_basic; -- 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 drop versioning; +alter table migtest_e_history3 drop versioning; +alter table migtest_e_history4 drop versioning; +alter table migtest_e_history5 drop versioning; -- 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 drop versioning; -- apply alter tables alter table migtest_ckey_detail add column one_key integer; alter table migtest_ckey_detail add column two_key varchar(127); @@ -129,6 +134,10 @@ alter table migtest_e_basic add column new_boolean_field2 smallint default 0 def 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; call sysproc.admin_cmd('reorg table migtest_e_basic'); +alter table migtest_e_history add column sys_period_start timestamp(12) not null generated always as row begin; +alter table migtest_e_history add column sys_period_end timestamp(12) not null generated always as row end; +alter table migtest_e_history add column sys_period_txn timestamp(12) generated always as transaction start id; +alter table migtest_e_history add period system_time (sys_period_start,sys_period_end); alter table migtest_e_history alter column test_string set data type bigint; call sysproc.admin_cmd('reorg table migtest_e_history'); alter table migtest_e_history2 alter column test_string set default 'unknown'; @@ -137,13 +146,24 @@ 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); call sysproc.admin_cmd('reorg table migtest_e_history2'); +alter table migtest_e_history2_history alter column test_string set not null; +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' not null; +alter table migtest_e_history2_history add column new_column varchar(20); +call sysproc.admin_cmd('reorg table migtest_e_history2_history'); alter table migtest_e_history4 alter column test_number set data type bigint; call sysproc.admin_cmd('reorg table migtest_e_history4'); +alter table migtest_e_history4_history alter column test_number set data type bigint; +call sysproc.admin_cmd('reorg table migtest_e_history4_history'); alter table migtest_e_history5 add column test_boolean smallint default 0 default false not null; +alter table migtest_e_history5_history add column test_boolean smallint default 0 default false not 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; call sysproc.admin_cmd('reorg table migtest_e_history6'); +alter table migtest_e_history6_history alter column test_number1 set not null; +alter table migtest_e_history6_history alter column test_number2 drop not null; +call sysproc.admin_cmd('reorg table migtest_e_history6_history'); 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; -- apply post alter @@ -157,8 +177,21 @@ create unique index uq_migtest_e_basic_status_indextest1 on migtest_e_basic(stat 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; +create table migtest_e_history_history ( + id integer not null, + test_string bigint, + sys_period_start timestamp(12) not null, + sys_period_end timestamp(12) not null, + sys_period_txn timestamp(12) +); +alter table migtest_e_history add versioning use history table migtest_e_history_history; comment on column migtest_e_history.test_string is 'Column altered to long now'; comment on table migtest_e_history is 'We have history now'; +alter table migtest_e_history2 add versioning use history table migtest_e_history2_history; +alter table migtest_e_history3 add versioning use history table migtest_e_history3_history; +alter table migtest_e_history4 add versioning use history table migtest_e_history4_history; +alter table migtest_e_history5 add versioning use history table migtest_e_history5_history; +alter table migtest_e_history6 add versioning use history table migtest_e_history6_history; -- foreign keys and indices 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; diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/db2fori/1.2__dropsFor_1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/db2fori/1.2__dropsFor_1.1.sql index 50f34feed..7f78aa9b3 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/db2fori/1.2__dropsFor_1.1.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2fori/1.2__dropsFor_1.1.sql @@ -1,4 +1,6 @@ -- Migrationscripts for ebean unittest +-- apply changes +alter table migtest_e_history2 drop versioning; -- apply alter tables alter table migtest_e_basic drop column description_file; alter table migtest_e_basic drop column old_boolean; @@ -8,7 +10,11 @@ call sysproc.admin_cmd('reorg table migtest_e_basic'); alter table migtest_e_history2 drop column obsolete_string1; alter table migtest_e_history2 drop column obsolete_string2; call sysproc.admin_cmd('reorg table migtest_e_history2'); +alter table migtest_e_history2_history drop column obsolete_string1; +alter table migtest_e_history2_history drop column obsolete_string2; +call sysproc.admin_cmd('reorg table migtest_e_history2_history'); -- apply post alter +alter table migtest_e_history2 add versioning use history table migtest_e_history2_history; drop table migtest_e_ref; delimiter $$ begin 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 index dd47fb80e..557ab8d29 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/db2fori/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2fori/1.3.sql @@ -158,6 +158,10 @@ create table migtest_e_ref ( update migtest_e_basic set status2 = 'N' where status2 is null; update migtest_e_basic set user_id = 23 where user_id is null; +alter table migtest_e_history2 drop versioning; +alter table migtest_e_history3 drop versioning; +alter table migtest_e_history4 drop versioning; +alter table migtest_e_history6 drop versioning; -- NOTE: table has @History - special migration may be necessary update migtest_e_history6 set test_number2 = 7 where test_number2 is null; @@ -178,13 +182,21 @@ 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 alter column test_string drop not null; +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 set data type integer; call sysproc.admin_cmd('reorg table migtest_e_history4'); +alter table migtest_e_history4_history alter column test_number set data type integer; +call sysproc.admin_cmd('reorg table migtest_e_history4_history'); alter table migtest_e_history6 alter column test_number1 drop default; alter table migtest_e_history6 alter column test_number1 drop not 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; call sysproc.admin_cmd('reorg table migtest_e_history6'); +alter table migtest_e_history6_history alter column test_number1 drop not null; +alter table migtest_e_history6_history alter column test_number2 set not null; +call sysproc.admin_cmd('reorg table migtest_e_history6_history'); -- apply post alter alter table migtest_e_ref add constraint uq_migtest_e_ref_name unique (name); alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I')); @@ -194,6 +206,10 @@ create unique index uq_migtest_e_basic_indextest6 on migtest_e_basic(indextest6) 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 add versioning use history table migtest_e_history2_history; +alter table migtest_e_history3 add versioning use history table migtest_e_history3_history; +alter table migtest_e_history4 add versioning use history table migtest_e_history4_history; +alter table migtest_e_history6 add versioning use history table migtest_e_history6_history; -- foreign keys and indices 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_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; diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/db2fori/1.4__dropsFor_1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/db2fori/1.4__dropsFor_1.3.sql index 98a76eaf1..5542a954f 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/db2fori/1.4__dropsFor_1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2fori/1.4__dropsFor_1.3.sql @@ -1,4 +1,9 @@ -- Migrationscripts for ebean unittest +-- apply changes +alter table migtest_e_history drop versioning; +alter table migtest_e_history drop period system_time; +alter table migtest_e_history2 drop versioning; +alter table migtest_e_history5 drop versioning; -- apply alter tables alter table migtest_ckey_detail drop column one_key; alter table migtest_ckey_detail drop column two_key; @@ -11,17 +16,30 @@ 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; call sysproc.admin_cmd('reorg table migtest_e_basic'); +alter table migtest_e_history drop column sys_period_start; +alter table migtest_e_history drop column sys_period_end; +alter table migtest_e_history drop column sys_period_txn; +call sysproc.admin_cmd('reorg table migtest_e_history'); 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; call sysproc.admin_cmd('reorg table migtest_e_history2'); +alter table migtest_e_history2_history drop column test_string2; +alter table migtest_e_history2_history drop column test_string3; +alter table migtest_e_history2_history drop column new_column; +call sysproc.admin_cmd('reorg table migtest_e_history2_history'); alter table migtest_e_history5 drop column test_boolean; call sysproc.admin_cmd('reorg table migtest_e_history5'); +alter table migtest_e_history5_history drop column test_boolean; +call sysproc.admin_cmd('reorg table migtest_e_history5_history'); alter table migtest_e_softdelete drop column deleted; call sysproc.admin_cmd('reorg table migtest_e_softdelete'); alter table migtest_oto_child drop column master_id; call sysproc.admin_cmd('reorg table migtest_oto_child'); -- apply post alter +drop table migtest_e_history_history; +alter table migtest_e_history2 add versioning use history table migtest_e_history2_history; +alter table migtest_e_history5 add versioning use history table migtest_e_history5_history; drop table migtest_e_user; delimiter $$ begin 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 index 286bcc203..7b05091cd 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/db2fori/idx_db2.migrations +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2fori/idx_db2.migrations @@ -1,7 +1,7 @@ -1004346570, 1.0__initial.sql -972719393, 1.1.sql -859277843, 1.2__dropsFor_1.1.sql --583344310, 1.3.sql -1763447809, 1.4__dropsFor_1.3.sql +-1173442860, 1.0__initial.sql +-504970252, 1.1.sql +364066694, 1.2__dropsFor_1.1.sql +-2046803765, 1.3.sql +-1199420632, 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 index e9412a536..cacec3063 100644 --- 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 @@ -159,9 +159,73 @@ create table migtest_oto_master ( constraint pk_migtest_oto_master primary key (id) ); +-- apply alter tables +alter table migtest_e_history2 add column sys_period_start timestamp(12) not null generated always as row begin; +alter table migtest_e_history2 add column sys_period_end timestamp(12) not null generated always as row end; +alter table migtest_e_history2 add column sys_period_txn timestamp(12) generated always as transaction start id; +alter table migtest_e_history2 add period system_time (sys_period_start,sys_period_end); +alter table migtest_e_history3 add column sys_period_start timestamp(12) not null generated always as row begin; +alter table migtest_e_history3 add column sys_period_end timestamp(12) not null generated always as row end; +alter table migtest_e_history3 add column sys_period_txn timestamp(12) generated always as transaction start id; +alter table migtest_e_history3 add period system_time (sys_period_start,sys_period_end); +alter table migtest_e_history4 add column sys_period_start timestamp(12) not null generated always as row begin; +alter table migtest_e_history4 add column sys_period_end timestamp(12) not null generated always as row end; +alter table migtest_e_history4 add column sys_period_txn timestamp(12) generated always as transaction start id; +alter table migtest_e_history4 add period system_time (sys_period_start,sys_period_end); +alter table migtest_e_history5 add column sys_period_start timestamp(12) not null generated always as row begin; +alter table migtest_e_history5 add column sys_period_end timestamp(12) not null generated always as row end; +alter table migtest_e_history5 add column sys_period_txn timestamp(12) generated always as transaction start id; +alter table migtest_e_history5 add period system_time (sys_period_start,sys_period_end); +alter table migtest_e_history6 add column sys_period_start timestamp(12) not null generated always as row begin; +alter table migtest_e_history6 add column sys_period_end timestamp(12) not null generated always as row end; +alter table migtest_e_history6 add column sys_period_txn timestamp(12) generated always as transaction start id; +alter table migtest_e_history6 add period system_time (sys_period_start,sys_period_end); -- apply post alter create unique index uq_mgtst__b_4aybzy on migtest_e_basic(indextest2) exclude null keys; create unique index uq_mgtst__b_4ayc02 on migtest_e_basic(indextest6) exclude null keys; +create table migtest_e_history2_history ( + id integer not null, + test_string varchar(255), + obsolete_string1 varchar(255), + obsolete_string2 varchar(255), + sys_period_start timestamp(12) not null, + sys_period_end timestamp(12) not null, + sys_period_txn timestamp(12) +); +alter table migtest_e_history2 add versioning use history table migtest_e_history2_history; +create table migtest_e_history3_history ( + id integer not null, + test_string varchar(255), + sys_period_start timestamp(12) not null, + sys_period_end timestamp(12) not null, + sys_period_txn timestamp(12) +); +alter table migtest_e_history3 add versioning use history table migtest_e_history3_history; +create table migtest_e_history4_history ( + id integer not null, + test_number integer, + sys_period_start timestamp(12) not null, + sys_period_end timestamp(12) not null, + sys_period_txn timestamp(12) +); +alter table migtest_e_history4 add versioning use history table migtest_e_history4_history; +create table migtest_e_history5_history ( + id integer not null, + test_number integer, + sys_period_start timestamp(12) not null, + sys_period_end timestamp(12) not null, + sys_period_txn timestamp(12) +); +alter table migtest_e_history5 add versioning use history table migtest_e_history5_history; +create table migtest_e_history6_history ( + id integer not null, + test_number1 integer, + test_number2 integer not null, + sys_period_start timestamp(12) not null, + sys_period_end timestamp(12) not null, + sys_period_txn timestamp(12) +); +alter table migtest_e_history6 add versioning use history table migtest_e_history6_history; alter table migtest_e_ref add constraint uq_mgtst__rf_nm unique (name); -- foreign keys and indices create index ix_mgtst_fk_mok1xj on migtest_fk_cascade (one_id); 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 index 4ca572ac6..4f0ea1cf5 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/db2legacy/1.1.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2legacy/1.1.sql @@ -110,9 +110,14 @@ insert into migtest_e_user (id) select distinct user_id from migtest_e_basic; -- 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 drop versioning; +alter table migtest_e_history3 drop versioning; +alter table migtest_e_history4 drop versioning; +alter table migtest_e_history5 drop versioning; -- 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 drop versioning; -- apply alter tables alter table migtest_ckey_detail add column one_key integer; alter table migtest_ckey_detail add column two_key varchar(127); @@ -129,6 +134,10 @@ alter table migtest_e_basic add column new_boolean_field2 boolean default true n 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; call sysproc.admin_cmd('reorg table migtest_e_basic'); +alter table migtest_e_history add column sys_period_start timestamp(12) not null generated always as row begin; +alter table migtest_e_history add column sys_period_end timestamp(12) not null generated always as row end; +alter table migtest_e_history add column sys_period_txn timestamp(12) generated always as transaction start id; +alter table migtest_e_history add period system_time (sys_period_start,sys_period_end); alter table migtest_e_history alter column test_string set data type bigint; call sysproc.admin_cmd('reorg table migtest_e_history'); alter table migtest_e_history2 alter column test_string set default 'unknown'; @@ -137,13 +146,24 @@ 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); call sysproc.admin_cmd('reorg table migtest_e_history2'); +alter table migtest_e_history2_history alter column test_string set not null; +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' not null; +alter table migtest_e_history2_history add column new_column varchar(20); +call sysproc.admin_cmd('reorg table migtest_e_history2_history'); alter table migtest_e_history4 alter column test_number set data type bigint; call sysproc.admin_cmd('reorg table migtest_e_history4'); +alter table migtest_e_history4_history alter column test_number set data type bigint; +call sysproc.admin_cmd('reorg table migtest_e_history4_history'); 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 not 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; call sysproc.admin_cmd('reorg table migtest_e_history6'); +alter table migtest_e_history6_history alter column test_number1 set not null; +alter table migtest_e_history6_history alter column test_number2 drop not null; +call sysproc.admin_cmd('reorg table migtest_e_history6_history'); alter table migtest_e_softdelete add column deleted boolean default false not null; alter table migtest_oto_child add column master_id bigint; -- apply post alter @@ -157,8 +177,21 @@ create unique index uq_mgtst__b_ucfcne on migtest_e_basic(status,indextest1) exc create unique index uq_mgtst__bsc_nm on migtest_e_basic(name) exclude null keys; create unique index uq_mgtst__b_4ayc00 on migtest_e_basic(indextest4) exclude null keys; create unique index uq_mgtst__b_4ayc01 on migtest_e_basic(indextest5) exclude null keys; +create table migtest_e_history_history ( + id integer not null, + test_string bigint, + sys_period_start timestamp(12) not null, + sys_period_end timestamp(12) not null, + sys_period_txn timestamp(12) +); +alter table migtest_e_history add versioning use history table migtest_e_history_history; comment on column migtest_e_history.test_string is 'Column altered to long now'; comment on table migtest_e_history is 'We have history now'; +alter table migtest_e_history2 add versioning use history table migtest_e_history2_history; +alter table migtest_e_history3 add versioning use history table migtest_e_history3_history; +alter table migtest_e_history4 add versioning use history table migtest_e_history4_history; +alter table migtest_e_history5 add versioning use history table migtest_e_history5_history; +alter table migtest_e_history6 add versioning use history table migtest_e_history6_history; -- foreign keys and indices 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 on update 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 index 50f34feed..7f78aa9b3 100644 --- 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 @@ -1,4 +1,6 @@ -- Migrationscripts for ebean unittest +-- apply changes +alter table migtest_e_history2 drop versioning; -- apply alter tables alter table migtest_e_basic drop column description_file; alter table migtest_e_basic drop column old_boolean; @@ -8,7 +10,11 @@ call sysproc.admin_cmd('reorg table migtest_e_basic'); alter table migtest_e_history2 drop column obsolete_string1; alter table migtest_e_history2 drop column obsolete_string2; call sysproc.admin_cmd('reorg table migtest_e_history2'); +alter table migtest_e_history2_history drop column obsolete_string1; +alter table migtest_e_history2_history drop column obsolete_string2; +call sysproc.admin_cmd('reorg table migtest_e_history2_history'); -- apply post alter +alter table migtest_e_history2 add versioning use history table migtest_e_history2_history; drop table migtest_e_ref; delimiter $$ begin 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 index c236a0034..4dc9a692d 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/db2legacy/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2legacy/1.3.sql @@ -158,6 +158,10 @@ create table migtest_e_ref ( update migtest_e_basic set status2 = 'N' where status2 is null; update migtest_e_basic set user_id = 23 where user_id is null; +alter table migtest_e_history2 drop versioning; +alter table migtest_e_history3 drop versioning; +alter table migtest_e_history4 drop versioning; +alter table migtest_e_history6 drop versioning; -- NOTE: table has @History - special migration may be necessary update migtest_e_history6 set test_number2 = 7 where test_number2 is null; @@ -178,13 +182,21 @@ 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 alter column test_string drop not null; +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 set data type integer; call sysproc.admin_cmd('reorg table migtest_e_history4'); +alter table migtest_e_history4_history alter column test_number set data type integer; +call sysproc.admin_cmd('reorg table migtest_e_history4_history'); alter table migtest_e_history6 alter column test_number1 drop default; alter table migtest_e_history6 alter column test_number1 drop not 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; call sysproc.admin_cmd('reorg table migtest_e_history6'); +alter table migtest_e_history6_history alter column test_number1 drop not null; +alter table migtest_e_history6_history alter column test_number2 set not null; +call sysproc.admin_cmd('reorg table migtest_e_history6_history'); -- apply post alter alter table migtest_e_ref add constraint uq_mgtst__rf_nm unique (name); alter table migtest_e_basic add constraint ck_mgtst__bsc_stts check ( status in ('N','A','I')); @@ -194,6 +206,10 @@ create unique index uq_mgtst__b_4ayc02 on migtest_e_basic(indextest6) exclude nu 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 add versioning use history table migtest_e_history2_history; +alter table migtest_e_history3 add versioning use history table migtest_e_history3_history; +alter table migtest_e_history4 add versioning use history table migtest_e_history4_history; +alter table migtest_e_history6 add versioning use history table migtest_e_history6_history; -- foreign keys and indices alter table migtest_fk_cascade add constraint fk_mgtst_fk_65kf6l foreign key (one_id) references migtest_fk_cascade_one (id) on delete cascade on update restrict; 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 on update 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 index 98a76eaf1..5542a954f 100644 --- 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 @@ -1,4 +1,9 @@ -- Migrationscripts for ebean unittest +-- apply changes +alter table migtest_e_history drop versioning; +alter table migtest_e_history drop period system_time; +alter table migtest_e_history2 drop versioning; +alter table migtest_e_history5 drop versioning; -- apply alter tables alter table migtest_ckey_detail drop column one_key; alter table migtest_ckey_detail drop column two_key; @@ -11,17 +16,30 @@ 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; call sysproc.admin_cmd('reorg table migtest_e_basic'); +alter table migtest_e_history drop column sys_period_start; +alter table migtest_e_history drop column sys_period_end; +alter table migtest_e_history drop column sys_period_txn; +call sysproc.admin_cmd('reorg table migtest_e_history'); 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; call sysproc.admin_cmd('reorg table migtest_e_history2'); +alter table migtest_e_history2_history drop column test_string2; +alter table migtest_e_history2_history drop column test_string3; +alter table migtest_e_history2_history drop column new_column; +call sysproc.admin_cmd('reorg table migtest_e_history2_history'); alter table migtest_e_history5 drop column test_boolean; call sysproc.admin_cmd('reorg table migtest_e_history5'); +alter table migtest_e_history5_history drop column test_boolean; +call sysproc.admin_cmd('reorg table migtest_e_history5_history'); alter table migtest_e_softdelete drop column deleted; call sysproc.admin_cmd('reorg table migtest_e_softdelete'); alter table migtest_oto_child drop column master_id; call sysproc.admin_cmd('reorg table migtest_oto_child'); -- apply post alter +drop table migtest_e_history_history; +alter table migtest_e_history2 add versioning use history table migtest_e_history2_history; +alter table migtest_e_history5 add versioning use history table migtest_e_history5_history; drop table migtest_e_user; delimiter $$ begin 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 index 02be135d7..b3d6b8896 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/db2legacy/idx_db2.migrations +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2legacy/idx_db2.migrations @@ -1,7 +1,7 @@ --91718719, 1.0__initial.sql -827855272, 1.1.sql -859277843, 1.2__dropsFor_1.1.sql -1257741278, 1.3.sql -1763447809, 1.4__dropsFor_1.3.sql +1034179507, 1.0__initial.sql +-1206845521, 1.1.sql +364066694, 1.2__dropsFor_1.1.sql +161683967, 1.3.sql +-1199420632, 1.4__dropsFor_1.3.sql 561281075, R__order_views.sql diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/db2luw/1.0__initial.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/db2luw/1.0__initial.sql index 8298c9fa9..d9e893947 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/db2luw/1.0__initial.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2luw/1.0__initial.sql @@ -159,9 +159,73 @@ create table migtest_oto_master ( constraint pk_migtest_oto_master primary key (id) ); +-- apply alter tables +alter table migtest_e_history2 add column sys_period_start timestamp(12) not null generated always as row begin; +alter table migtest_e_history2 add column sys_period_end timestamp(12) not null generated always as row end; +alter table migtest_e_history2 add column sys_period_txn timestamp(12) generated always as transaction start id; +alter table migtest_e_history2 add period system_time (sys_period_start,sys_period_end); +alter table migtest_e_history3 add column sys_period_start timestamp(12) not null generated always as row begin; +alter table migtest_e_history3 add column sys_period_end timestamp(12) not null generated always as row end; +alter table migtest_e_history3 add column sys_period_txn timestamp(12) generated always as transaction start id; +alter table migtest_e_history3 add period system_time (sys_period_start,sys_period_end); +alter table migtest_e_history4 add column sys_period_start timestamp(12) not null generated always as row begin; +alter table migtest_e_history4 add column sys_period_end timestamp(12) not null generated always as row end; +alter table migtest_e_history4 add column sys_period_txn timestamp(12) generated always as transaction start id; +alter table migtest_e_history4 add period system_time (sys_period_start,sys_period_end); +alter table migtest_e_history5 add column sys_period_start timestamp(12) not null generated always as row begin; +alter table migtest_e_history5 add column sys_period_end timestamp(12) not null generated always as row end; +alter table migtest_e_history5 add column sys_period_txn timestamp(12) generated always as transaction start id; +alter table migtest_e_history5 add period system_time (sys_period_start,sys_period_end); +alter table migtest_e_history6 add column sys_period_start timestamp(12) not null generated always as row begin; +alter table migtest_e_history6 add column sys_period_end timestamp(12) not null generated always as row end; +alter table migtest_e_history6 add column sys_period_txn timestamp(12) generated always as transaction start id; +alter table migtest_e_history6 add period system_time (sys_period_start,sys_period_end); -- apply post alter 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_history2_history ( + id integer not null, + test_string varchar(255), + obsolete_string1 varchar(255), + obsolete_string2 varchar(255), + sys_period_start timestamp(12) not null, + sys_period_end timestamp(12) not null, + sys_period_txn timestamp(12) +); +alter table migtest_e_history2 add versioning use history table migtest_e_history2_history; +create table migtest_e_history3_history ( + id integer not null, + test_string varchar(255), + sys_period_start timestamp(12) not null, + sys_period_end timestamp(12) not null, + sys_period_txn timestamp(12) +); +alter table migtest_e_history3 add versioning use history table migtest_e_history3_history; +create table migtest_e_history4_history ( + id integer not null, + test_number integer, + sys_period_start timestamp(12) not null, + sys_period_end timestamp(12) not null, + sys_period_txn timestamp(12) +); +alter table migtest_e_history4 add versioning use history table migtest_e_history4_history; +create table migtest_e_history5_history ( + id integer not null, + test_number integer, + sys_period_start timestamp(12) not null, + sys_period_end timestamp(12) not null, + sys_period_txn timestamp(12) +); +alter table migtest_e_history5 add versioning use history table migtest_e_history5_history; +create table migtest_e_history6_history ( + id integer not null, + test_number1 integer, + test_number2 integer not null, + sys_period_start timestamp(12) not null, + sys_period_end timestamp(12) not null, + sys_period_txn timestamp(12) +); +alter table migtest_e_history6 add versioning use history table migtest_e_history6_history; alter table migtest_e_ref add constraint uq_migtest_e_ref_name unique (name); -- foreign keys and indices create index ix_migtest_fk_cascade_one_id on migtest_fk_cascade (one_id); diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/db2luw/1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/db2luw/1.1.sql index 40ebaa171..77c49370e 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/db2luw/1.1.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2luw/1.1.sql @@ -110,9 +110,14 @@ insert into migtest_e_user (id) select distinct user_id from migtest_e_basic; -- 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 drop versioning; +alter table migtest_e_history3 drop versioning; +alter table migtest_e_history4 drop versioning; +alter table migtest_e_history5 drop versioning; -- 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 drop versioning; -- apply alter tables alter table migtest_ckey_detail add column one_key integer; alter table migtest_ckey_detail add column two_key varchar(127); @@ -129,6 +134,10 @@ alter table migtest_e_basic add column new_boolean_field2 boolean default true n 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; call sysproc.admin_cmd('reorg table migtest_e_basic'); +alter table migtest_e_history add column sys_period_start timestamp(12) not null generated always as row begin; +alter table migtest_e_history add column sys_period_end timestamp(12) not null generated always as row end; +alter table migtest_e_history add column sys_period_txn timestamp(12) generated always as transaction start id; +alter table migtest_e_history add period system_time (sys_period_start,sys_period_end); alter table migtest_e_history alter column test_string set data type bigint; call sysproc.admin_cmd('reorg table migtest_e_history'); alter table migtest_e_history2 alter column test_string set default 'unknown'; @@ -137,13 +146,24 @@ 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); call sysproc.admin_cmd('reorg table migtest_e_history2'); +alter table migtest_e_history2_history alter column test_string set not null; +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' not null; +alter table migtest_e_history2_history add column new_column varchar(20); +call sysproc.admin_cmd('reorg table migtest_e_history2_history'); alter table migtest_e_history4 alter column test_number set data type bigint; call sysproc.admin_cmd('reorg table migtest_e_history4'); +alter table migtest_e_history4_history alter column test_number set data type bigint; +call sysproc.admin_cmd('reorg table migtest_e_history4_history'); 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 not 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; call sysproc.admin_cmd('reorg table migtest_e_history6'); +alter table migtest_e_history6_history alter column test_number1 set not null; +alter table migtest_e_history6_history alter column test_number2 drop not null; +call sysproc.admin_cmd('reorg table migtest_e_history6_history'); alter table migtest_e_softdelete add column deleted boolean default false not null; alter table migtest_oto_child add column master_id bigint; -- apply post alter @@ -157,8 +177,21 @@ create unique index uq_migtest_e_basic_status_indextest1 on migtest_e_basic(stat 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; +create table migtest_e_history_history ( + id integer not null, + test_string bigint, + sys_period_start timestamp(12) not null, + sys_period_end timestamp(12) not null, + sys_period_txn timestamp(12) +); +alter table migtest_e_history add versioning use history table migtest_e_history_history; comment on column migtest_e_history.test_string is 'Column altered to long now'; comment on table migtest_e_history is 'We have history now'; +alter table migtest_e_history2 add versioning use history table migtest_e_history2_history; +alter table migtest_e_history3 add versioning use history table migtest_e_history3_history; +alter table migtest_e_history4 add versioning use history table migtest_e_history4_history; +alter table migtest_e_history5 add versioning use history table migtest_e_history5_history; +alter table migtest_e_history6 add versioning use history table migtest_e_history6_history; -- foreign keys and indices 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; 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 index 50f34feed..7f78aa9b3 100644 --- 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 @@ -1,4 +1,6 @@ -- Migrationscripts for ebean unittest +-- apply changes +alter table migtest_e_history2 drop versioning; -- apply alter tables alter table migtest_e_basic drop column description_file; alter table migtest_e_basic drop column old_boolean; @@ -8,7 +10,11 @@ call sysproc.admin_cmd('reorg table migtest_e_basic'); alter table migtest_e_history2 drop column obsolete_string1; alter table migtest_e_history2 drop column obsolete_string2; call sysproc.admin_cmd('reorg table migtest_e_history2'); +alter table migtest_e_history2_history drop column obsolete_string1; +alter table migtest_e_history2_history drop column obsolete_string2; +call sysproc.admin_cmd('reorg table migtest_e_history2_history'); -- apply post alter +alter table migtest_e_history2 add versioning use history table migtest_e_history2_history; drop table migtest_e_ref; delimiter $$ begin diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/db2luw/1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/db2luw/1.3.sql index ac5a82ecc..c0280ba4f 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/db2luw/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2luw/1.3.sql @@ -158,6 +158,10 @@ create table migtest_e_ref ( update migtest_e_basic set status2 = 'N' where status2 is null; update migtest_e_basic set user_id = 23 where user_id is null; +alter table migtest_e_history2 drop versioning; +alter table migtest_e_history3 drop versioning; +alter table migtest_e_history4 drop versioning; +alter table migtest_e_history6 drop versioning; -- NOTE: table has @History - special migration may be necessary update migtest_e_history6 set test_number2 = 7 where test_number2 is null; @@ -178,13 +182,21 @@ 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 alter column test_string drop not null; +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 set data type integer; call sysproc.admin_cmd('reorg table migtest_e_history4'); +alter table migtest_e_history4_history alter column test_number set data type integer; +call sysproc.admin_cmd('reorg table migtest_e_history4_history'); alter table migtest_e_history6 alter column test_number1 drop default; alter table migtest_e_history6 alter column test_number1 drop not 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; call sysproc.admin_cmd('reorg table migtest_e_history6'); +alter table migtest_e_history6_history alter column test_number1 drop not null; +alter table migtest_e_history6_history alter column test_number2 set not null; +call sysproc.admin_cmd('reorg table migtest_e_history6_history'); -- apply post alter alter table migtest_e_ref add constraint uq_migtest_e_ref_name unique (name); alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I')); @@ -194,6 +206,10 @@ create unique index uq_migtest_e_basic_indextest6 on migtest_e_basic(indextest6) 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 add versioning use history table migtest_e_history2_history; +alter table migtest_e_history3 add versioning use history table migtest_e_history3_history; +alter table migtest_e_history4 add versioning use history table migtest_e_history4_history; +alter table migtest_e_history6 add versioning use history table migtest_e_history6_history; -- foreign keys and indices 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_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; 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 index 98a76eaf1..5542a954f 100644 --- 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 @@ -1,4 +1,9 @@ -- Migrationscripts for ebean unittest +-- apply changes +alter table migtest_e_history drop versioning; +alter table migtest_e_history drop period system_time; +alter table migtest_e_history2 drop versioning; +alter table migtest_e_history5 drop versioning; -- apply alter tables alter table migtest_ckey_detail drop column one_key; alter table migtest_ckey_detail drop column two_key; @@ -11,17 +16,30 @@ 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; call sysproc.admin_cmd('reorg table migtest_e_basic'); +alter table migtest_e_history drop column sys_period_start; +alter table migtest_e_history drop column sys_period_end; +alter table migtest_e_history drop column sys_period_txn; +call sysproc.admin_cmd('reorg table migtest_e_history'); 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; call sysproc.admin_cmd('reorg table migtest_e_history2'); +alter table migtest_e_history2_history drop column test_string2; +alter table migtest_e_history2_history drop column test_string3; +alter table migtest_e_history2_history drop column new_column; +call sysproc.admin_cmd('reorg table migtest_e_history2_history'); alter table migtest_e_history5 drop column test_boolean; call sysproc.admin_cmd('reorg table migtest_e_history5'); +alter table migtest_e_history5_history drop column test_boolean; +call sysproc.admin_cmd('reorg table migtest_e_history5_history'); alter table migtest_e_softdelete drop column deleted; call sysproc.admin_cmd('reorg table migtest_e_softdelete'); alter table migtest_oto_child drop column master_id; call sysproc.admin_cmd('reorg table migtest_oto_child'); -- apply post alter +drop table migtest_e_history_history; +alter table migtest_e_history2 add versioning use history table migtest_e_history2_history; +alter table migtest_e_history5 add versioning use history table migtest_e_history5_history; drop table migtest_e_user; delimiter $$ begin diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/db2luw/idx_db2.migrations b/ebean-test/src/test/resources/migrationtest/dbmigration/db2luw/idx_db2.migrations index 4209b5501..17aaf2093 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/db2luw/idx_db2.migrations +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2luw/idx_db2.migrations @@ -1,7 +1,7 @@ --583456994, 1.0__initial.sql --40028187, 1.1.sql -859277843, 1.2__dropsFor_1.1.sql --1165877856, 1.3.sql -1763447809, 1.4__dropsFor_1.3.sql +-1345631840, 1.0__initial.sql +2135835079, 1.1.sql +364066694, 1.2__dropsFor_1.1.sql +-1510901098, 1.3.sql +-1199420632, 1.4__dropsFor_1.3.sql 561281075, R__order_views.sql 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 index 8298c9fa9..d9e893947 100644 --- 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 @@ -159,9 +159,73 @@ create table migtest_oto_master ( constraint pk_migtest_oto_master primary key (id) ); +-- apply alter tables +alter table migtest_e_history2 add column sys_period_start timestamp(12) not null generated always as row begin; +alter table migtest_e_history2 add column sys_period_end timestamp(12) not null generated always as row end; +alter table migtest_e_history2 add column sys_period_txn timestamp(12) generated always as transaction start id; +alter table migtest_e_history2 add period system_time (sys_period_start,sys_period_end); +alter table migtest_e_history3 add column sys_period_start timestamp(12) not null generated always as row begin; +alter table migtest_e_history3 add column sys_period_end timestamp(12) not null generated always as row end; +alter table migtest_e_history3 add column sys_period_txn timestamp(12) generated always as transaction start id; +alter table migtest_e_history3 add period system_time (sys_period_start,sys_period_end); +alter table migtest_e_history4 add column sys_period_start timestamp(12) not null generated always as row begin; +alter table migtest_e_history4 add column sys_period_end timestamp(12) not null generated always as row end; +alter table migtest_e_history4 add column sys_period_txn timestamp(12) generated always as transaction start id; +alter table migtest_e_history4 add period system_time (sys_period_start,sys_period_end); +alter table migtest_e_history5 add column sys_period_start timestamp(12) not null generated always as row begin; +alter table migtest_e_history5 add column sys_period_end timestamp(12) not null generated always as row end; +alter table migtest_e_history5 add column sys_period_txn timestamp(12) generated always as transaction start id; +alter table migtest_e_history5 add period system_time (sys_period_start,sys_period_end); +alter table migtest_e_history6 add column sys_period_start timestamp(12) not null generated always as row begin; +alter table migtest_e_history6 add column sys_period_end timestamp(12) not null generated always as row end; +alter table migtest_e_history6 add column sys_period_txn timestamp(12) generated always as transaction start id; +alter table migtest_e_history6 add period system_time (sys_period_start,sys_period_end); -- apply post alter 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_history2_history ( + id integer not null, + test_string varchar(255), + obsolete_string1 varchar(255), + obsolete_string2 varchar(255), + sys_period_start timestamp(12) not null, + sys_period_end timestamp(12) not null, + sys_period_txn timestamp(12) +); +alter table migtest_e_history2 add versioning use history table migtest_e_history2_history; +create table migtest_e_history3_history ( + id integer not null, + test_string varchar(255), + sys_period_start timestamp(12) not null, + sys_period_end timestamp(12) not null, + sys_period_txn timestamp(12) +); +alter table migtest_e_history3 add versioning use history table migtest_e_history3_history; +create table migtest_e_history4_history ( + id integer not null, + test_number integer, + sys_period_start timestamp(12) not null, + sys_period_end timestamp(12) not null, + sys_period_txn timestamp(12) +); +alter table migtest_e_history4 add versioning use history table migtest_e_history4_history; +create table migtest_e_history5_history ( + id integer not null, + test_number integer, + sys_period_start timestamp(12) not null, + sys_period_end timestamp(12) not null, + sys_period_txn timestamp(12) +); +alter table migtest_e_history5 add versioning use history table migtest_e_history5_history; +create table migtest_e_history6_history ( + id integer not null, + test_number1 integer, + test_number2 integer not null, + sys_period_start timestamp(12) not null, + sys_period_end timestamp(12) not null, + sys_period_txn timestamp(12) +); +alter table migtest_e_history6 add versioning use history table migtest_e_history6_history; alter table migtest_e_ref add constraint uq_migtest_e_ref_name unique (name); -- foreign keys and indices create index ix_migtest_fk_cascade_one_id on migtest_fk_cascade (one_id); 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 index 40ebaa171..77c49370e 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/db2zos/1.1.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2zos/1.1.sql @@ -110,9 +110,14 @@ insert into migtest_e_user (id) select distinct user_id from migtest_e_basic; -- 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 drop versioning; +alter table migtest_e_history3 drop versioning; +alter table migtest_e_history4 drop versioning; +alter table migtest_e_history5 drop versioning; -- 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 drop versioning; -- apply alter tables alter table migtest_ckey_detail add column one_key integer; alter table migtest_ckey_detail add column two_key varchar(127); @@ -129,6 +134,10 @@ alter table migtest_e_basic add column new_boolean_field2 boolean default true n 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; call sysproc.admin_cmd('reorg table migtest_e_basic'); +alter table migtest_e_history add column sys_period_start timestamp(12) not null generated always as row begin; +alter table migtest_e_history add column sys_period_end timestamp(12) not null generated always as row end; +alter table migtest_e_history add column sys_period_txn timestamp(12) generated always as transaction start id; +alter table migtest_e_history add period system_time (sys_period_start,sys_period_end); alter table migtest_e_history alter column test_string set data type bigint; call sysproc.admin_cmd('reorg table migtest_e_history'); alter table migtest_e_history2 alter column test_string set default 'unknown'; @@ -137,13 +146,24 @@ 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); call sysproc.admin_cmd('reorg table migtest_e_history2'); +alter table migtest_e_history2_history alter column test_string set not null; +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' not null; +alter table migtest_e_history2_history add column new_column varchar(20); +call sysproc.admin_cmd('reorg table migtest_e_history2_history'); alter table migtest_e_history4 alter column test_number set data type bigint; call sysproc.admin_cmd('reorg table migtest_e_history4'); +alter table migtest_e_history4_history alter column test_number set data type bigint; +call sysproc.admin_cmd('reorg table migtest_e_history4_history'); 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 not 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; call sysproc.admin_cmd('reorg table migtest_e_history6'); +alter table migtest_e_history6_history alter column test_number1 set not null; +alter table migtest_e_history6_history alter column test_number2 drop not null; +call sysproc.admin_cmd('reorg table migtest_e_history6_history'); alter table migtest_e_softdelete add column deleted boolean default false not null; alter table migtest_oto_child add column master_id bigint; -- apply post alter @@ -157,8 +177,21 @@ create unique index uq_migtest_e_basic_status_indextest1 on migtest_e_basic(stat 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; +create table migtest_e_history_history ( + id integer not null, + test_string bigint, + sys_period_start timestamp(12) not null, + sys_period_end timestamp(12) not null, + sys_period_txn timestamp(12) +); +alter table migtest_e_history add versioning use history table migtest_e_history_history; comment on column migtest_e_history.test_string is 'Column altered to long now'; comment on table migtest_e_history is 'We have history now'; +alter table migtest_e_history2 add versioning use history table migtest_e_history2_history; +alter table migtest_e_history3 add versioning use history table migtest_e_history3_history; +alter table migtest_e_history4 add versioning use history table migtest_e_history4_history; +alter table migtest_e_history5 add versioning use history table migtest_e_history5_history; +alter table migtest_e_history6 add versioning use history table migtest_e_history6_history; -- foreign keys and indices 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; 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 index 50f34feed..7f78aa9b3 100644 --- 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 @@ -1,4 +1,6 @@ -- Migrationscripts for ebean unittest +-- apply changes +alter table migtest_e_history2 drop versioning; -- apply alter tables alter table migtest_e_basic drop column description_file; alter table migtest_e_basic drop column old_boolean; @@ -8,7 +10,11 @@ call sysproc.admin_cmd('reorg table migtest_e_basic'); alter table migtest_e_history2 drop column obsolete_string1; alter table migtest_e_history2 drop column obsolete_string2; call sysproc.admin_cmd('reorg table migtest_e_history2'); +alter table migtest_e_history2_history drop column obsolete_string1; +alter table migtest_e_history2_history drop column obsolete_string2; +call sysproc.admin_cmd('reorg table migtest_e_history2_history'); -- apply post alter +alter table migtest_e_history2 add versioning use history table migtest_e_history2_history; drop table migtest_e_ref; delimiter $$ begin 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 index ac5a82ecc..c0280ba4f 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/db2zos/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2zos/1.3.sql @@ -158,6 +158,10 @@ create table migtest_e_ref ( update migtest_e_basic set status2 = 'N' where status2 is null; update migtest_e_basic set user_id = 23 where user_id is null; +alter table migtest_e_history2 drop versioning; +alter table migtest_e_history3 drop versioning; +alter table migtest_e_history4 drop versioning; +alter table migtest_e_history6 drop versioning; -- NOTE: table has @History - special migration may be necessary update migtest_e_history6 set test_number2 = 7 where test_number2 is null; @@ -178,13 +182,21 @@ 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 alter column test_string drop not null; +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 set data type integer; call sysproc.admin_cmd('reorg table migtest_e_history4'); +alter table migtest_e_history4_history alter column test_number set data type integer; +call sysproc.admin_cmd('reorg table migtest_e_history4_history'); alter table migtest_e_history6 alter column test_number1 drop default; alter table migtest_e_history6 alter column test_number1 drop not 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; call sysproc.admin_cmd('reorg table migtest_e_history6'); +alter table migtest_e_history6_history alter column test_number1 drop not null; +alter table migtest_e_history6_history alter column test_number2 set not null; +call sysproc.admin_cmd('reorg table migtest_e_history6_history'); -- apply post alter alter table migtest_e_ref add constraint uq_migtest_e_ref_name unique (name); alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I')); @@ -194,6 +206,10 @@ create unique index uq_migtest_e_basic_indextest6 on migtest_e_basic(indextest6) 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 add versioning use history table migtest_e_history2_history; +alter table migtest_e_history3 add versioning use history table migtest_e_history3_history; +alter table migtest_e_history4 add versioning use history table migtest_e_history4_history; +alter table migtest_e_history6 add versioning use history table migtest_e_history6_history; -- foreign keys and indices 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_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; 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 index 98a76eaf1..5542a954f 100644 --- 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 @@ -1,4 +1,9 @@ -- Migrationscripts for ebean unittest +-- apply changes +alter table migtest_e_history drop versioning; +alter table migtest_e_history drop period system_time; +alter table migtest_e_history2 drop versioning; +alter table migtest_e_history5 drop versioning; -- apply alter tables alter table migtest_ckey_detail drop column one_key; alter table migtest_ckey_detail drop column two_key; @@ -11,17 +16,30 @@ 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; call sysproc.admin_cmd('reorg table migtest_e_basic'); +alter table migtest_e_history drop column sys_period_start; +alter table migtest_e_history drop column sys_period_end; +alter table migtest_e_history drop column sys_period_txn; +call sysproc.admin_cmd('reorg table migtest_e_history'); 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; call sysproc.admin_cmd('reorg table migtest_e_history2'); +alter table migtest_e_history2_history drop column test_string2; +alter table migtest_e_history2_history drop column test_string3; +alter table migtest_e_history2_history drop column new_column; +call sysproc.admin_cmd('reorg table migtest_e_history2_history'); alter table migtest_e_history5 drop column test_boolean; call sysproc.admin_cmd('reorg table migtest_e_history5'); +alter table migtest_e_history5_history drop column test_boolean; +call sysproc.admin_cmd('reorg table migtest_e_history5_history'); alter table migtest_e_softdelete drop column deleted; call sysproc.admin_cmd('reorg table migtest_e_softdelete'); alter table migtest_oto_child drop column master_id; call sysproc.admin_cmd('reorg table migtest_oto_child'); -- apply post alter +drop table migtest_e_history_history; +alter table migtest_e_history2 add versioning use history table migtest_e_history2_history; +alter table migtest_e_history5 add versioning use history table migtest_e_history5_history; drop table migtest_e_user; delimiter $$ begin 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 index 4209b5501..17aaf2093 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/db2zos/idx_db2.migrations +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2zos/idx_db2.migrations @@ -1,7 +1,7 @@ --583456994, 1.0__initial.sql --40028187, 1.1.sql -859277843, 1.2__dropsFor_1.1.sql --1165877856, 1.3.sql -1763447809, 1.4__dropsFor_1.3.sql +-1345631840, 1.0__initial.sql +2135835079, 1.1.sql +364066694, 1.2__dropsFor_1.1.sql +-1510901098, 1.3.sql +-1199420632, 1.4__dropsFor_1.3.sql 561281075, R__order_views.sql From 0225fddf6de49ff4280c9aff79f987896f77785d Mon Sep 17 00:00:00 2001 From: Roland Praml Date: Tue, 15 Mar 2022 16:31:43 +0100 Subject: [PATCH 101/114] FIX: AlterColumnTest --- .../platform/PlatformDdl_AlterColumnTest.java | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformDdl_AlterColumnTest.java b/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformDdl_AlterColumnTest.java index c6d884c3a..c688a669a 100644 --- a/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformDdl_AlterColumnTest.java +++ b/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformDdl_AlterColumnTest.java @@ -135,7 +135,8 @@ public class PlatformDdl_AlterColumnTest { softly.assertThat(sql).isEqualTo("-- apply alter tables\n" + "alter table mytab alter column acol set data type varchar(50);\n" + "alter table mytab alter column acol set default 'hi';\n" - + "alter table mytab alter column acol set not null;\n"); + + "alter table mytab alter column acol set not null;\n" + + "call sysproc.admin_cmd('reorg table mytab');\n"); // alter.setCurrentNotnull(Boolean.TRUE); @@ -213,7 +214,10 @@ public class PlatformDdl_AlterColumnTest { sql = alterColumn(db2Ddl, alter); softly.assertThat(sql).isEqualTo("-- apply alter tables\n" - + "alter table mytab alter column acol set data type varchar(20);\n"); + + "alter table mytab alter column acol set data type varchar(20);\n" + // Note, this reorg may be not necessary when only length attribute is alterd + // but this is currently not implemented. + + "call sysproc.admin_cmd('reorg table mytab');\n"); alter.setType("bigint"); sql = alterColumn(pgDdl, alter); @@ -271,7 +275,8 @@ public class PlatformDdl_AlterColumnTest { sql = alterColumn(db2Ddl, alter); softly.assertThat(sql).isEqualTo("-- apply alter tables\n" - + "alter table mytab alter column acol set not null;\n"); + + "alter table mytab alter column acol set not null;\n" + + "call sysproc.admin_cmd('reorg table mytab');\n"); } @@ -512,7 +517,7 @@ public class PlatformDdl_AlterColumnTest { softly.assertThat(alterFkey(oraDdl, null, null)).isEqualTo(""); softly.assertThat(alterFkey(sqlServerDdl, null, null)).isEqualTo(""); softly.assertThat(alterFkey(hanaDdl, null, null)).isEqualTo(" on delete restrict on update restrict"); - softly.assertThat(alterFkey(db2Ddl, null, null)).isEqualTo(" on delete restrict"); + softly.assertThat(alterFkey(db2Ddl, null, null)).isEqualTo(" on delete restrict on update restrict"); } @Test @@ -536,7 +541,7 @@ public class PlatformDdl_AlterColumnTest { .isEqualTo(" on delete restrict on update set null"); softly.assertThat(alterFkey(db2Ddl, "RESTRICT", "SET_NULL")) - .isEqualTo(" on delete restrict"); + .isEqualTo(" on delete restrict on update set null"); } @Test @@ -560,7 +565,7 @@ public class PlatformDdl_AlterColumnTest { .isEqualTo(" on delete set null on update restrict"); softly.assertThat(alterFkey(db2Ddl, "SET_NULL", "RESTRICT")) - .isEqualTo(" on delete set null"); + .isEqualTo(" on delete set null on update restrict"); } @Test @@ -584,7 +589,7 @@ public class PlatformDdl_AlterColumnTest { .isEqualTo(" on delete set default on update cascade"); softly.assertThat(alterFkey(db2Ddl, "SET_DEFAULT", "CASCADE")) - .isEqualTo(" on delete set default"); + .isEqualTo(" on delete set default on update cascade"); } private String alterColumn(PlatformDdl ddl, AlterColumn alterColumn) { From 782e41098da0627149efd0e64f873da462c71545 Mon Sep 17 00:00:00 2001 From: Roland Praml Date: Tue, 15 Mar 2022 16:56:00 +0100 Subject: [PATCH 102/114] enabled history tests --- .../test/java/org/tests/model/history/TestHistoryExclude.java | 2 +- .../test/java/org/tests/model/history/TestHistoryInclude.java | 2 +- .../test/java/org/tests/model/history/TestHistoryOneToMany.java | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/ebean-test/src/test/java/org/tests/model/history/TestHistoryExclude.java b/ebean-test/src/test/java/org/tests/model/history/TestHistoryExclude.java index 512469c57..64a5c54a8 100644 --- a/ebean-test/src/test/java/org/tests/model/history/TestHistoryExclude.java +++ b/ebean-test/src/test/java/org/tests/model/history/TestHistoryExclude.java @@ -70,7 +70,7 @@ public class TestHistoryExclude extends BaseTestCase { linkFound.getDocs().size(); } - @IgnorePlatform({Platform.ORACLE, Platform.DB2, Platform.COCKROACH}) + @IgnorePlatform({Platform.ORACLE, Platform.COCKROACH}) @Test public void testAsOfThenLazy() { diff --git a/ebean-test/src/test/java/org/tests/model/history/TestHistoryInclude.java b/ebean-test/src/test/java/org/tests/model/history/TestHistoryInclude.java index d59579f03..f1122447b 100644 --- a/ebean-test/src/test/java/org/tests/model/history/TestHistoryInclude.java +++ b/ebean-test/src/test/java/org/tests/model/history/TestHistoryInclude.java @@ -37,7 +37,7 @@ public class TestHistoryInclude extends BaseTestCase { assertThat(linkFound.getDocs().size()).isEqualTo(2); } - @IgnorePlatform({Platform.ORACLE, Platform.DB2, Platform.COCKROACH}) + @IgnorePlatform({Platform.ORACLE, Platform.COCKROACH}) @Test public void testAsOfThenLazy() { diff --git a/ebean-test/src/test/java/org/tests/model/history/TestHistoryOneToMany.java b/ebean-test/src/test/java/org/tests/model/history/TestHistoryOneToMany.java index 07254f3b6..b5c0c43d4 100644 --- a/ebean-test/src/test/java/org/tests/model/history/TestHistoryOneToMany.java +++ b/ebean-test/src/test/java/org/tests/model/history/TestHistoryOneToMany.java @@ -14,7 +14,7 @@ import static org.assertj.core.api.Assertions.assertThat; public class TestHistoryOneToMany extends BaseTestCase { - @IgnorePlatform({Platform.ORACLE, Platform.DB2, Platform.COCKROACH}) + @IgnorePlatform({Platform.ORACLE, Platform.COCKROACH}) @Test public void test() throws InterruptedException { From 79f6d6d0f06b356dbaa797d5c85638a038b5e95d Mon Sep 17 00:00:00 2001 From: Roland Praml Date: Tue, 15 Mar 2022 17:18:34 +0100 Subject: [PATCH 103/114] Ignored query plans for DB2 --- .../test/java/org/tests/query/finder/TestCustomerFinder.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/ebean-test/src/test/java/org/tests/query/finder/TestCustomerFinder.java b/ebean-test/src/test/java/org/tests/query/finder/TestCustomerFinder.java index a69fc0f84..7903adb9c 100644 --- a/ebean-test/src/test/java/org/tests/query/finder/TestCustomerFinder.java +++ b/ebean-test/src/test/java/org/tests/query/finder/TestCustomerFinder.java @@ -3,6 +3,8 @@ package org.tests.query.finder; import io.ebean.BaseTestCase; import io.ebean.DB; import io.ebean.Transaction; +import io.ebean.annotation.IgnorePlatform; +import io.ebean.annotation.Platform; import io.ebean.meta.*; import io.ebean.test.LoggedSql; import org.junit.jupiter.api.Test; @@ -163,6 +165,7 @@ public class TestCustomerFinder extends BaseTestCase { } @Test + @IgnorePlatform(Platform.DB2) // no query plans yet, for DB2 public void test_finders_queryPlans() { ResetBasicData.reset(); From 0bc07d38b25d433380ceeaf11fe73dcb4abe3cbf Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Wed, 16 Mar 2022 12:13:29 +1300 Subject: [PATCH 104/114] Add Oracle GH workflow for JDK EA 18,19,loom,valhalla,metropolis,panama --- .github/workflows/jdk-ea.yml | 39 ++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 .github/workflows/jdk-ea.yml diff --git a/.github/workflows/jdk-ea.yml b/.github/workflows/jdk-ea.yml new file mode 100644 index 000000000..94b202dd4 --- /dev/null +++ b/.github/workflows/jdk-ea.yml @@ -0,0 +1,39 @@ + +name: JDK EA + +on: + workflow_dispatch: + schedule: + - cron: '39 6 * * 1,3,5' + +jobs: + build: + + runs-on: ${{ matrix.os }} + permissions: + contents: read + packages: write + strategy: + fail-fast: false + matrix: + java_version: [17,18,19,loom,valhalla,metropolis,panama] + os: [ubuntu-latest] + + steps: + - uses: actions/checkout@v2 + - name: Set up Java + uses: oracle-actions/setup-java@v1 + with: + website: jdk.java.net + release: ${{ matrix.java_version }} + - name: Maven cache + uses: actions/cache@v2 + env: + cache-name: maven-cache + with: + path: + ~/.m2 + key: build-${{ env.cache-name }} + - name: Build with Maven + run: mvn package + From 3bc7f061eb1a55b48670b2c0ab62beabe99f84ae Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Wed, 16 Mar 2022 17:55:37 +1300 Subject: [PATCH 105/114] Bump test dependencies for junit, assertj, mockito --- ebean-api/pom.xml | 2 +- ebean-autotune/pom.xml | 2 +- ebean-core/pom.xml | 2 +- ebean-ddl-generator/pom.xml | 2 +- ebean-externalmapping-xml/pom.xml | 2 +- ebean-kotlin/pom.xml | 2 +- ebean-postgis/pom.xml | 2 +- ebean-querybean/pom.xml | 2 +- ebean-redis/pom.xml | 2 +- ebean-test/pom.xml | 2 +- kotlin-querybean-generator/pom.xml | 2 +- querybean-generator/pom.xml | 2 +- tests/test-java16/pom.xml | 2 +- tests/test-kotlin/pom.xml | 2 +- 14 files changed, 14 insertions(+), 14 deletions(-) diff --git a/ebean-api/pom.xml b/ebean-api/pom.xml index b3f58a524..267cd50df 100644 --- a/ebean-api/pom.xml +++ b/ebean-api/pom.xml @@ -106,7 +106,7 @@ io.avaje junit - 1.0 + 1.1 test diff --git a/ebean-autotune/pom.xml b/ebean-autotune/pom.xml index dcffd03f0..a1f77c57c 100644 --- a/ebean-autotune/pom.xml +++ b/ebean-autotune/pom.xml @@ -48,7 +48,7 @@ io.avaje junit - 1.0 + 1.1 test diff --git a/ebean-core/pom.xml b/ebean-core/pom.xml index 164763862..486d8085a 100644 --- a/ebean-core/pom.xml +++ b/ebean-core/pom.xml @@ -152,7 +152,7 @@ io.avaje junit - 1.0 + 1.1 test diff --git a/ebean-ddl-generator/pom.xml b/ebean-ddl-generator/pom.xml index d05318f87..dd8fac091 100644 --- a/ebean-ddl-generator/pom.xml +++ b/ebean-ddl-generator/pom.xml @@ -51,7 +51,7 @@ io.avaje junit - 1.0 + 1.1 test diff --git a/ebean-externalmapping-xml/pom.xml b/ebean-externalmapping-xml/pom.xml index ad14307c0..2255fb3ce 100644 --- a/ebean-externalmapping-xml/pom.xml +++ b/ebean-externalmapping-xml/pom.xml @@ -73,7 +73,7 @@ io.avaje junit - 1.0 + 1.1 test diff --git a/ebean-kotlin/pom.xml b/ebean-kotlin/pom.xml index 58870dfdd..3ed9eae41 100644 --- a/ebean-kotlin/pom.xml +++ b/ebean-kotlin/pom.xml @@ -44,7 +44,7 @@ io.avaje junit - 1.0 + 1.1 test diff --git a/ebean-postgis/pom.xml b/ebean-postgis/pom.xml index fa732d60e..406baf013 100644 --- a/ebean-postgis/pom.xml +++ b/ebean-postgis/pom.xml @@ -81,7 +81,7 @@ io.avaje junit - 1.0 + 1.1 test diff --git a/ebean-querybean/pom.xml b/ebean-querybean/pom.xml index ae9595f1e..8af3ee33b 100644 --- a/ebean-querybean/pom.xml +++ b/ebean-querybean/pom.xml @@ -77,7 +77,7 @@ io.avaje junit - 1.0 + 1.1 test diff --git a/ebean-redis/pom.xml b/ebean-redis/pom.xml index 02f84bc88..e2038f6f8 100644 --- a/ebean-redis/pom.xml +++ b/ebean-redis/pom.xml @@ -57,7 +57,7 @@ io.avaje junit - 1.0 + 1.1 test diff --git a/ebean-test/pom.xml b/ebean-test/pom.xml index a88660e0a..f6b7417ff 100644 --- a/ebean-test/pom.xml +++ b/ebean-test/pom.xml @@ -233,7 +233,7 @@ io.avaje junit - 1.0 + 1.1 test diff --git a/kotlin-querybean-generator/pom.xml b/kotlin-querybean-generator/pom.xml index a7c7e29a8..0c35dc52f 100644 --- a/kotlin-querybean-generator/pom.xml +++ b/kotlin-querybean-generator/pom.xml @@ -22,7 +22,7 @@ io.avaje junit - 1.0 + 1.1 test diff --git a/querybean-generator/pom.xml b/querybean-generator/pom.xml index 5a129080c..16c5ab334 100644 --- a/querybean-generator/pom.xml +++ b/querybean-generator/pom.xml @@ -16,7 +16,7 @@ io.avaje junit - 1.0 + 1.1 test diff --git a/tests/test-java16/pom.xml b/tests/test-java16/pom.xml index d71865bc3..e24dc0f77 100644 --- a/tests/test-java16/pom.xml +++ b/tests/test-java16/pom.xml @@ -39,7 +39,7 @@ io.avaje junit - 1.0 + 1.1 test diff --git a/tests/test-kotlin/pom.xml b/tests/test-kotlin/pom.xml index 9b0caa10d..f6832662b 100644 --- a/tests/test-kotlin/pom.xml +++ b/tests/test-kotlin/pom.xml @@ -29,7 +29,7 @@ io.avaje junit - 1.0 + 1.1 test From d9ea465102683e8f0647efa3724fefd5ca2ef5e3 Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Wed, 16 Mar 2022 18:02:07 +1300 Subject: [PATCH 106/114] Support running tests against java 19 --- .../server/profile/BasicProfileLocationTest.java | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/ebean-test/src/test/java/io/ebeaninternal/server/profile/BasicProfileLocationTest.java b/ebean-test/src/test/java/io/ebeaninternal/server/profile/BasicProfileLocationTest.java index 3c3055151..d08afe225 100644 --- a/ebean-test/src/test/java/io/ebeaninternal/server/profile/BasicProfileLocationTest.java +++ b/ebean-test/src/test/java/io/ebeaninternal/server/profile/BasicProfileLocationTest.java @@ -9,7 +9,6 @@ class BasicProfileLocationTest { @Test void obtain() { - DProfileLocation loc = new DTimedProfileLocation(12, "foo", MetricFactory.get().createTimedMetric("junk")); String javaVersion = System.getProperty("java.version"); @@ -18,7 +17,7 @@ class BasicProfileLocationTest { assertThat(loc.fullLocation()).endsWith("invoke0(Native Method:12)"); assertThat(loc.location()).isEqualTo("sun.reflect.NativeMethodAccessorImpl.invoke0"); assertThat(loc.label()).isEqualTo("NativeMethodAccessorImpl.invoke0"); - } else if (javaVersion.startsWith("18")){ + } else if (javaVersion.startsWith("18") || javaVersion.startsWith("19")){ assertThat(loc.fullLocation()).endsWith("jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)"); assertThat(loc.location()).isEqualTo("java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke"); assertThat(loc.label()).isEqualTo("DirectMethodHandleAccessor.invoke"); @@ -31,7 +30,6 @@ class BasicProfileLocationTest { @Test void basic_trimPackage() { - BasicProfileLocation loc = new BasicProfileLocation("com.foo.Bar.all"); assertThat(loc.obtain()).isFalse(); assertThat(loc.fullLocation()).isEqualTo("com.foo.Bar.all"); @@ -41,7 +39,6 @@ class BasicProfileLocationTest { @Test void basic_trimSinglePackage() { - BasicProfileLocation loc = new BasicProfileLocation("foo.Bar.all"); assertThat(loc.obtain()).isFalse(); assertThat(loc.fullLocation()).isEqualTo("foo.Bar.all"); From 75b9df942ce9d4066d9ef240ef9aadbb2c57ed2b Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Wed, 16 Mar 2022 18:38:47 +1300 Subject: [PATCH 107/114] No effective change - tidy TestWithCacheAndLazyLoad --- .../TestWithCacheAndLazyLoad.java | 24 +++++++++---------- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/ebean-test/src/test/java/org/tests/model/lazywithcache/TestWithCacheAndLazyLoad.java b/ebean-test/src/test/java/org/tests/model/lazywithcache/TestWithCacheAndLazyLoad.java index 8c8066dbc..39ac73ded 100644 --- a/ebean-test/src/test/java/org/tests/model/lazywithcache/TestWithCacheAndLazyLoad.java +++ b/ebean-test/src/test/java/org/tests/model/lazywithcache/TestWithCacheAndLazyLoad.java @@ -3,24 +3,22 @@ package org.tests.model.lazywithcache; import io.ebean.BaseTestCase; import io.ebean.DB; import io.ebean.Transaction; - import org.junit.jupiter.api.Test; +import java.util.List; + import static org.assertj.core.api.Assertions.assertThat; import static org.junit.jupiter.api.Assertions.assertNotNull; -import java.util.List; - /** * Test with bean cache and lazy loaded property. * * @author Noemi Szemenyei, FOCONIS AG - * */ -public class TestWithCacheAndLazyLoad extends BaseTestCase{ +class TestWithCacheAndLazyLoad extends BaseTestCase { @Test - public void testGetters() { + void testGetters() { ChildWithCache child = new ChildWithCache(); child.setId(1L); @@ -52,19 +50,19 @@ public class TestWithCacheAndLazyLoad extends BaseTestCase{ assertThat(temp.getAddress()).isEqualTo("Address"); assertThat(temp.getName()).isEqualTo("Child With Cache"); } - + @Test - public void testBatch() throws Exception { - + void testBatch() { + for (int i = 0; i < 2; i++) { ChildWithCache child = new ChildWithCache(); - child.setId(1000L+i); - child.setName("Child With Cache "+ i); + child.setId(1000L + i); + child.setName("Child With Cache " + i); child.setAddress("Address"); DB.save(child); ParentA parentA = new ParentA(); - parentA.setId(1000L+i); + parentA.setId(1000L + i); parentA.setName("Parent A"); parentA.setChild(child); DB.save(parentA); @@ -72,7 +70,7 @@ public class TestWithCacheAndLazyLoad extends BaseTestCase{ // 0. load cache ParentA temp = DB.find(ParentA.class, 1000L); temp.getChild().getName(); - + try (Transaction txn = DB.beginTransaction()) { // 1. FindList List list = DB.find(ParentA.class).where().ge("id", 1000L).orderBy("id").findList(); From 327f25c568016b7249f97fc26092aff86d9d32d3 Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Wed, 16 Mar 2022 18:51:12 +1300 Subject: [PATCH 108/114] No functional change - refactor tidy dealing with some internal warnings protected not needed on final classes --- .../src/main/java/io/ebean/bean/EntityBeanIntercept.java | 4 ++-- .../io/ebeaninternal/server/core/DefaultBeanLoader.java | 9 ++++----- .../server/loadcontext/DLoadBeanContext.java | 2 +- 3 files changed, 7 insertions(+), 8 deletions(-) diff --git a/ebean-api/src/main/java/io/ebean/bean/EntityBeanIntercept.java b/ebean-api/src/main/java/io/ebean/bean/EntityBeanIntercept.java index 2effe73d9..86de48bd8 100644 --- a/ebean-api/src/main/java/io/ebean/bean/EntityBeanIntercept.java +++ b/ebean-api/src/main/java/io/ebean/bean/EntityBeanIntercept.java @@ -829,7 +829,7 @@ public final class EntityBeanIntercept implements Serializable { /** * Load the bean when it is a reference. */ - protected void loadBean(int loadProperty) { + void loadBean(int loadProperty) { lock.lock(); try { if (beanLoader == null) { @@ -886,7 +886,7 @@ public final class EntityBeanIntercept implements Serializable { * Helper method to check if two objects are equal. */ @SuppressWarnings({"unchecked", "rawtypes"}) - protected static boolean notEqual(Object obj1, Object obj2) { + static boolean notEqual(Object obj1, Object obj2) { if (obj1 == null) { return (obj2 != null); } diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/core/DefaultBeanLoader.java b/ebean-core/src/main/java/io/ebeaninternal/server/core/DefaultBeanLoader.java index 4a2ffb68c..854842b21 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/core/DefaultBeanLoader.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/core/DefaultBeanLoader.java @@ -2,7 +2,6 @@ package io.ebeaninternal.server.core; import io.ebean.CacheMode; import io.ebean.ExpressionList; -import io.ebean.Transaction; import io.ebean.bean.BeanCollection; import io.ebean.bean.EntityBean; import io.ebean.bean.EntityBeanIntercept; @@ -40,14 +39,14 @@ final class DefaultBeanLoader { } void loadMany(BeanCollection bc, boolean onlyIds) { - loadManyInternal(bc.getOwnerBean(), bc.getPropertyName(), null, false, onlyIds); + loadManyInternal(bc.getOwnerBean(), bc.getPropertyName(), false, onlyIds); } void refreshMany(EntityBean parentBean, String propertyName) { - loadManyInternal(parentBean, propertyName, null, true, false); + loadManyInternal(parentBean, propertyName, true, false); } - private void loadManyInternal(EntityBean parentBean, String propertyName, Transaction t, boolean refresh, boolean onlyIds) { + private void loadManyInternal(EntityBean parentBean, String propertyName, boolean refresh, boolean onlyIds) { EntityBeanIntercept ebi = parentBean._ebean_getIntercept(); PersistenceContext pc = ebi.getPersistenceContext(); BeanDescriptor parentDesc = server.descriptor(parentBean.getClass()); @@ -106,7 +105,7 @@ final class DefaultBeanLoader { query.setReadOnly(true); } - server.findOne(query, t); + server.findOne(query, null); if (beanCollection != null) { if (beanCollection.checkEmptyLazyLoad()) { if (log.isDebugEnabled()) { diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/loadcontext/DLoadBeanContext.java b/ebean-core/src/main/java/io/ebeaninternal/server/loadcontext/DLoadBeanContext.java index a8533956c..5f1e37613 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/loadcontext/DLoadBeanContext.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/loadcontext/DLoadBeanContext.java @@ -67,7 +67,7 @@ final class DLoadBeanContext extends DLoadBaseContext implements LoadBeanContext } } - protected void register(EntityBeanIntercept ebi) { + void register(EntityBeanIntercept ebi) { if (currentBuffer.isFull()) { currentBuffer = createBuffer(batchSize); } From ff1b01e5ca426b3bb751871d912604001ff71446 Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Wed, 16 Mar 2022 22:13:07 +1300 Subject: [PATCH 109/114] Bump agent to 12.16.0 + test and provided dependencies --- pom.xml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pom.xml b/pom.xml index 0c3a1a707..e77d8d637 100644 --- a/pom.xml +++ b/pom.xml @@ -46,8 +46,8 @@ 12.16.0 4.5 7.5 - 12.15.0 - 12.15.0 + 12.16.0 + 12.16.0 @@ -55,14 +55,14 @@ org.slf4j slf4j-api - 1.7.30 + 1.7.36 provided ch.qos.logback logback-classic - 1.2.9 + 1.2.11 test From 92e85e32a2e64f27f677dd0cb73feb0e2f0cdd11 Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Wed, 16 Mar 2022 22:13:52 +1300 Subject: [PATCH 110/114] #2598 - H2 + @Lob String fails with - Error[Value too long for column "CHARACTER VARYING": "... (1048577)" [22001-210]] --- .../server/type/ScalarTypeClob.java | 10 ++++++++++ .../org/tests/basic/lob/TestBasicClobNoVer.java | 17 ++++++++++++++++- 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeClob.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeClob.java index 7903a76ea..33a962726 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeClob.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeClob.java @@ -1,5 +1,6 @@ package io.ebeaninternal.server.type; +import io.ebean.core.type.DataBinder; import io.ebean.core.type.DataReader; import java.sql.SQLException; @@ -18,6 +19,15 @@ class ScalarTypeClob extends ScalarTypeStringBase { super(true, Types.CLOB); } + @Override + public void bind(DataBinder binder, String value) throws SQLException { + if (value == null) { + binder.setNull(Types.VARCHAR); + } else { + binder.setClob(value); + } + } + @Override public String read(DataReader reader) throws SQLException { return reader.getStringFromStream(); diff --git a/ebean-test/src/test/java/org/tests/basic/lob/TestBasicClobNoVer.java b/ebean-test/src/test/java/org/tests/basic/lob/TestBasicClobNoVer.java index 3123afc57..274912594 100644 --- a/ebean-test/src/test/java/org/tests/basic/lob/TestBasicClobNoVer.java +++ b/ebean-test/src/test/java/org/tests/basic/lob/TestBasicClobNoVer.java @@ -7,8 +7,8 @@ import io.ebean.test.LoggedSql; import org.junit.jupiter.api.Test; import org.tests.model.basic.EBasicClobNoVer; -import javax.xml.transform.sax.SAXSource; import java.util.List; +import java.util.Random; import static org.assertj.core.api.Assertions.assertThat; @@ -83,4 +83,19 @@ class TestBasicClobNoVer extends BaseTestCase { assertThat(sql.get(0)).contains(" and t0.deleted ="); } + @Test + void largeValueInsert() { + EBasicClobNoVer bean = new EBasicClobNoVer(); + bean.setDescription(largeContent()); + DB.save(bean); + } + + private String largeContent() { + Random random = new Random(); + StringBuilder sb = new StringBuilder(); + for (int i = 0; i < 1048577; i++) { + sb.append((char) (random.nextInt(26) + 'a')); + } + return sb.toString(); + } } From d4d1e571d3cb9b8275fdfe083f8fe816895fc5fc Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Wed, 16 Mar 2022 22:37:54 +1300 Subject: [PATCH 111/114] Fix test assert for multi-database --- ebean-test/src/test/java/org/tests/model/nofk/TestNoFk.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/ebean-test/src/test/java/org/tests/model/nofk/TestNoFk.java b/ebean-test/src/test/java/org/tests/model/nofk/TestNoFk.java index ffb853f10..a13b0cdff 100644 --- a/ebean-test/src/test/java/org/tests/model/nofk/TestNoFk.java +++ b/ebean-test/src/test/java/org/tests/model/nofk/TestNoFk.java @@ -267,7 +267,9 @@ public class TestNoFk extends BaseTestCase { assertThat(files).hasSize(2); List sql = LoggedSql.stop(); assertThat(sql).hasSize(1); - assertThat(sql.get(0)).contains("select t0.file_name, t0.owner_user_id, t0.owner_soft_del_user_id, t1.user_id, t1.user_name, t1.user_id is null from efile_no_fk t0 left join euser_no_fk_soft_del t1 on t1.user_id = t0.owner_soft_del_user_id"); + if (isH2() || isPostgres()) { + assertThat(sql.get(0)).contains("select t0.file_name, t0.owner_user_id, t0.owner_soft_del_user_id, t1.user_id, t1.user_name, t1.user_id is null from efile_no_fk t0 left join euser_no_fk_soft_del t1 on t1.user_id = t0.owner_soft_del_user_id"); + } EFileNoFk file1 = files.get(0); EFileNoFk file2 = files.get(1); From a464c763d0ec635f95899200cbd03ed6f8efde13 Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Wed, 16 Mar 2022 22:45:57 +1300 Subject: [PATCH 112/114] Bump parent pom --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index e77d8d637..f7bad5c0e 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ org.avaje java8-oss - 3.3 + 3.6 io.ebean From ef8d9c7eb05b10172c2a9fe8ee512ad1556abbc8 Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Wed, 16 Mar 2022 22:49:16 +1300 Subject: [PATCH 113/114] [maven-release-plugin] prepare release ebean-parent-12.16.0 --- ebean-api/pom.xml | 2 +- ebean-autotune/pom.xml | 6 +++--- ebean-bom/pom.xml | 30 +++++++++++++++--------------- ebean-core-type/pom.xml | 4 ++-- ebean-core/pom.xml | 10 +++++----- ebean-ddl-generator/pom.xml | 6 +++--- ebean-externalmapping-api/pom.xml | 2 +- ebean-externalmapping-xml/pom.xml | 10 +++++----- ebean-postgis/pom.xml | 6 +++--- ebean-querybean/pom.xml | 10 +++++----- ebean-redis/pom.xml | 12 ++++++------ ebean-test/pom.xml | 6 +++--- ebean/pom.xml | 8 ++++---- kotlin-querybean-generator/pom.xml | 8 ++++---- pom.xml | 4 ++-- querybean-generator/pom.xml | 2 +- 16 files changed, 63 insertions(+), 63 deletions(-) diff --git a/ebean-api/pom.xml b/ebean-api/pom.xml index 267cd50df..9f7de1469 100644 --- a/ebean-api/pom.xml +++ b/ebean-api/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 12.16.0-SNAPSHOT + 12.16.0 ebean api diff --git a/ebean-autotune/pom.xml b/ebean-autotune/pom.xml index a1f77c57c..87484b17e 100644 --- a/ebean-autotune/pom.xml +++ b/ebean-autotune/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 12.16.0-SNAPSHOT + 12.16.0 @@ -14,7 +14,7 @@ scm:git:git@github.com:ebean-orm/ebean.git - HEAD + ebean-parent-12.16.0 ebean autotune @@ -26,7 +26,7 @@ io.ebean ebean-core - 12.16.0-SNAPSHOT + 12.16.0 provided diff --git a/ebean-bom/pom.xml b/ebean-bom/pom.xml index b414303e1..0ec5ae979 100644 --- a/ebean-bom/pom.xml +++ b/ebean-bom/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 12.16.0-SNAPSHOT + 12.16.0 ebean bom @@ -71,88 +71,88 @@ io.ebean ebean - 12.16.0-SNAPSHOT + 12.16.0 io.ebean ebean-api - 12.16.0-SNAPSHOT + 12.16.0 io.ebean ebean-core - 12.16.0-SNAPSHOT + 12.16.0 io.ebean ebean-core-type - 12.16.0-SNAPSHOT + 12.16.0 io.ebean ebean-ddl-generator - 12.16.0-SNAPSHOT + 12.16.0 io.ebean ebean-externalmapping-api - 12.16.0-SNAPSHOT + 12.16.0 io.ebean ebean-externalmapping-xml - 12.16.0-SNAPSHOT + 12.16.0 io.ebean ebean-autotune - 12.16.0-SNAPSHOT + 12.16.0 io.ebean ebean-querybean - 12.16.0-SNAPSHOT + 12.16.0 io.ebean querybean-generator - 12.16.0-SNAPSHOT + 12.16.0 provided io.ebean kotlin-querybean-generator - 12.16.0-SNAPSHOT + 12.16.0 provided io.ebean ebean-test - 12.16.0-SNAPSHOT + 12.16.0 test io.ebean ebean-postgis - 12.16.0-SNAPSHOT + 12.16.0 io.ebean ebean-redis - 12.16.0-SNAPSHOT + 12.16.0 diff --git a/ebean-core-type/pom.xml b/ebean-core-type/pom.xml index df0f219d8..a7e2cd0dd 100644 --- a/ebean-core-type/pom.xml +++ b/ebean-core-type/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 12.16.0-SNAPSHOT + 12.16.0 ebean-core-type @@ -16,7 +16,7 @@ io.ebean ebean-api - 12.16.0-SNAPSHOT + 12.16.0 diff --git a/ebean-core/pom.xml b/ebean-core/pom.xml index 486d8085a..064c5cea1 100644 --- a/ebean-core/pom.xml +++ b/ebean-core/pom.xml @@ -3,7 +3,7 @@ ebean-parent io.ebean - 12.16.0-SNAPSHOT + 12.16.0 ebean-core @@ -15,7 +15,7 @@ scm:git:git@github.com:ebean-orm/ebean.git - HEAD + ebean-parent-12.16.0 @@ -41,19 +41,19 @@ io.ebean ebean-api - 12.16.0-SNAPSHOT + 12.16.0 io.ebean ebean-core-type - 12.16.0-SNAPSHOT + 12.16.0 io.ebean ebean-externalmapping-api - 12.16.0-SNAPSHOT + 12.16.0 diff --git a/ebean-ddl-generator/pom.xml b/ebean-ddl-generator/pom.xml index dd8fac091..9c12ca444 100644 --- a/ebean-ddl-generator/pom.xml +++ b/ebean-ddl-generator/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 12.16.0-SNAPSHOT + 12.16.0 ebean ddl generation @@ -28,14 +28,14 @@ io.ebean ebean-core-type - 12.16.0-SNAPSHOT + 12.16.0 provided io.ebean ebean-core - 12.16.0-SNAPSHOT + 12.16.0 provided diff --git a/ebean-externalmapping-api/pom.xml b/ebean-externalmapping-api/pom.xml index f49bf1753..42b47adfd 100644 --- a/ebean-externalmapping-api/pom.xml +++ b/ebean-externalmapping-api/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 12.16.0-SNAPSHOT + 12.16.0 ebean external mapping api diff --git a/ebean-externalmapping-xml/pom.xml b/ebean-externalmapping-xml/pom.xml index 2255fb3ce..341b38118 100644 --- a/ebean-externalmapping-xml/pom.xml +++ b/ebean-externalmapping-xml/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 12.16.0-SNAPSHOT + 12.16.0 @@ -14,7 +14,7 @@ scm:git:git@github.com:ebean-orm/ebean.git - HEAD + ebean-parent-12.16.0 ebean external mapping xml @@ -33,7 +33,7 @@ io.ebean ebean-externalmapping-api - 12.16.0-SNAPSHOT + 12.16.0 @@ -59,14 +59,14 @@ io.ebean ebean-core - 12.16.0-SNAPSHOT + 12.16.0 test io.ebean ebean-ddl-generator - 12.16.0-SNAPSHOT + 12.16.0 test diff --git a/ebean-postgis/pom.xml b/ebean-postgis/pom.xml index 406baf013..48dba479c 100644 --- a/ebean-postgis/pom.xml +++ b/ebean-postgis/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 12.16.0-SNAPSHOT + 12.16.0 ebean postgis @@ -23,7 +23,7 @@ io.ebean ebean-core - 12.16.0-SNAPSHOT + 12.16.0 provided @@ -67,7 +67,7 @@ io.ebean ebean-test - 12.16.0-SNAPSHOT + 12.16.0 test diff --git a/ebean-querybean/pom.xml b/ebean-querybean/pom.xml index 8af3ee33b..1e237445c 100644 --- a/ebean-querybean/pom.xml +++ b/ebean-querybean/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 12.16.0-SNAPSHOT + 12.16.0 ebean querybean @@ -17,7 +17,7 @@ io.ebean ebean-core - 12.16.0-SNAPSHOT + 12.16.0 provided @@ -56,21 +56,21 @@ io.ebean ebean-ddl-generator - 12.16.0-SNAPSHOT + 12.16.0 test io.ebean querybean-generator - 12.16.0-SNAPSHOT + 12.16.0 test io.ebean ebean-test - 12.16.0-SNAPSHOT + 12.16.0 test diff --git a/ebean-redis/pom.xml b/ebean-redis/pom.xml index e2038f6f8..20c4d00d7 100644 --- a/ebean-redis/pom.xml +++ b/ebean-redis/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 12.16.0-SNAPSHOT + 12.16.0 ebean-redis @@ -22,35 +22,35 @@ io.ebean ebean-api - 12.16.0-SNAPSHOT + 12.16.0 provided io.ebean ebean-core - 12.16.0-SNAPSHOT + 12.16.0 provided io.ebean ebean-querybean - 12.16.0-SNAPSHOT + 12.16.0 test io.ebean querybean-generator - 12.16.0-SNAPSHOT + 12.16.0 test io.ebean ebean-test - 12.16.0-SNAPSHOT + 12.16.0 test diff --git a/ebean-test/pom.xml b/ebean-test/pom.xml index f6b7417ff..dab9376ef 100644 --- a/ebean-test/pom.xml +++ b/ebean-test/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 12.16.0-SNAPSHOT + 12.16.0 ebean test @@ -29,14 +29,14 @@ io.ebean ebean-core - 12.16.0-SNAPSHOT + 12.16.0 provided io.ebean ebean-ddl-generator - 12.16.0-SNAPSHOT + 12.16.0 diff --git a/ebean/pom.xml b/ebean/pom.xml index a62ad8df4..3ee75a900 100644 --- a/ebean/pom.xml +++ b/ebean/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 12.16.0-SNAPSHOT + 12.16.0 ebean composite @@ -22,20 +22,20 @@ io.ebean ebean-api - 12.16.0-SNAPSHOT + 12.16.0 io.ebean ebean-core - 12.16.0-SNAPSHOT + 12.16.0 io.ebean ebean-querybean - 12.16.0-SNAPSHOT + 12.16.0 diff --git a/kotlin-querybean-generator/pom.xml b/kotlin-querybean-generator/pom.xml index 0c35dc52f..7cc9bfff8 100644 --- a/kotlin-querybean-generator/pom.xml +++ b/kotlin-querybean-generator/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 12.16.0-SNAPSHOT + 12.16.0 kotlin querybean generator @@ -29,7 +29,7 @@ io.ebean ebean-querybean - 12.16.0-SNAPSHOT + 12.16.0 test @@ -43,7 +43,7 @@ io.ebean ebean-core - 12.16.0-SNAPSHOT + 12.16.0 test @@ -64,7 +64,7 @@ io.ebean ebean-ddl-generator - 12.16.0-SNAPSHOT + 12.16.0 test diff --git a/pom.xml b/pom.xml index f7bad5c0e..49942a789 100644 --- a/pom.xml +++ b/pom.xml @@ -9,7 +9,7 @@ io.ebean ebean-parent - 12.16.0-SNAPSHOT + 12.16.0 pom ebean parent @@ -18,7 +18,7 @@ scm:git:git@github.com:ebean-orm/ebean.git - HEAD + ebean-parent-12.16.0 diff --git a/querybean-generator/pom.xml b/querybean-generator/pom.xml index 16c5ab334..cce1d9f39 100644 --- a/querybean-generator/pom.xml +++ b/querybean-generator/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 12.16.0-SNAPSHOT + 12.16.0 querybean generator From 2faaf5f186ec326110858af802615cbdca4713c0 Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Wed, 16 Mar 2022 22:49:23 +1300 Subject: [PATCH 114/114] [maven-release-plugin] prepare for next development iteration --- ebean-api/pom.xml | 2 +- ebean-autotune/pom.xml | 6 +++--- ebean-bom/pom.xml | 30 +++++++++++++++--------------- ebean-core-type/pom.xml | 4 ++-- ebean-core/pom.xml | 10 +++++----- ebean-ddl-generator/pom.xml | 6 +++--- ebean-externalmapping-api/pom.xml | 2 +- ebean-externalmapping-xml/pom.xml | 10 +++++----- ebean-postgis/pom.xml | 6 +++--- ebean-querybean/pom.xml | 10 +++++----- ebean-redis/pom.xml | 12 ++++++------ ebean-test/pom.xml | 6 +++--- ebean/pom.xml | 8 ++++---- kotlin-querybean-generator/pom.xml | 8 ++++---- pom.xml | 4 ++-- querybean-generator/pom.xml | 2 +- 16 files changed, 63 insertions(+), 63 deletions(-) diff --git a/ebean-api/pom.xml b/ebean-api/pom.xml index 9f7de1469..5af204a63 100644 --- a/ebean-api/pom.xml +++ b/ebean-api/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 12.16.0 + 12.16.1-SNAPSHOT ebean api diff --git a/ebean-autotune/pom.xml b/ebean-autotune/pom.xml index 87484b17e..e4916a25e 100644 --- a/ebean-autotune/pom.xml +++ b/ebean-autotune/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 12.16.0 + 12.16.1-SNAPSHOT @@ -14,7 +14,7 @@ scm:git:git@github.com:ebean-orm/ebean.git - ebean-parent-12.16.0 + HEAD ebean autotune @@ -26,7 +26,7 @@ io.ebean ebean-core - 12.16.0 + 12.16.1-SNAPSHOT provided diff --git a/ebean-bom/pom.xml b/ebean-bom/pom.xml index 0ec5ae979..aac3b5a1c 100644 --- a/ebean-bom/pom.xml +++ b/ebean-bom/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 12.16.0 + 12.16.1-SNAPSHOT ebean bom @@ -71,88 +71,88 @@ io.ebean ebean - 12.16.0 + 12.16.1-SNAPSHOT io.ebean ebean-api - 12.16.0 + 12.16.1-SNAPSHOT io.ebean ebean-core - 12.16.0 + 12.16.1-SNAPSHOT io.ebean ebean-core-type - 12.16.0 + 12.16.1-SNAPSHOT io.ebean ebean-ddl-generator - 12.16.0 + 12.16.1-SNAPSHOT io.ebean ebean-externalmapping-api - 12.16.0 + 12.16.1-SNAPSHOT io.ebean ebean-externalmapping-xml - 12.16.0 + 12.16.1-SNAPSHOT io.ebean ebean-autotune - 12.16.0 + 12.16.1-SNAPSHOT io.ebean ebean-querybean - 12.16.0 + 12.16.1-SNAPSHOT io.ebean querybean-generator - 12.16.0 + 12.16.1-SNAPSHOT provided io.ebean kotlin-querybean-generator - 12.16.0 + 12.16.1-SNAPSHOT provided io.ebean ebean-test - 12.16.0 + 12.16.1-SNAPSHOT test io.ebean ebean-postgis - 12.16.0 + 12.16.1-SNAPSHOT io.ebean ebean-redis - 12.16.0 + 12.16.1-SNAPSHOT diff --git a/ebean-core-type/pom.xml b/ebean-core-type/pom.xml index a7e2cd0dd..9472271f3 100644 --- a/ebean-core-type/pom.xml +++ b/ebean-core-type/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 12.16.0 + 12.16.1-SNAPSHOT ebean-core-type @@ -16,7 +16,7 @@ io.ebean ebean-api - 12.16.0 + 12.16.1-SNAPSHOT diff --git a/ebean-core/pom.xml b/ebean-core/pom.xml index 064c5cea1..113fd4c3f 100644 --- a/ebean-core/pom.xml +++ b/ebean-core/pom.xml @@ -3,7 +3,7 @@ ebean-parent io.ebean - 12.16.0 + 12.16.1-SNAPSHOT ebean-core @@ -15,7 +15,7 @@ scm:git:git@github.com:ebean-orm/ebean.git - ebean-parent-12.16.0 + HEAD @@ -41,19 +41,19 @@ io.ebean ebean-api - 12.16.0 + 12.16.1-SNAPSHOT io.ebean ebean-core-type - 12.16.0 + 12.16.1-SNAPSHOT io.ebean ebean-externalmapping-api - 12.16.0 + 12.16.1-SNAPSHOT diff --git a/ebean-ddl-generator/pom.xml b/ebean-ddl-generator/pom.xml index 9c12ca444..b73e29858 100644 --- a/ebean-ddl-generator/pom.xml +++ b/ebean-ddl-generator/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 12.16.0 + 12.16.1-SNAPSHOT ebean ddl generation @@ -28,14 +28,14 @@ io.ebean ebean-core-type - 12.16.0 + 12.16.1-SNAPSHOT provided io.ebean ebean-core - 12.16.0 + 12.16.1-SNAPSHOT provided diff --git a/ebean-externalmapping-api/pom.xml b/ebean-externalmapping-api/pom.xml index 42b47adfd..aefe5f84c 100644 --- a/ebean-externalmapping-api/pom.xml +++ b/ebean-externalmapping-api/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 12.16.0 + 12.16.1-SNAPSHOT ebean external mapping api diff --git a/ebean-externalmapping-xml/pom.xml b/ebean-externalmapping-xml/pom.xml index 341b38118..d66a242a7 100644 --- a/ebean-externalmapping-xml/pom.xml +++ b/ebean-externalmapping-xml/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 12.16.0 + 12.16.1-SNAPSHOT @@ -14,7 +14,7 @@ scm:git:git@github.com:ebean-orm/ebean.git - ebean-parent-12.16.0 + HEAD ebean external mapping xml @@ -33,7 +33,7 @@ io.ebean ebean-externalmapping-api - 12.16.0 + 12.16.1-SNAPSHOT @@ -59,14 +59,14 @@ io.ebean ebean-core - 12.16.0 + 12.16.1-SNAPSHOT test io.ebean ebean-ddl-generator - 12.16.0 + 12.16.1-SNAPSHOT test diff --git a/ebean-postgis/pom.xml b/ebean-postgis/pom.xml index 48dba479c..b41011ab4 100644 --- a/ebean-postgis/pom.xml +++ b/ebean-postgis/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 12.16.0 + 12.16.1-SNAPSHOT ebean postgis @@ -23,7 +23,7 @@ io.ebean ebean-core - 12.16.0 + 12.16.1-SNAPSHOT provided @@ -67,7 +67,7 @@ io.ebean ebean-test - 12.16.0 + 12.16.1-SNAPSHOT test diff --git a/ebean-querybean/pom.xml b/ebean-querybean/pom.xml index 1e237445c..92b67e012 100644 --- a/ebean-querybean/pom.xml +++ b/ebean-querybean/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 12.16.0 + 12.16.1-SNAPSHOT ebean querybean @@ -17,7 +17,7 @@ io.ebean ebean-core - 12.16.0 + 12.16.1-SNAPSHOT provided @@ -56,21 +56,21 @@ io.ebean ebean-ddl-generator - 12.16.0 + 12.16.1-SNAPSHOT test io.ebean querybean-generator - 12.16.0 + 12.16.1-SNAPSHOT test io.ebean ebean-test - 12.16.0 + 12.16.1-SNAPSHOT test diff --git a/ebean-redis/pom.xml b/ebean-redis/pom.xml index 20c4d00d7..c887a3cd6 100644 --- a/ebean-redis/pom.xml +++ b/ebean-redis/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 12.16.0 + 12.16.1-SNAPSHOT ebean-redis @@ -22,35 +22,35 @@ io.ebean ebean-api - 12.16.0 + 12.16.1-SNAPSHOT provided io.ebean ebean-core - 12.16.0 + 12.16.1-SNAPSHOT provided io.ebean ebean-querybean - 12.16.0 + 12.16.1-SNAPSHOT test io.ebean querybean-generator - 12.16.0 + 12.16.1-SNAPSHOT test io.ebean ebean-test - 12.16.0 + 12.16.1-SNAPSHOT test diff --git a/ebean-test/pom.xml b/ebean-test/pom.xml index dab9376ef..330a12a69 100644 --- a/ebean-test/pom.xml +++ b/ebean-test/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 12.16.0 + 12.16.1-SNAPSHOT ebean test @@ -29,14 +29,14 @@ io.ebean ebean-core - 12.16.0 + 12.16.1-SNAPSHOT provided io.ebean ebean-ddl-generator - 12.16.0 + 12.16.1-SNAPSHOT diff --git a/ebean/pom.xml b/ebean/pom.xml index 3ee75a900..a074aa0ea 100644 --- a/ebean/pom.xml +++ b/ebean/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 12.16.0 + 12.16.1-SNAPSHOT ebean composite @@ -22,20 +22,20 @@ io.ebean ebean-api - 12.16.0 + 12.16.1-SNAPSHOT io.ebean ebean-core - 12.16.0 + 12.16.1-SNAPSHOT io.ebean ebean-querybean - 12.16.0 + 12.16.1-SNAPSHOT diff --git a/kotlin-querybean-generator/pom.xml b/kotlin-querybean-generator/pom.xml index 7cc9bfff8..716c2ddde 100644 --- a/kotlin-querybean-generator/pom.xml +++ b/kotlin-querybean-generator/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 12.16.0 + 12.16.1-SNAPSHOT kotlin querybean generator @@ -29,7 +29,7 @@ io.ebean ebean-querybean - 12.16.0 + 12.16.1-SNAPSHOT test @@ -43,7 +43,7 @@ io.ebean ebean-core - 12.16.0 + 12.16.1-SNAPSHOT test @@ -64,7 +64,7 @@ io.ebean ebean-ddl-generator - 12.16.0 + 12.16.1-SNAPSHOT test diff --git a/pom.xml b/pom.xml index 49942a789..99355d55f 100644 --- a/pom.xml +++ b/pom.xml @@ -9,7 +9,7 @@ io.ebean ebean-parent - 12.16.0 + 12.16.1-SNAPSHOT pom ebean parent @@ -18,7 +18,7 @@ scm:git:git@github.com:ebean-orm/ebean.git - ebean-parent-12.16.0 + HEAD diff --git a/querybean-generator/pom.xml b/querybean-generator/pom.xml index cce1d9f39..1b93b331a 100644 --- a/querybean-generator/pom.xml +++ b/querybean-generator/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 12.16.0 + 12.16.1-SNAPSHOT querybean generator