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); } /** 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; 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/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 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