#2074 - Refactor extract ebean-ddlgen module. In future this module would expected to be a test only dependency

This commit is contained in:
rob bygrave committed 2020-10-10 12:28:02 +13:00
1 parent b9047bf280
commit b22bffe770
426 files changed
+5533 -229

No files matched your search

@@ -1,28 +0,0 @@
package io.ebean.config.dbplatform;
import io.ebean.config.dbplatform.h2.H2Platform;
import io.ebeaninternal.dbmigration.ddlgeneration.platform.PlatformDdl;
import io.ebeaninternal.dbmigration.ddlgeneration.PlatformDdlBuilder;
import org.junit.Test;
import static org.assertj.core.api.Assertions.assertThat;
public class H2PlatformTest {
@Test
public void testTypeConversion() {
PlatformDdl ddl = PlatformDdlBuilder.create(new H2Platform());
assertThat(ddl.convert("clob")).isEqualTo("clob");
assertThat(ddl.convert("json")).isEqualTo("clob");
assertThat(ddl.convert("jsonb")).isEqualTo("clob");
assertThat(ddl.convert("varchar(20)")).isEqualTo("varchar(20)");
assertThat(ddl.convert("decimal(10)")).isEqualTo("decimal(10)");
assertThat(ddl.convert("decimal(8,4)")).isEqualTo("decimal(8,4)");
assertThat(ddl.convert("decimal")).isEqualTo("decimal(16,3)");
assertThat(ddl.convert("boolean")).isEqualTo("boolean");
assertThat(ddl.convert("bit")).isEqualTo("bit");
}
}
@@ -2,8 +2,6 @@ package io.ebean.config.dbplatform;
import io.ebean.config.PlatformConfig;
import io.ebean.config.dbplatform.hana.HanaPlatform;
import io.ebeaninternal.dbmigration.ddlgeneration.platform.PlatformDdl;
import io.ebeaninternal.dbmigration.ddlgeneration.PlatformDdlBuilder;
import org.junit.Test;
import static org.assertj.core.api.Assertions.assertThat;
@@ -12,37 +10,6 @@ public class HanaPlatformTest {
HanaPlatform platform = new HanaPlatform();
@Test
public void testTypeConversion() {
PlatformDdl ddl = PlatformDdlBuilder.create(platform);
assertThat(ddl.convert("clob")).isEqualTo("nclob");
assertThat(ddl.convert("blob")).isEqualTo("blob");
assertThat(ddl.convert("json")).isEqualTo("nclob");
assertThat(ddl.convert("jsonb")).isEqualTo("nclob");
assertThat(ddl.convert("jsonvarchar")).isEqualTo("nvarchar(255)");
assertThat(ddl.convert("double")).isEqualTo("double");
assertThat(ddl.convert("varchar(20)")).isEqualTo("nvarchar(20)");
assertThat(ddl.convert("decimal(10)")).isEqualTo("decimal(10)");
assertThat(ddl.convert("decimal(8,4)")).isEqualTo("decimal(8,4)");
assertThat(ddl.convert("decimal")).isEqualTo("decimal(16,3)");
assertThat(ddl.convert("boolean")).isEqualTo("boolean");
assertThat(ddl.convert("bit")).isEqualTo("smallint");
assertThat(ddl.convert("tinyint")).isEqualTo("smallint");
assertThat(ddl.convert("binary")).isEqualTo("varbinary(255)");
assertThat(ddl.convert("binary(16)")).isEqualTo("varbinary(16)");
assertThat(ddl.convert("point")).isEqualTo("st_point");
assertThat(ddl.convert("multilinestring")).isEqualTo("st_geometry");
assertThat(ddl.convert("multipolygon")).isEqualTo("st_geometry");
assertThat(ddl.convert("multipoint")).isEqualTo("st_geometry");
assertThat(ddl.convert("linestring")).isEqualTo("st_geometry");
assertThat(ddl.convert("polygon")).isEqualTo("st_geometry");
}
@Test
public void uuid_default() {
@@ -2,28 +2,12 @@ package io.ebean.config.dbplatform;
import io.ebean.config.PlatformConfig;
import io.ebean.config.dbplatform.mysql.MySqlPlatform;
import io.ebeaninternal.dbmigration.ddlgeneration.platform.PlatformDdl;
import io.ebeaninternal.dbmigration.ddlgeneration.PlatformDdlBuilder;
import org.junit.Test;
import static org.assertj.core.api.Assertions.assertThat;
public class MySqlPlatformTest {
MySqlPlatform mySqlPlatform = new MySqlPlatform();
@Test
public void testTypeConversion() {
PlatformDdl ddl = PlatformDdlBuilder.create(mySqlPlatform);
assertThat(ddl.convert("clob")).isEqualTo("longtext");
assertThat(ddl.convert("json")).isEqualTo("json");
assertThat(ddl.convert("jsonb")).isEqualTo("json");
assertThat(ddl.convert("varchar(20)")).isEqualTo("varchar(20)");
assertThat(ddl.convert("boolean")).isEqualTo("tinyint(1)");
assertThat(ddl.convert("bit")).isEqualTo("tinyint(1)");
assertThat(ddl.convert("decimal")).isEqualTo("decimal(16,3)");
}
@Test
public void uuid_default() {
@@ -2,37 +2,12 @@ package io.ebean.config.dbplatform;
import io.ebean.config.PlatformConfig;
import io.ebean.config.dbplatform.oracle.OraclePlatform;
import io.ebeaninternal.dbmigration.ddlgeneration.platform.PlatformDdl;
import io.ebeaninternal.dbmigration.ddlgeneration.PlatformDdlBuilder;
import org.junit.Test;
import static org.assertj.core.api.Assertions.assertThat;
public class OraclePlatformTest {
OraclePlatform platform = new OraclePlatform();
@Test
public void testTypeConversion() {
PlatformDdl ddl = PlatformDdlBuilder.create(platform);
assertThat(ddl.convert("clob")).isEqualTo("clob");
assertThat(ddl.convert("blob")).isEqualTo("blob");
assertThat(ddl.convert("json")).isEqualTo("clob");
assertThat(ddl.convert("jsonb")).isEqualTo("clob");
assertThat(ddl.convert("double")).isEqualTo("number(19,4)");
assertThat(ddl.convert("varchar(20)")).isEqualTo("varchar2(20)");
assertThat(ddl.convert("decimal(10)")).isEqualTo("number(10)");
assertThat(ddl.convert("decimal(8,4)")).isEqualTo("number(8,4)");
assertThat(ddl.convert("decimal")).isEqualTo("number(16,3)");
assertThat(ddl.convert("boolean")).isEqualTo("number(1)");
assertThat(ddl.convert("bit")).isEqualTo("bit");
assertThat(ddl.convert("tinyint")).isEqualTo("number(3)");
assertThat(ddl.convert("binary(16)")).isEqualTo("raw(16)");
}
@Test
public void uuid_default() {
@@ -2,37 +2,12 @@ package io.ebean.config.dbplatform;
import io.ebean.config.PlatformConfig;
import io.ebean.config.dbplatform.postgres.PostgresPlatform;
import io.ebeaninternal.dbmigration.ddlgeneration.platform.PlatformDdl;
import io.ebeaninternal.dbmigration.ddlgeneration.PlatformDdlBuilder;
import org.junit.Test;
import static org.assertj.core.api.Assertions.assertThat;
public class PostgresPlatformTest {
@Test
public void testTypeConversion() {
PostgresPlatform platform = new PostgresPlatform();
PlatformDdl ddl = PlatformDdlBuilder.create(platform);
assertThat(ddl.convert("clob")).isEqualTo("text");
assertThat(ddl.convert("blob")).isEqualTo("bytea");
assertThat(ddl.convert("json")).isEqualTo("json");
assertThat(ddl.convert("jsonb")).isEqualTo("jsonb");
assertThat(ddl.convert("hstore")).isEqualTo("hstore");
assertThat(ddl.convert("double")).isEqualTo("float");
assertThat(ddl.convert("tinyint")).isEqualTo("smallint");
assertThat(ddl.convert("double")).isEqualTo("float");
assertThat(ddl.convert("varchar(20)")).isEqualTo("varchar(20)");
assertThat(ddl.convert("decimal")).isEqualTo("decimal(16,3)");
assertThat(ddl.convert("decimal(10)")).isEqualTo("decimal(10)");
assertThat(ddl.convert("decimal(8,4)")).isEqualTo("decimal(8,4)");
assertThat(ddl.convert("boolean")).isEqualTo("boolean");
assertThat(ddl.convert("bit")).isEqualTo("bit");
}
@Test
public void testUuidType() {
@@ -2,8 +2,6 @@ package io.ebean.config.dbplatform;
import io.ebean.config.PlatformConfig;
import io.ebean.config.dbplatform.sqlserver.SqlServer17Platform;
import io.ebeaninternal.dbmigration.ddlgeneration.platform.PlatformDdl;
import io.ebeaninternal.dbmigration.ddlgeneration.PlatformDdlBuilder;
import org.junit.Test;
import static org.assertj.core.api.Assertions.assertThat;
@@ -12,27 +10,6 @@ public class SqlserverPlatformTest {
SqlServer17Platform platform = new SqlServer17Platform();
@Test
public void testTypeConversion() {
PlatformDdl ddl = PlatformDdlBuilder.create(platform);
assertThat(ddl.convert("clob")).isEqualTo("nvarchar(max)");
assertThat(ddl.convert("blob")).isEqualTo("image");
assertThat(ddl.convert("json")).isEqualTo("nvarchar(max)");
assertThat(ddl.convert("jsonb")).isEqualTo("nvarchar(max)");
assertThat(ddl.convert("double")).isEqualTo("float(32)");
assertThat(ddl.convert("varchar(20)")).isEqualTo("nvarchar(20)");
assertThat(ddl.convert("decimal(10)")).isEqualTo("numeric(10)");
assertThat(ddl.convert("decimal(8,4)")).isEqualTo("numeric(8,4)");
assertThat(ddl.convert("decimal")).isEqualTo("numeric(16,3)");
assertThat(ddl.convert("boolean")).isEqualTo("bit");
assertThat(ddl.convert("bit")).isEqualTo("bit");
assertThat(ddl.convert("tinyint")).isEqualTo("smallint");
assertThat(ddl.convert("binary(16)")).isEqualTo("binary(16)");
}
@Test
public void uuid_default() {
@@ -45,7 +45,6 @@ import io.ebean.plugin.Property;
import io.ebean.plugin.SpiServer;
import io.ebean.text.csv.CsvReader;
import io.ebean.text.json.JsonContext;
import io.ebeaninternal.dbmigration.ddlgeneration.DdlHandler;
import io.ebeaninternal.server.core.SpiResultSet;
import io.ebeaninternal.server.core.timezone.DataTimeZone;
import io.ebeaninternal.server.deploy.BeanDescriptor;
@@ -1,88 +0,0 @@
package io.ebeaninternal.dbmigration;
import io.ebean.EbeanServer;
import io.ebean.EbeanServerFactory;
import io.ebean.config.ServerConfig;
import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.util.Arrays;
import java.util.List;
import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.assertThatThrownBy;
/**
* This is the Migrationscript generator. It generates 3 migrationscript for the models
* @author Roland Praml, FOCONIS AG
*
*/
public class DbMigrationDropHistoryTest {
private static final Logger logger = LoggerFactory.getLogger(DbMigrationDropHistoryTest.class);
@Test
public void invokeTest() throws IOException {
main(null);
}
public static void main(String[] args) throws IOException {
logger.info("start");
DefaultDbMigration migration = new DefaultDbMigration();
// We use src/test/resources as output directory (so we see in GIT if files will change)
migration.setPathToResources("src/test/resources");
ServerConfig config = new ServerConfig();
config.setName("migrationtest-history");
config.loadFromProperties();
config.setRegister(false);
config.setDefaultServer(false);
config.setPackages(Arrays.asList("misc.migration.history.v1_0"));
EbeanServer server = EbeanServerFactory.create(config);
migration.setServer(server);
// First, we clean up the output-directory
assertThat(migration.getMigrationDirectory().getAbsolutePath()).contains("migrationtest-history");
Files.walk(migration.getMigrationDirectory().toPath())
.filter(Files::isRegularFile).map(Path::toFile).forEach(File::delete);
// then we generate migration scripts for v1_0
assertThat(migration.generateMigration()).isEqualTo("1.0__initial");
// and we check repeatative calls
assertThat(migration.generateMigration()).isNull();
// and now for v1_1
config.setPackages(Arrays.asList("misc.migration.history.v1_1"));
server = EbeanServerFactory.create(config);
migration.setServer(server);
assertThat(migration.generateMigration()).isEqualTo("1.1");
assertThat(migration.generateMigration()).isNull(); // subsequent call
List<String> pendingDrops = migration.getPendingDrops();
assertThat(pendingDrops).contains("1.1");
//System.setProperty("ddl.migration.pendingDropsFor", "1.1");
migration.setGeneratePendingDrop("1.1");
assertThat(migration.generateMigration()).isEqualTo("1.2__dropsFor_1.1");
assertThatThrownBy(()->migration.generateMigration())
.isInstanceOf(IllegalArgumentException.class)
.hasMessageContaining("No 'pendingDrops'"); // subsequent call
System.clearProperty("ddl.migration.pendingDropsFor");
logger.info("end");
}
}
@@ -1,121 +0,0 @@
package io.ebeaninternal.dbmigration;
import io.ebean.EbeanServer;
import io.ebean.EbeanServerFactory;
import io.ebean.annotation.Platform;
import io.ebean.config.ServerConfig;
import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.util.Arrays;
import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.assertThatThrownBy;
/**
* This is the Migrationscript generator. It generates 3 migrationscript for the models
* @author Roland Praml, FOCONIS AG
*
*/
public class DbMigrationGenerateTest {
private static final Logger logger = LoggerFactory.getLogger(DbMigrationGenerateTest.class);
@Test
public void invokeTest() throws IOException {
main(null);
}
public static void main(String[] args) throws IOException {
logger.info("start");
DefaultDbMigration migration = new DefaultDbMigration();
// We use src/test/resources as output directory (so we see in GIT if files will change)
migration.setPathToResources("src/test/resources");
migration.setMigrationPath("db/migration");
migration.setMigrationPath(null); // use the default for this test
// migration.addPlatform(Platform.GENERIC, "generic"); there is no ddl handler for generic
// migration.addPlatform(Platform.SQLANYWHERE, "sqlanywhere"); and sqlanywhere
migration.addPlatform(Platform.DB2, "db2");
migration.addPlatform(Platform.H2, "h2");
migration.addPlatform(Platform.HSQLDB, "hsqldb");
migration.addPlatform(Platform.MYSQL, "mysql");
migration.addPlatform(Platform.MYSQL55, "mysql55");
migration.addPlatform(Platform.POSTGRES, "postgres");
migration.addPlatform(Platform.ORACLE, "oracle");
migration.addPlatform(Platform.SQLITE, "sqlite");
migration.addPlatform(Platform.SQLSERVER17, "sqlserver17");
migration.addPlatform(Platform.HANA, "hana");
ServerConfig config = new ServerConfig();
config.setName("migrationtest");
config.loadFromProperties();
config.setRegister(false);
config.setDefaultServer(false);
config.getProperties().put("ebean.hana.generateUniqueDdl", "true"); // need to generate unique statements to prevent them from being filtered out as duplicates by the DdlRunner
config.setPackages(Arrays.asList("misc.migration.v1_0"));
EbeanServer server = EbeanServerFactory.create(config);
migration.setServer(server);
// First, we clean up the output-directory
assertThat(migration.getMigrationDirectory().getAbsolutePath()).contains("migrationtest");
Files.walk(migration.getMigrationDirectory().toPath())
.filter(Files::isRegularFile).map(Path::toFile).forEach(File::delete);
// then we generate migration scripts for v1_0
assertThat(migration.generateMigration()).isEqualTo("1.0__initial");
// and we check repeatative calls
assertThat(migration.generateMigration()).isNull();
// and now for v1_1
config.setPackages(Arrays.asList("misc.migration.v1_1"));
server = EbeanServerFactory.create(config);
migration.setServer(server);
assertThat(migration.generateMigration()).isEqualTo("1.1");
assertThat(migration.generateMigration()).isNull(); // subsequent call
System.setProperty("ddl.migration.pendingDropsFor", "1.1");
assertThat(migration.generateMigration()).isEqualTo("1.2__dropsFor_1.1");
assertThatThrownBy(()->migration.generateMigration())
.isInstanceOf(IllegalArgumentException.class)
.hasMessageContaining("No 'pendingDrops'"); // subsequent call
System.clearProperty("ddl.migration.pendingDropsFor");
assertThat(migration.generateMigration()).isNull(); // subsequent call
// and now for v1_2 with
config.setPackages(Arrays.asList("misc.migration.v1_2"));
server = EbeanServerFactory.create(config);
migration.setServer(server);
assertThat(migration.generateMigration()).isEqualTo("1.3");
assertThat(migration.generateMigration()).isNull(); // subsequent call
System.setProperty("ddl.migration.pendingDropsFor", "1.3");
assertThat(migration.generateMigration()).isEqualTo("1.4__dropsFor_1.3");
assertThatThrownBy(()->migration.generateMigration())
.isInstanceOf(IllegalArgumentException.class)
.hasMessageContaining("No 'pendingDrops'"); // subsequent call
System.clearProperty("ddl.migration.pendingDropsFor");
assertThat(migration.generateMigration()).isNull(); // subsequent call
logger.info("end");
}
}
@@ -1,191 +0,0 @@
package io.ebeaninternal.dbmigration;
import io.ebean.BaseTestCase;
import io.ebean.SqlRow;
import io.ebean.SqlUpdate;
import io.ebean.annotation.IgnorePlatform;
import io.ebean.annotation.Platform;
import io.ebeaninternal.dbmigration.ddlgeneration.Helper;
import org.junit.Test;
import java.io.IOException;
import java.util.List;
import static org.assertj.core.api.Assertions.assertThat;
public class DbMigrationTest extends BaseTestCase {
private void runScript(boolean expectErrors, String scriptName) throws IOException {
String ddl = Helper.asText(this, "/dbmigration/migrationtest/" + server().getPluginApi().getDatabasePlatform().getName()+"/" + scriptName);
runScript(expectErrors, ddl, scriptName);
}
private void runScript(boolean useAutoCommit, String content, String scriptName) {
server().script().runScript(scriptName, content, useAutoCommit);
}
@IgnorePlatform({Platform.ORACLE, Platform.NUODB, Platform.MARIADB})
@Test
public void testRunMigration() throws IOException {
// first clean up previously created objects
cleanup("migtest_ckey_assoc",
"migtest_ckey_detail",
"migtest_ckey_parent",
"migtest_e_basic",
"migtest_e_enum",
"migtest_e_history",
"migtest_e_history2",
"migtest_e_history3",
"migtest_e_history4",
"migtest_e_history5",
"migtest_e_history6",
"migtest_e_ref",
"migtest_e_softdelete",
"migtest_e_user",
"migtest_fk_cascade",
"migtest_fk_cascade_one",
"migtest_fk_none",
"migtest_fk_none_via_join",
"migtest_fk_one",
"migtest_fk_set_null",
"migtest_mtm_c",
"migtest_mtm_m",
"migtest_mtm_c_migtest_mtm_m",
"migtest_mtm_m_migtest_mtm_c",
"migtest_oto_child",
"migtest_oto_master");
if (isSqlServer()) { // || isMySql()
runScript(false, "I__create_procs.sql");
}
runScript(false, "1.0__initial.sql");
if (isOracle() || isHana()) {
SqlUpdate update = server().sqlUpdate("insert into migtest_e_basic (id, old_boolean, user_id) values (1, :false, 1)");
update.setParameter("false", false);
assertThat(server().execute(update)).isEqualTo(1);
update = server().sqlUpdate("insert into migtest_e_basic (id, old_boolean, user_id) values (2, :true, 1)");
update.setParameter("true", true);
assertThat(server().execute(update)).isEqualTo(1);
} else {
SqlUpdate update = server().sqlUpdate("insert into migtest_e_basic (id, old_boolean, user_id) values (1, :false, 1), (2, :true, 1)");
update.setParameter("false", false);
update.setParameter("true", true);
assertThat(server().execute(update)).isEqualTo(2);
}
createHistoryEntities();
// Run migration
runScript(false, "1.1.sql");
List<SqlRow> result = server().sqlQuery("select * from migtest_e_basic order by id").findList();
assertThat(result).hasSize(2);
SqlRow row = result.get(0);
assertThat(row.keySet()).contains("old_boolean", "old_boolean2");
assertThat(row.getInteger("id")).isEqualTo(1);
assertThat(row.getBoolean("old_boolean")).isFalse();
assertThat(row.getBoolean("new_boolean_field")).isFalse(); // test if update old_boolean -> new_boolean_field works well
assertThat(row.getString("new_string_field")).isEqualTo("foo'bar");
assertThat(row.getBoolean("new_boolean_field2")).isTrue();
//assertThat(row.getTimestamp("some_date")).isCloseTo(new Date(), 86_000); // allow 1 minute delta
row = result.get(1);
assertThat(row.getInteger("id")).isEqualTo(2);
assertThat(row.getBoolean("old_boolean")).isTrue();
assertThat(row.getBoolean("new_boolean_field")).isTrue(); // test if update old_boolean -> new_boolean_field works well
assertThat(row.getString("new_string_field")).isEqualTo("foo'bar");
assertThat(row.getBoolean("new_boolean_field2")).isTrue();
//assertThat(row.getTimestamp("some_date")).isCloseTo(new Date(), 60_000); // allow 1 minute delta
runScript(false, "1.2__dropsFor_1.1.sql");
// Oracle caches the statement and does not detect schema change. It fails with
// an ORA-01007
if (isOracle()) {
result = server().sqlQuery("select * from migtest_e_basic order by id,id").findList();
} else {
result = server().sqlQuery("select * from migtest_e_basic order by id").findList();
}
assertThat(result).hasSize(2);
row = result.get(0);
assertThat(row.keySet()).doesNotContain("old_boolean", "old_boolean2");
runScript(false, "1.3.sql");
runScript(false, "1.4__dropsFor_1.3.sql");
// now DB structure shoud be the same as v1_0
result = server().sqlQuery("select * from migtest_e_basic order by id").findList();
assertThat(result).hasSize(2);
row = result.get(0);
assertThat(row.keySet()).contains("old_boolean", "old_boolean2");
}
/**
*
*/
private void createHistoryEntities() {
SqlUpdate update = server().sqlUpdate("insert into migtest_e_history (id, test_string) values (1, '42')");
assertThat(server().execute(update)).isEqualTo(1);
update = server().sqlUpdate("update migtest_e_history set test_string = '45' where id = 1");
assertThat(server().execute(update)).isEqualTo(1);
update = server().sqlUpdate("insert into migtest_e_history2 (id, test_string, obsolete_string1, obsolete_string2) values (1, 'foo', 'bar', null)");
assertThat(server().execute(update)).isEqualTo(1);
update = server().sqlUpdate("update migtest_e_history2 set test_string = 'baz' where id = 1");
assertThat(server().execute(update)).isEqualTo(1);
update = server().sqlUpdate("insert into migtest_e_history3 (id, test_string) values (1, '42')");
assertThat(server().execute(update)).isEqualTo(1);
update = server().sqlUpdate("update migtest_e_history3 set test_string = '45' where id = 1");
assertThat(server().execute(update)).isEqualTo(1);
update = server().sqlUpdate("insert into migtest_e_history4 (id, test_number) values (1, 42)");
assertThat(server().execute(update)).isEqualTo(1);
update = server().sqlUpdate("update migtest_e_history4 set test_number = 45 where id = 1");
assertThat(server().execute(update)).isEqualTo(1);
update = server().sqlUpdate("insert into migtest_e_history5 (id, test_number) values (1, 42)");
assertThat(server().execute(update)).isEqualTo(1);
update = server().sqlUpdate("update migtest_e_history5 set test_number = 45 where id = 1");
assertThat(server().execute(update)).isEqualTo(1);
update = server().sqlUpdate("insert into migtest_e_history6 (id, test_number1, test_number2) values (1, 2, 7)");
assertThat(server().execute(update)).isEqualTo(1);
update = server().sqlUpdate("update migtest_e_history6 set test_number2 = 45 where id = 1");
assertThat(server().execute(update)).isEqualTo(1);
}
private void cleanup(String ... tables) {
final boolean sqlServer = isSqlServer();
final boolean postgres = isPostgres();
StringBuilder sb = new StringBuilder();
for (String table : tables) {
// simple and stupid try to execute all commands on all dialects.
if (sqlServer) {
sb.append("alter table ").append(table).append(" set ( system_versioning = OFF );\n");
sb.append("alter table ").append(table).append(" drop system versioning;\n");
}
if (postgres) {
sb.append("drop table ").append(table).append(" cascade;\n");
sb.append("drop table ").append(table).append("_history cascade;\n");
} else {
sb.append("drop table ").append(table).append(";\n");
sb.append("drop table ").append(table).append("_history;\n");
}
sb.append("drop view ").append(table).append("_with_history;\n");
sb.append("drop sequence ").append(table).append("_seq;\n");
}
runScript(true, sb.toString(), "cleanup");
runScript(true, sb.toString(), "cleanup");
}
}
@@ -1,66 +0,0 @@
package io.ebeaninternal.dbmigration;
import org.junit.Test;
import java.io.File;
import static org.assertj.core.api.Assertions.assertThat;
public class LastMigrationTest {
@Test
public void lastVersion() {
File d = new File("src/test/resources/dbmigration/migrationtest/h2");
assertThat(LastMigration.lastVersion(d, null)).isEqualTo("1.4");
assertThat(LastMigration.nextVersion(d, null, false)).isEqualTo("1.5");
assertThat(LastMigration.nextVersion(d, null, true)).isEqualTo("1.4");
}
@Test
public void lastVersion_no_v_Prefix() {
File d = new File("src/test/resources/dbmigration/migrationtest-history");
assertThat(LastMigration.lastVersion(d, null)).isEqualTo("1.2");
}
@Test
public void lastVersion_test() {
File d = new File("src/test/resources/test-dbmigration");
assertThat(LastMigration.lastVersion(d, null)).isEqualTo("2.1");
assertThat(LastMigration.nextVersion(d, null, false)).isEqualTo("2.2");
}
@Test
public void lastVersion_app2() {
File d = new File("src/test/resources/dbmigration/app2");
assertThat(LastMigration.lastVersion(d, null)).isEqualTo("3.1");
assertThat(LastMigration.nextVersion(d, null, false)).isEqualTo("3.2");
}
@Test
public void lastVersion_app3() {
File d = new File("src/test/resources/dbmigration/app3");
assertThat(LastMigration.lastVersion(d, null)).isEqualTo("3.1.2");
assertThat(LastMigration.nextVersion(d, null, false)).isEqualTo("3.1.3");
assertThat(LastMigration.nextVersion(d, null, true)).isEqualTo("3.1.2");
}
@Test
public void lastVersion_app3_with_model_larger() {
File d = new File("src/test/resources/dbmigration/app3");
File m = new File("src/test/resources/dbmigration/app3/model_larger");
assertThat(LastMigration.lastVersion(d, m)).isEqualTo("4.1");
assertThat(LastMigration.nextVersion(d, m, false)).isEqualTo("4.2");
assertThat(LastMigration.nextVersion(d, m, true)).isEqualTo("4.1");
}
@Test
public void lastVersion_app3_with_model_smaller() {
File d = new File("src/test/resources/dbmigration/app3");
File m = new File("src/test/resources/dbmigration/app3/model_smaller");
assertThat(LastMigration.lastVersion(d, m)).isEqualTo("3.1.2");
assertThat(LastMigration.nextVersion(d, m, false)).isEqualTo("3.1.3");
assertThat(LastMigration.nextVersion(d, m, true)).isEqualTo("3.1.2");
}
}
@@ -1,270 +0,0 @@
package io.ebeaninternal.dbmigration.ddlgeneration;
import io.ebean.BaseTestCase;
import io.ebean.Ebean;
import io.ebean.config.ServerConfig;
import io.ebean.config.dbplatform.DatabasePlatform;
import io.ebean.config.dbplatform.h2.H2Platform;
import io.ebean.config.dbplatform.hana.HanaPlatform;
import io.ebean.config.dbplatform.postgres.PostgresPlatform;
import io.ebean.config.dbplatform.sqlserver.SqlServer17Platform;
import io.ebeaninternal.api.SpiEbeanServer;
import io.ebeaninternal.dbmigration.migration.ChangeSet;
import io.ebeaninternal.dbmigration.model.CurrentModel;
import org.junit.Ignore;
import org.junit.Test;
import static org.assertj.core.api.Assertions.assertThat;
public class BaseDdlHandlerTest extends BaseTestCase {
private ServerConfig serverConfig = new ServerConfig();
private DdlHandler handler(DatabasePlatform platform) {
return PlatformDdlBuilder.create(platform).createDdlHandler(serverConfig);
}
private DdlHandler h2Handler() {
return handler(new H2Platform());
}
private DdlHandler postgresHandler() {
return handler(new PostgresPlatform());
}
private DdlHandler sqlserverHandler() {
return handler(new SqlServer17Platform());
}
private DdlHandler hanaHandler() {
return handler(new HanaPlatform());
}
@Test
public void addColumn_nullable_noConstraint() throws Exception {
DdlWrite write = new DdlWrite();
h2Handler().generate(write, Helper.getAddColumn());
assertThat(write.apply().getBuffer()).isEqualTo("alter table foo add column added_to_foo varchar(20);\n\n");
write = new DdlWrite();
sqlserverHandler().generate(write, Helper.getAddColumn());
assertThat(write.apply().getBuffer()).isEqualTo("alter table foo add added_to_foo nvarchar(20);\n\n");
write = new DdlWrite();
hanaHandler().generate(write, Helper.getAddColumn());
assertThat(write.apply().getBuffer()).isEqualTo("alter table foo add ( added_to_foo nvarchar(20));\n\n");
}
@Test
public void addColumn_withCheckConstraint() throws Exception {
DdlWrite write = new DdlWrite();
h2Handler().generate(write, Helper.getAlterTableAddColumnWithCheckConstraint());
assertThat(write.apply().getBuffer()).isEqualTo("alter table foo add column status integer;\n"
+ "alter table foo add constraint ck_ordering_status check ( status in (0,1));\n\n");
write = new DdlWrite();
hanaHandler().generate(write, Helper.getAlterTableAddColumnWithCheckConstraint());
assertThat(write.apply().getBuffer()).isEqualTo("alter table foo add ( status integer);\n"
+ "alter table foo add constraint ck_ordering_status check ( status in (0,1));\n\n");
}
/**
* Test the functionality of the Ebean {@literal @}DbArray extension during DDL
* generation.
*/
@Test
public void addColumn_dbarray() throws Exception {
DdlWrite write = new DdlWrite();
DdlHandler postgresHandler = postgresHandler();
postgresHandler.generate(write, Helper.getAlterTableAddDbArrayColumn());
assertThat(write.apply().getBuffer()).isEqualTo("alter table foo add column dbarray_added_to_foo varchar[];\n\n");
write = new DdlWrite();
DdlHandler sqlserverHandler = sqlserverHandler();
sqlserverHandler.generate(write, Helper.getAlterTableAddDbArrayColumn());
assertThat(write.apply().getBuffer()).isEqualTo("alter table foo add dbarray_added_to_foo varchar(1000);\n\n");
write = new DdlWrite();
DdlHandler hanaHandler = hanaHandler();
hanaHandler.generate(write, Helper.getAlterTableAddDbArrayColumn());
assertThat(write.apply().getBuffer()).isEqualTo("alter table foo add ( dbarray_added_to_foo nvarchar(255) array);\n\n");
}
@Test
public void addColumn_dbarray_withLength() throws Exception {
DdlWrite write = new DdlWrite();
postgresHandler().generate(write, Helper.getAlterTableAddDbArrayColumnWithLength());
assertThat(write.apply().getBuffer()).isEqualTo("alter table foo add column dbarray_ninety varchar[];\n\n");
write = new DdlWrite();
h2Handler().generate(write, Helper.getAlterTableAddDbArrayColumnWithLength());
assertThat(write.apply().getBuffer()).isEqualTo("alter table foo add column dbarray_ninety array;\n\n");
write = new DdlWrite();
sqlserverHandler().generate(write, Helper.getAlterTableAddDbArrayColumnWithLength());
assertThat(write.apply().getBuffer()).isEqualTo("alter table foo add dbarray_ninety varchar(90);\n\n");
write = new DdlWrite();
hanaHandler().generate(write, Helper.getAlterTableAddDbArrayColumnWithLength());
assertThat(write.apply().getBuffer()).isEqualTo("alter table foo add ( dbarray_ninety nvarchar(255) array(90));\n\n");
}
@Test
public void addColumn_dbarray_integer_withLength() throws Exception {
DdlWrite write = new DdlWrite();
postgresHandler().generate(write, Helper.getAlterTableAddDbArrayColumnIntegerWithLength());
assertThat(write.apply().getBuffer()).isEqualTo("alter table foo add column dbarray_integer integer[];\n\n");
write = new DdlWrite();
h2Handler().generate(write, Helper.getAlterTableAddDbArrayColumnIntegerWithLength());
assertThat(write.apply().getBuffer()).isEqualTo("alter table foo add column dbarray_integer array;\n\n");
write = new DdlWrite();
sqlserverHandler().generate(write, Helper.getAlterTableAddDbArrayColumnIntegerWithLength());
assertThat(write.apply().getBuffer()).isEqualTo("alter table foo add dbarray_integer varchar(90);\n\n");
write = new DdlWrite();
sqlserverHandler().generate(write, Helper.getAlterTableAddDbArrayColumnInteger());
assertThat(write.apply().getBuffer()).isEqualTo("alter table foo add dbarray_integer varchar(1000);\n\n");
write = new DdlWrite();
hanaHandler().generate(write, Helper.getAlterTableAddDbArrayColumnIntegerWithLength());
assertThat(write.apply().getBuffer()).isEqualTo("alter table foo add ( dbarray_integer integer array(90));\n\n");
write = new DdlWrite();
hanaHandler().generate(write, Helper.getAlterTableAddDbArrayColumnInteger());
assertThat(write.apply().getBuffer()).isEqualTo("alter table foo add ( dbarray_integer integer array);\n\n");
}
@Test
public void addColumn_withForeignKey() throws Exception {
DdlWrite write = new DdlWrite();
DdlHandler handler = h2Handler();
handler.generate(write, Helper.getAlterTableAddColumn());
String buffer = write.apply().getBuffer();
assertThat(buffer).contains("alter table foo add column some_id integer;");
String fkBuffer = write.applyForeignKeys().getBuffer();
assertThat(fkBuffer).contains(
"alter table foo add constraint fk_foo_some_id foreign key (some_id) references bar (id) on delete restrict on update restrict;");
assertThat(fkBuffer).contains("create index idx_foo_some_id on foo (some_id);");
assertThat(write.dropAll().getBuffer()).isEqualTo("");
}
@Test
public void dropColumn() throws Exception {
DdlWrite write = new DdlWrite();
DdlHandler handler = h2Handler();
handler.generate(write, Helper.getDropColumn());
assertThat(write.apply().getBuffer()).isEqualTo("alter table foo drop column col2;\n\n");
assertThat(write.dropAll().getBuffer()).isEqualTo("");
write = new DdlWrite();
DdlHandler hanaHandler = hanaHandler();
hanaHandler.generate(write, Helper.getDropColumn());
assertThat(write.apply().getBuffer()).isEqualTo("CALL usp_ebean_drop_column('foo', 'col2');\n\n");
assertThat(write.dropAll().getBuffer()).isEqualTo("");
}
@Test
public void createTable() throws Exception {
DdlWrite write = new DdlWrite();
DdlHandler handler = h2Handler();
handler.generate(write, Helper.getCreateTable());
String createTableDDL = Helper.asText(this, "/assert/create-table.txt");
assertThat(write.apply().getBuffer()).isEqualTo(createTableDDL);
assertThat(write.dropAll().getBuffer().trim()).isEqualTo("drop table if exists foo;");
write = new DdlWrite();
DdlHandler hanaHandler = hanaHandler();
hanaHandler.generate(write, Helper.getCreateTable());
String createColumnTableDDL = Helper.asText(this, "/assert/create-column-table.txt");
assertThat(write.apply().getBuffer()).isEqualTo(createColumnTableDDL);
assertThat(write.dropAll().getBuffer().trim()).isEqualTo("drop table foo cascade;");
}
@Test
public void generateChangeSet() throws Exception {
DdlWrite write = new DdlWrite();
DdlHandler handler = h2Handler();
handler.generate(write, Helper.getChangeSet());
String apply = Helper.asText(this, "/assert/BaseDdlHandlerTest/baseApply.sql");
String rollbackLast = Helper.asText(this, "/assert/BaseDdlHandlerTest/baseDropAll.sql");
assertThat(write.apply().getBuffer()).isEqualTo(apply);
assertThat(write.dropAll().getBuffer()).isEqualTo(rollbackLast);
}
@Ignore
@Test
public void generateChangeSetFromModel() throws Exception {
SpiEbeanServer defaultServer = (SpiEbeanServer) Ebean.getDefaultServer();
ChangeSet createChangeSet = new CurrentModel(defaultServer).getChangeSet();
DdlWrite write = new DdlWrite();
DdlHandler handler = h2Handler();
handler.generate(write, createChangeSet);
String apply = Helper.asText(this, "/assert/changeset-apply.txt");
String rollbackLast = Helper.asText(this, "/assert/changeset-dropAll.txt");
assertThat(write.apply().getBuffer()).isEqualTo(apply);
assertThat(write.dropAll().getBuffer()).isEqualTo(rollbackLast);
}
@Ignore
@Test
public void generateChangeSetFromModel_given_postgresTypes() throws Exception {
SpiEbeanServer defaultServer = (SpiEbeanServer) Ebean.getDefaultServer();
ChangeSet createChangeSet = new CurrentModel(defaultServer).getChangeSet();
DdlWrite write = new DdlWrite();
DdlHandler handler = postgresHandler();
handler.generate(write, createChangeSet);
String apply = Helper.asText(this, "/assert/changeset-pg-apply.sql");
String applyLast = Helper.asText(this, "/assert/changeset-pg-applyLast.sql");
String rollbackFirst = Helper.asText(this, "/assert/changeset-pg-rollbackFirst.sql");
String rollbackLast = Helper.asText(this, "/assert/changeset-pg-rollbackLast.sql");
assertThat(write.apply().getBuffer()).isEqualTo(apply);
assertThat(write.applyForeignKeys().getBuffer()).isEqualTo(applyLast);
assertThat(write.dropAllForeignKeys().getBuffer()).isEqualTo(rollbackFirst);
assertThat(write.dropAll().getBuffer()).isEqualTo(rollbackLast);
}
}
@@ -1,109 +0,0 @@
package io.ebeaninternal.dbmigration.ddlgeneration;
import io.ebeaninternal.dbmigration.migration.AddColumn;
import io.ebeaninternal.dbmigration.migration.ChangeSet;
import io.ebeaninternal.dbmigration.migration.CreateTable;
import io.ebeaninternal.dbmigration.migration.DropColumn;
import io.ebeaninternal.dbmigration.migration.Migration;
import io.ebeaninternal.dbmigration.migrationreader.MigrationXmlReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.LineNumberReader;
import java.util.List;
/**
* Helper for testing to return some basic migration objects.
*/
public class Helper {
static Migration migration = MigrationXmlReader.read("/container/test-create-table.xml");
static Migration alterTableMigration = MigrationXmlReader.read("/container/test-alter-table.xml");
static ChangeSet changeSet;
static List<Object> changeSetChildren;
static ChangeSet alterTableChangeSet;
static List<Object> alterTableChangeSetChildren;
static {
List<ChangeSet> changeSets = migration.getChangeSet();
changeSet = changeSets.get(0);
changeSetChildren = changeSet.getChangeSetChildren();
alterTableChangeSet = alterTableMigration.getChangeSet().get(0);
alterTableChangeSetChildren = alterTableChangeSet.getChangeSetChildren();
}
public static ChangeSet getChangeSet() {
return changeSet;
}
public static CreateTable getCreateTable() {
return (CreateTable) changeSetChildren.get(0);
}
public static AddColumn getAddColumn() {
return (AddColumn) changeSetChildren.get(1);
}
public static AddColumn getAlterTableAddColumn() {
return (AddColumn) alterTableChangeSetChildren.get(0);
}
public static AddColumn getAlterTableAddDbArrayColumn() {
return (AddColumn) alterTableChangeSetChildren.get(1);
}
public static AddColumn getAlterTableAddDbArrayColumnWithLength() {
return (AddColumn) alterTableChangeSetChildren.get(2);
}
public static AddColumn getAlterTableAddDbArrayColumnIntegerWithLength() {
return (AddColumn) alterTableChangeSetChildren.get(3);
}
public static AddColumn getAlterTableAddDbArrayColumnInteger() {
return (AddColumn) alterTableChangeSetChildren.get(4);
}
public static AddColumn getAlterTableAddColumnWithCheckConstraint() {
return (AddColumn) alterTableChangeSetChildren.get(5);
}
public static DropColumn getDropColumn() {
return (DropColumn) changeSetChildren.get(2);
}
public static String asText(Object instance, String relativePath) throws IOException {
InputStream is = instance.getClass().getResourceAsStream(relativePath);
if (is == null) {
throw new IllegalArgumentException("resource " + relativePath + " not found");
}
return asText(is);
}
public static String asText(InputStream in) throws IOException {
try {
InputStreamReader reader = new InputStreamReader(in);
LineNumberReader lineNumberReader = new LineNumberReader(reader);
StringBuilder builder = new StringBuilder(400);
String line;
while ((line = lineNumberReader.readLine()) != null) {
builder.append(line).append("\n");
}
return builder.toString();
} finally {
in.close();
}
}
}
@@ -1,204 +0,0 @@
package io.ebeaninternal.dbmigration.ddlgeneration.platform;
import io.ebean.config.ServerConfig;
import io.ebean.config.dbplatform.clickhouse.ClickHousePlatform;
import io.ebean.config.dbplatform.h2.H2Platform;
import io.ebean.config.dbplatform.mysql.MySqlPlatform;
import io.ebean.config.dbplatform.oracle.OraclePlatform;
import io.ebeaninternal.dbmigration.ddlgeneration.DdlWrite;
import io.ebeaninternal.dbmigration.ddlgeneration.Helper;
import io.ebeaninternal.dbmigration.migration.AddTableComment;
import io.ebeaninternal.dbmigration.migration.AlterColumn;
import io.ebeaninternal.dbmigration.migration.Column;
import io.ebeaninternal.dbmigration.migration.CreateTable;
import io.ebeaninternal.dbmigration.ddlgeneration.PlatformDdlBuilder;
import org.junit.Test;
import java.io.IOException;
import java.util.List;
import static org.assertj.core.api.Assertions.assertThat;
import static org.junit.Assert.assertEquals;
public class BaseTableDdlTest {
private ServerConfig serverConfig = new ServerConfig();
private PlatformDdl h2ddl = PlatformDdlBuilder.create(new H2Platform());
@Test
public void testAlterColumn() throws IOException {
BaseTableDdl ddlGen = new BaseTableDdl(serverConfig, h2ddl);
DdlWrite write = new DdlWrite();
AlterColumn alterColumn = new AlterColumn();
alterColumn.setTableName("mytab");
alterColumn.setCheckConstraint("check (acol in ('A','B'))");
alterColumn.setCheckConstraintName("ck_mytab_acol");
ddlGen.generate(write, alterColumn);
String ddl = write.apply().getBuffer();
assertThat(ddl).contains("alter table mytab drop constraint if exists ck_mytab_acol");
assertThat(ddl).contains("alter table mytab add constraint ck_mytab_acol check (acol in ('A','B'))");
}
@Test
public void testAddColumn_withTypeConversion() throws IOException {
BaseTableDdl ddlGen = new BaseTableDdl(serverConfig, PlatformDdlBuilder.create(new OraclePlatform()));
DdlWrite write = new DdlWrite();
Column column = new Column();
column.setName("col_name");
column.setType("varchar(20)");
ddlGen.alterTableAddColumn(write.apply(), "mytable", column, false, false);
String ddl = write.apply().getBuffer();
assertThat(ddl).contains("alter table mytable add column col_name varchar2(20)");
}
@Test
public void testAddColumn_withTypeConversion_clickHouseVarchar() throws IOException {
ClickHouseTableDdl ddlGen = new ClickHouseTableDdl(serverConfig, PlatformDdlBuilder.create(new ClickHousePlatform()));
DdlWrite write = new DdlWrite();
Column column = new Column();
column.setName("col_name");
column.setType("varchar(20)");
ddlGen.alterTableAddColumn(write.apply(), "mytable", column, false, false);
String ddl = write.apply().getBuffer();
assertThat(ddl).contains("alter table mytable add column col_name String");
}
@Test
public void testAlterColumnComment() throws IOException {
BaseTableDdl ddlGen = new BaseTableDdl(serverConfig, h2ddl);
DdlWrite write = new DdlWrite();
AlterColumn alterColumn = new AlterColumn();
alterColumn.setTableName("mytab");
alterColumn.setColumnName("acol");
alterColumn.setComment("my comment");
ddlGen.generate(write, alterColumn);
String ddl = write.apply().getBuffer();
assertThat(ddl).contains("comment on column mytab.acol is 'my comment'");
}
@Test
public void alterTableAddColumnWithComment() throws IOException {
BaseTableDdl ddl = new BaseTableDdl(serverConfig, h2ddl);
DdlWrite write = new DdlWrite();
Column column = new Column();
column.setName("my_column");
column.setComment("some comment");
column.setType("int");
ddl.alterTableAddColumn(write.apply(), "my_table", column, false, false);
assertEquals(
"alter table my_table add column my_column int;\n" +
"comment on column my_table.my_column is 'some comment';\n", write.apply().getBuffer());
}
@Test
public void testAddTableComment() throws IOException {
BaseTableDdl ddlGen = new BaseTableDdl(serverConfig, h2ddl);
DdlWrite write = new DdlWrite();
AddTableComment addTableComment = new AddTableComment();
addTableComment.setName("mytab");
addTableComment.setComment("my comment");
ddlGen.generate(write, addTableComment);
String ddl = write.apply().getBuffer();
assertThat(ddl).contains("comment on table mytab is 'my comment'");
}
@Test
public void testAddTableComment_mysql() throws IOException {
BaseTableDdl ddlGen = new BaseTableDdl(serverConfig, PlatformDdlBuilder.create(new MySqlPlatform()));
DdlWrite write = new DdlWrite();
AddTableComment addTableComment = new AddTableComment();
addTableComment.setName("mytab");
addTableComment.setComment("my comment");
ddlGen.generate(write, addTableComment);
String ddl = write.apply().getBuffer();
assertThat(ddl).contains("alter table mytab comment = 'my comment'");
}
@Test
public void testGenerate() throws Exception {
BaseTableDdl ddlGen = new BaseTableDdl(serverConfig, h2ddl);
DdlWrite write = new DdlWrite();
ddlGen.generate(write, createTable());
String apply = write.apply().getBuffer();
String applyLast = write.applyForeignKeys().getBuffer();
String rollbackFirst = write.dropAllForeignKeys().getBuffer();
String rollbackLast = write.dropAll().getBuffer();
assertThat(apply).isEqualTo(Helper.asText(this, "/assert/BaseTableDdlTest/createTable-apply.txt"));
assertThat(applyLast).isEqualTo(Helper.asText(this, "/assert/BaseTableDdlTest/createTable-applyLast.txt"));
assertThat(rollbackFirst).isEqualTo(Helper.asText(this, "/assert/BaseTableDdlTest/createTable-rollbackFirst.txt"));
assertThat(rollbackLast).isEqualTo(Helper.asText(this, "/assert/BaseTableDdlTest/createTable-rollback.txt"));
}
private CreateTable createTable() {
CreateTable createTable = new CreateTable();
createTable.setName("mytable");
createTable.setPkName("pk_mytable");
List<Column> columns = createTable.getColumn();
Column col = new Column();
col.setName("id");
col.setType("integer");
col.setPrimaryKey(true);
columns.add(col);
Column col2 = new Column();
col2.setName("status");
col2.setType("varchar(1)");
col2.setNotnull(true);
col2.setCheckConstraint("check (status in ('A','B'))");
col2.setCheckConstraintName("ck_mytable_status");
columns.add(col2);
Column col3 = new Column();
col3.setName("order_id");
col3.setType("integer");
col3.setNotnull(true);
col3.setReferences("orders.id");
col3.setForeignKeyName("fk_mytable_order_id");
col3.setForeignKeyIndex("ix_mytable_order_id");
columns.add(col3);
return createTable;
}
}
@@ -1,24 +0,0 @@
package io.ebeaninternal.dbmigration.ddlgeneration.platform;
import org.junit.Test;
import static org.assertj.core.api.Assertions.assertThat;
public class ClickHouseDbArrayTest {
@Test
public void logicalToNative() {
assertThat(ClickHouseDbArray.logicalToNative("uuid[]")).isEqualTo("Array(UUID)");
assertThat(ClickHouseDbArray.logicalToNative("varchar[]")).isEqualTo("Array(String)");
assertThat(ClickHouseDbArray.logicalToNative("integer[]")).isEqualTo("Array(UInt32)");
assertThat(ClickHouseDbArray.logicalToNative("bigint[]")).isEqualTo("Array(UInt64)");
}
@Test
public void logicalToNative_withFallbackDefined() {
assertThat(ClickHouseDbArray.logicalToNative("uuid[]:(1000)")).isEqualTo("Array(UUID)");
}
}
@@ -1,30 +0,0 @@
package io.ebeaninternal.dbmigration.ddlgeneration.platform;
import io.ebean.config.DbConstraintNormalise;
import org.junit.Test;
import static org.assertj.core.api.Assertions.assertThat;
public class DbNameNormaliseTest {
DbConstraintNormalise normalise = new DbConstraintNormalise();
@Test
public void testNormalise() throws Exception {
assertThat(normalise.normaliseTable("cat.sch.foo_bar]")).isEqualTo("foo_bar");
assertThat(normalise.normaliseTable("sch.foo_bar]")).isEqualTo("foo_bar");
assertThat(normalise.normaliseTable("foo_bar]")).isEqualTo("foo_bar");
}
@Test
public void testTrimQuotes() throws Exception {
assertThat(normalise.trimQuotes("[foo]")).isEqualTo("foo");
assertThat(normalise.trimQuotes("'foo'")).isEqualTo("foo");
assertThat(normalise.trimQuotes("\"foo\"")).isEqualTo("foo");
assertThat(normalise.trimQuotes("`foo`")).isEqualTo("foo");
assertThat(normalise.trimQuotes("`fo_o`")).isEqualTo("fo_o");
}
}
@@ -1,50 +0,0 @@
package io.ebeaninternal.dbmigration.ddlgeneration.platform;
import io.ebean.Ebean;
import io.ebean.config.dbplatform.h2.H2Platform;
import io.ebeaninternal.dbmigration.ddlgeneration.DdlOptions;
import io.ebeaninternal.dbmigration.ddlgeneration.DdlWrite;
import io.ebeaninternal.dbmigration.model.CurrentModel;
import io.ebeaninternal.dbmigration.model.MConfiguration;
import io.ebeaninternal.dbmigration.model.ModelContainer;
import io.ebeaninternal.api.SpiEbeanServer;
import io.ebeaninternal.dbmigration.ddlgeneration.PlatformDdlBuilder;
import org.junit.Test;
import static org.assertj.core.api.Assertions.assertThat;
public class H2HistoryDdlTest {
@Test
public void testRegenerateHistoryTriggers() throws Exception {
SpiEbeanServer ebeanServer = (SpiEbeanServer) Ebean.getDefaultServer();
HistoryTableUpdate update = new HistoryTableUpdate("c_user");
update.add(HistoryTableUpdate.Change.ADD, "one");
update.add(HistoryTableUpdate.Change.DROP, "two");
CurrentModel currentModel = new CurrentModel(ebeanServer);
ModelContainer modelContainer = currentModel.read();
DdlWrite write = new DdlWrite(new MConfiguration(), modelContainer, new DdlOptions());
H2Platform h2Platform = new H2Platform();
PlatformDdl h2Ddl = PlatformDdlBuilder.create(h2Platform);
h2Ddl.configure(ebeanServer.getServerConfig());
h2Ddl.regenerateHistoryTriggers(write, update);
assertThat(write.applyHistoryView().isEmpty()).isFalse();
assertThat(write.applyHistoryTrigger().isEmpty()).isFalse();
assertThat(write.applyHistoryView().getBuffer())
.contains("create view")
.doesNotContain("create trigger");
assertThat(write.applyHistoryTrigger().getBuffer())
.contains("add one")
.contains("create trigger")
.doesNotContain("create view");
assertThat(write.dropAll().isEmpty()).isTrue();
}
}
@@ -1,41 +0,0 @@
package io.ebeaninternal.dbmigration.ddlgeneration.platform;
import io.ebean.config.dbplatform.hana.HanaPlatform;
import io.ebeaninternal.dbmigration.ddlgeneration.DdlWrite;
import io.ebeaninternal.dbmigration.migration.Column;
import org.junit.Test;
import java.io.IOException;
import static org.junit.Assert.assertEquals;
public class HanaDdlTest {
@Test
public void alterTableDropColumn() throws IOException {
HanaColumnStoreDdl ddl = new HanaColumnStoreDdl(new HanaPlatform());
DdlWrite write = new DdlWrite();
ddl.alterTableDropColumn(write.apply(), "my_table", "my_column");
assertEquals("CALL usp_ebean_drop_column('my_table', 'my_column');\n", write.apply().getBuffer());
}
@Test
public void alterTableAddColumn() throws IOException {
HanaColumnStoreDdl ddl = new HanaColumnStoreDdl(new HanaPlatform());
DdlWrite write = new DdlWrite();
Column column = new Column();
column.setName("my_column");
column.setComment("comment");
column.setDefaultValue("1");
column.setNotnull(Boolean.TRUE);
column.setType("int");
column.setUnique("unique");
column.setPrimaryKey(Boolean.TRUE);
column.setCheckConstraint("CHECK(my_column > 0)");
column.setCheckConstraintName("check_constraint");
column.setHistoryExclude(Boolean.TRUE);
column.setIdentity(Boolean.TRUE);
ddl.alterTableAddColumn(write.apply(), "my_table", column, false, "1");
assertEquals("alter table my_table add ( my_column int default 1 not null);\nalter table my_table add constraint check_constraint CHECK(my_column > 0);\n", write.apply().getBuffer());
}
}
@@ -1,32 +0,0 @@
package io.ebeaninternal.dbmigration.ddlgeneration.platform;
import org.junit.Test;
import static org.assertj.core.api.Assertions.assertThat;
public class HistoryTableUpdateTest {
@Test
public void testDescription() throws Exception {
HistoryTableUpdate upd = new HistoryTableUpdate("mytab");
upd.add(HistoryTableUpdate.Change.ADD, "two");
upd.add(HistoryTableUpdate.Change.DROP, "four");
assertThat(upd.description()).isEqualTo("[add two, drop four]");
}
@Test
public void testDescription_withIncludeExclude() throws Exception {
HistoryTableUpdate upd = new HistoryTableUpdate("mytab");
upd.add(HistoryTableUpdate.Change.ADD, "two");
upd.add(HistoryTableUpdate.Change.INCLUDE, "five");
upd.add(HistoryTableUpdate.Change.EXCLUDE, "six");
upd.add(HistoryTableUpdate.Change.DROP, "four");
assertThat(upd.description()).isEqualTo("[add two, include five, exclude six, drop four]");
}
}
@@ -1,27 +0,0 @@
package io.ebeaninternal.dbmigration.ddlgeneration.platform;
import io.ebeaninternal.dbmigration.ddlgeneration.platform.util.IndexSet;
import org.junit.Test;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
public class IndexSetTest {
@Test
public void test() {
IndexSet set = new IndexSet();
assertTrue(set.add(new String[]{"one_column"}));
assertTrue(set.add(new String[]{"two_column"}));
assertFalse(set.add(new String[]{"one_column"}));
assertTrue(set.add(new String[]{"a", "b"}));
assertTrue(set.add(new String[]{"b", "c"}));
assertTrue(set.add(new String[]{"a"}));
assertFalse(set.add(new String[]{"a", "b"}));
}
}
@@ -1,21 +0,0 @@
package io.ebeaninternal.dbmigration.ddlgeneration.platform;
import org.junit.Test;
import static org.assertj.core.api.Assertions.assertThat;
public class NativeDbArrayTest {
@Test
public void logicalToNative() {
assertThat(NativeDbArray.logicalToNative("uuid[]")).isEqualTo("uuid[]");
assertThat(NativeDbArray.logicalToNative("varchar[]")).isEqualTo("varchar[]");
}
@Test
public void logicalToNative_withFallbackDefined() {
assertThat(NativeDbArray.logicalToNative("uuid[]:(1000)")).isEqualTo("uuid[]");
}
}
@@ -1,54 +0,0 @@
package io.ebeaninternal.dbmigration.ddlgeneration.platform;
import io.ebean.annotation.ConstraintMode;
import io.ebean.config.dbplatform.oracle.OraclePlatform;
import org.junit.Test;
import static org.assertj.core.api.Assertions.assertThat;
public class OracleDdlTest {
OracleDdl create() {
return new OracleDdl(new OraclePlatform());
}
@Test
public void appendForeignKeyOnDelete_expectEmtpy_when_nullRestrictSetDefault() {
OracleDdl oracle = create();
StringBuilder sb = new StringBuilder();
oracle.appendForeignKeyOnDelete(sb, oracle.withDefault(null));
assertThat(sb.toString()).isEqualTo("");
sb = new StringBuilder();
oracle.appendForeignKeyOnDelete(sb, ConstraintMode.RESTRICT);
assertThat(sb.toString()).isEqualTo("");
sb = new StringBuilder();
oracle.appendForeignKeyOnDelete(sb, ConstraintMode.SET_DEFAULT);
assertThat(sb.toString()).isEqualTo("");
}
@Test
public void appendForeignKeyOnDelete_setNull() {
OracleDdl oracle = create();
StringBuilder sb = new StringBuilder();
oracle.appendForeignKeyOnDelete(sb, ConstraintMode.SET_NULL);
assertThat(sb.toString()).isEqualTo(" on delete set null");
}
@Test
public void appendForeignKeyOnDelete_cascade() {
OracleDdl oracle = create();
StringBuilder sb = new StringBuilder();
oracle.appendForeignKeyOnDelete(sb, ConstraintMode.CASCADE);
assertThat(sb.toString()).isEqualTo(" on delete cascade");
}
}
@@ -1,288 +0,0 @@
package io.ebeaninternal.dbmigration.ddlgeneration.platform;
import io.ebean.Ebean;
import io.ebean.config.DatabaseConfig;
import io.ebean.config.dbplatform.IdType;
import io.ebean.config.dbplatform.h2.H2Platform;
import io.ebean.config.dbplatform.hana.HanaPlatform;
import io.ebean.config.dbplatform.mysql.MySqlPlatform;
import io.ebean.config.dbplatform.oracle.OraclePlatform;
import io.ebean.config.dbplatform.postgres.PostgresPlatform;
import io.ebean.config.dbplatform.sqlserver.SqlServer17Platform;
import io.ebeaninternal.dbmigration.migration.AlterColumn;
import io.ebeaninternal.dbmigration.ddlgeneration.PlatformDdlBuilder;
import org.junit.Test;
import static org.assertj.core.api.Assertions.assertThat;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
public class PlatformDdl_AlterColumnTest {
private final PlatformDdl h2Ddl = PlatformDdlBuilder.create(new H2Platform());
private final PlatformDdl pgDdl = PlatformDdlBuilder.create(new PostgresPlatform());
private final PlatformDdl mysqlDdl = PlatformDdlBuilder.create(new MySqlPlatform());
private final PlatformDdl oraDdl = PlatformDdlBuilder.create(new OraclePlatform());
private final PlatformDdl sqlServerDdl = PlatformDdlBuilder.create(new SqlServer17Platform());
private final PlatformDdl hanaDdl = PlatformDdlBuilder.create(new HanaPlatform());
{
DatabaseConfig serverConfig = Ebean.getDefaultServer().getPluginApi().getServerConfig();
sqlServerDdl.configure(serverConfig);
}
AlterColumn alterNotNull() {
AlterColumn alterColumn = new AlterColumn();
alterColumn.setTableName("mytab");
alterColumn.setColumnName("acol");
alterColumn.setCurrentType("varchar(5)");
alterColumn.setNotnull(Boolean.TRUE);
return alterColumn;
}
@Test
public void convertArrayType_default() {
assertThat(mysqlDdl.convertArrayType("varchar[](90)")).isEqualTo("varchar(90)");
assertThat(mysqlDdl.convertArrayType("integer[](60)")).isEqualTo("varchar(60)");
assertThat(mysqlDdl.convertArrayType("varchar[]")).isEqualTo("varchar(1000)");
assertThat(mysqlDdl.convertArrayType("integer[]")).isEqualTo("varchar(1000)");
}
@Test
public void convertArrayType_h2() {
assertThat(h2Ddl.convertArrayType("varchar[](90)")).isEqualTo("array");
assertThat(h2Ddl.convertArrayType("integer[](60)")).isEqualTo("array");
assertThat(h2Ddl.convertArrayType("varchar[]")).isEqualTo("array");
assertThat(h2Ddl.convertArrayType("integer[]")).isEqualTo("array");
}
@Test
public void convertArrayType_postgres() {
assertThat(pgDdl.convertArrayType("varchar[](90)")).isEqualTo("varchar[]");
assertThat(pgDdl.convertArrayType("integer[](60)")).isEqualTo("integer[]");
assertThat(pgDdl.convertArrayType("varchar[]")).isEqualTo("varchar[]");
assertThat(pgDdl.convertArrayType("integer[]")).isEqualTo("integer[]");
}
@Test
public void convertArrayType_hana() {
assertThat(hanaDdl.convertArrayType("varchar[](90)")).isEqualTo("nvarchar(255) array(90)");
assertThat(hanaDdl.convertArrayType("integer[](60)")).isEqualTo("integer array(60)");
assertThat(hanaDdl.convertArrayType("varchar[]")).isEqualTo("nvarchar(255) array");
assertThat(hanaDdl.convertArrayType("integer[]")).isEqualTo("integer array");
}
@Test
public void testAlterColumnBaseAttributes() {
AlterColumn alterColumn = alterNotNull();
assertNull(h2Ddl.alterColumnBaseAttributes(alterColumn));
assertNull(pgDdl.alterColumnBaseAttributes(alterColumn));
assertNull(oraDdl.alterColumnBaseAttributes(alterColumn));
String sql = mysqlDdl.alterColumnBaseAttributes(alterColumn);
assertEquals("alter table mytab modify acol varchar(5) not null", sql);
sql = sqlServerDdl.alterColumnBaseAttributes(alterColumn);
assertEquals("alter table mytab alter column acol nvarchar(5) not null", sql);
sql = hanaDdl.alterColumnBaseAttributes(alterColumn);
assertEquals("alter table mytab alter ( acol nvarchar(5) not null)", sql);
alterColumn.setNotnull(Boolean.FALSE);
sql = mysqlDdl.alterColumnBaseAttributes(alterColumn);
assertEquals("alter table mytab modify acol varchar(5)", sql);
sql = hanaDdl.alterColumnBaseAttributes(alterColumn);
assertEquals("alter table mytab alter ( acol nvarchar(5))", sql);
alterColumn.setNotnull(null);
alterColumn.setType("varchar(100)");
sql = mysqlDdl.alterColumnBaseAttributes(alterColumn);
assertEquals("alter table mytab modify acol varchar(100)", sql);
sql = hanaDdl.alterColumnBaseAttributes(alterColumn);
assertEquals("alter table mytab alter ( acol nvarchar(100))", sql);
alterColumn.setCurrentNotnull(Boolean.TRUE);
sql = mysqlDdl.alterColumnBaseAttributes(alterColumn);
assertEquals("alter table mytab modify acol varchar(100) not null", sql);
sql = hanaDdl.alterColumnBaseAttributes(alterColumn);
assertEquals("alter table mytab alter ( acol nvarchar(100) not null)", sql);
}
@Test
public void testAlterColumnType() {
String sql = h2Ddl.alterColumnType("mytab", "acol", "varchar(20)");
assertEquals("alter table mytab alter column acol varchar(20)", sql);
sql = pgDdl.alterColumnType("mytab", "acol", "varchar(20)");
assertEquals("alter table mytab alter column acol type varchar(20) using acol::varchar(20)", sql);
sql = pgDdl.alterColumnType("mytab", "acol", "bigint");
assertEquals("alter table mytab alter column acol type bigint using acol::bigint", sql);
sql = oraDdl.alterColumnType("mytab", "acol", "varchar(20)");
assertEquals("alter table mytab modify acol varchar2(20)", sql);
sql = mysqlDdl.alterColumnType("mytab", "acol", "varchar(20)");
assertNull(sql);
sql = sqlServerDdl.alterColumnType("mytab", "acol", "varchar(20)");
assertNull(sql);
sql = hanaDdl.alterColumnType("mytab", "acol", "varchar(20)");
assertNull(sql);
}
@Test
public void testAlterColumnNotnull() {
String sql = h2Ddl.alterColumnNotnull("mytab", "acol", true);
assertEquals("alter table mytab alter column acol set not null", sql);
sql = pgDdl.alterColumnNotnull("mytab", "acol", true);
assertEquals("alter table mytab alter column acol set not null", sql);
sql = oraDdl.alterColumnNotnull("mytab", "acol", true);
assertEquals("alter table mytab modify acol not null", sql);
sql = mysqlDdl.alterColumnNotnull("mytab", "acol", true);
assertNull(sql);
sql = sqlServerDdl.alterColumnNotnull("mytab", "acol", true);
assertNull(sql);
sql = hanaDdl.alterColumnNotnull("mytab", "acol", true);
assertNull(sql);
}
@Test
public void testAlterColumnNull() {
String sql = h2Ddl.alterColumnNotnull("mytab", "acol", false);
assertEquals("alter table mytab alter column acol set null", sql);
sql = pgDdl.alterColumnNotnull("mytab", "acol", false);
assertEquals("alter table mytab alter column acol drop not null", sql);
sql = oraDdl.alterColumnNotnull("mytab", "acol", false);
assertEquals("alter table mytab modify acol null", sql);
sql = mysqlDdl.alterColumnNotnull("mytab", "acol", false);
assertNull(sql);
sql = sqlServerDdl.alterColumnNotnull("mytab", "acol", false);
assertNull(sql);
sql = hanaDdl.alterColumnNotnull("mytab", "acol", false);
assertNull(sql);
}
@Test
public void testAlterColumnDefaultValue() {
String sql = h2Ddl.alterColumnDefaultValue("mytab", "acol", "'hi'");
assertEquals("alter table mytab alter column acol set default 'hi'", sql);
sql = pgDdl.alterColumnDefaultValue("mytab", "acol", "'hi'");
assertEquals("alter table mytab alter column acol set default 'hi'", sql);
sql = oraDdl.alterColumnDefaultValue("mytab", "acol", "'hi'");
assertEquals("alter table mytab modify acol default 'hi'", sql);
sql = mysqlDdl.alterColumnDefaultValue("mytab", "acol", "'hi'");
assertEquals("alter table mytab alter acol set default 'hi'", sql);
sql = sqlServerDdl.alterColumnDefaultValue("mytab", "acol", "'hi'");
assertEquals("alter table mytab add default 'hi' for acol", sql);
boolean exceptionCaught = false;
try {
hanaDdl.alterColumnDefaultValue("mytab", "acol", "'hi'");
} catch (UnsupportedOperationException e) {
exceptionCaught = true;
}
assertTrue(exceptionCaught);
}
@Test
public void testAlterColumnDropDefault() {
String sql = h2Ddl.alterColumnDefaultValue("mytab", "acol", "DROP DEFAULT");
assertEquals("alter table mytab alter column acol drop default", sql);
sql = pgDdl.alterColumnDefaultValue("mytab", "acol", "DROP DEFAULT");
assertEquals("alter table mytab alter column acol drop default", sql);
sql = oraDdl.alterColumnDefaultValue("mytab", "acol", "DROP DEFAULT");
assertEquals("alter table mytab modify acol drop default", sql);
sql = mysqlDdl.alterColumnDefaultValue("mytab", "acol", "DROP DEFAULT");
assertEquals("alter table mytab alter acol drop default", sql);
sql = sqlServerDdl.alterColumnDefaultValue("mytab", "acol", "DROP DEFAULT");
assertEquals("EXEC usp_ebean_drop_default_constraint mytab, acol", sql);
boolean exceptionCaught = false;
try {
hanaDdl.alterColumnDefaultValue("mytab", "acol", "DROP DEFAULT");
} catch (UnsupportedOperationException e) {
exceptionCaught = true;
}
assertTrue(exceptionCaught);
}
@Test
public void useIdentityType_h2() {
assertEquals(h2Ddl.useIdentityType(null), IdType.IDENTITY);
assertEquals(h2Ddl.useIdentityType(IdType.SEQUENCE), IdType.SEQUENCE);
assertEquals(h2Ddl.useIdentityType(IdType.IDENTITY), IdType.IDENTITY);
assertEquals(h2Ddl.useIdentityType(IdType.GENERATOR), IdType.GENERATOR);
assertEquals(h2Ddl.useIdentityType(IdType.EXTERNAL), IdType.EXTERNAL);
}
@Test
public void useIdentityType_postgres() {
assertEquals(pgDdl.useIdentityType(IdType.GENERATOR), IdType.GENERATOR);
assertEquals(pgDdl.useIdentityType(IdType.EXTERNAL), IdType.EXTERNAL);
assertEquals(pgDdl.useIdentityType(null), IdType.IDENTITY);
assertEquals(pgDdl.useIdentityType(IdType.SEQUENCE), IdType.SEQUENCE);
assertEquals(pgDdl.useIdentityType(IdType.IDENTITY), IdType.IDENTITY);
}
@Test
public void useIdentityType_mysql() {
assertEquals(mysqlDdl.useIdentityType(null), IdType.IDENTITY);
assertEquals(mysqlDdl.useIdentityType(IdType.SEQUENCE), IdType.IDENTITY);
assertEquals(mysqlDdl.useIdentityType(IdType.IDENTITY), IdType.IDENTITY);
assertEquals(mysqlDdl.useIdentityType(IdType.GENERATOR), IdType.GENERATOR);
assertEquals(mysqlDdl.useIdentityType(IdType.EXTERNAL), IdType.EXTERNAL);
}
@Test
public void useIdentityType_oracle() {
assertEquals(oraDdl.useIdentityType(null), IdType.IDENTITY);
assertEquals(oraDdl.useIdentityType(IdType.SEQUENCE), IdType.SEQUENCE);
assertEquals(oraDdl.useIdentityType(IdType.IDENTITY), IdType.IDENTITY);
assertEquals(oraDdl.useIdentityType(IdType.GENERATOR), IdType.GENERATOR);
assertEquals(oraDdl.useIdentityType(IdType.EXTERNAL), IdType.EXTERNAL);
}
@Test
public void useIdentityType_hana() {
assertEquals(hanaDdl.useIdentityType(null), IdType.IDENTITY);
assertEquals(hanaDdl.useIdentityType(IdType.SEQUENCE), IdType.IDENTITY);
assertEquals(hanaDdl.useIdentityType(IdType.IDENTITY), IdType.IDENTITY);
assertEquals(hanaDdl.useIdentityType(IdType.GENERATOR), IdType.GENERATOR);
assertEquals(hanaDdl.useIdentityType(IdType.EXTERNAL), IdType.EXTERNAL);
}
}
@@ -1,54 +0,0 @@
package io.ebeaninternal.dbmigration.ddlgeneration.platform;
import io.ebean.config.ServerConfig;
import io.ebean.config.dbplatform.h2.H2Platform;
import io.ebean.config.dbplatform.hana.HanaPlatform;
import io.ebean.config.dbplatform.mysql.MySqlPlatform;
import io.ebean.config.dbplatform.oracle.OraclePlatform;
import io.ebean.config.dbplatform.postgres.PostgresPlatform;
import io.ebean.config.dbplatform.sqlserver.SqlServer17Platform;
import io.ebeaninternal.dbmigration.ddlgeneration.PlatformDdlBuilder;
import org.junit.Test;
import static org.junit.Assert.assertEquals;
public class PlatformDdl_dropUniqueConstraintTest {
private PlatformDdl h2Ddl = PlatformDdlBuilder.create(new H2Platform());
private PlatformDdl pgDdl = PlatformDdlBuilder.create(new PostgresPlatform());
private PlatformDdl mysqlDdl = PlatformDdlBuilder.create(new MySqlPlatform());
private PlatformDdl oraDdl = PlatformDdlBuilder.create(new OraclePlatform());
private PlatformDdl sqlServerDdl = PlatformDdlBuilder.create(new SqlServer17Platform());
private PlatformDdl hanaDdl = PlatformDdlBuilder.create(new HanaPlatform());
@Test
public void test() throws Exception {
String sql = h2Ddl.alterTableDropUniqueConstraint("mytab", "uq_name");
assertEquals("alter table mytab drop constraint uq_name", sql);
sql = pgDdl.alterTableDropUniqueConstraint("mytab", "uq_name");
assertEquals("alter table mytab drop constraint uq_name", sql);
sql = oraDdl.alterTableDropUniqueConstraint("mytab", "uq_name");
assertEquals("alter table mytab drop constraint uq_name", sql);
sql = sqlServerDdl.alterTableDropUniqueConstraint("mytab", "uq_name");
assertEquals(
"IF EXISTS (SELECT name FROM sys.indexes WHERE object_id = OBJECT_ID('mytab','U') AND name = 'uq_name') drop index uq_name ON mytab;\n"
+ "IF (OBJECT_ID('uq_name', 'UQ') IS NOT NULL) alter table mytab drop constraint uq_name",
sql);
sql = mysqlDdl.alterTableDropUniqueConstraint("mytab", "uq_name");
assertEquals("alter table mytab drop index uq_name", sql);
ServerConfig serverConfig = new ServerConfig();
hanaDdl.configure(serverConfig);
sql = hanaDdl.alterTableDropUniqueConstraint("mytab", "uq_name");
assertEquals("delimiter $$\n" +
"do\n" +
"begin\n" +
"declare exit handler for sql_error_code 397 begin end;\n" +
"exec 'alter table mytab drop constraint uq_name';\n" +
"end;\n" +
"$$", sql);
}
}
@@ -1,97 +0,0 @@
package io.ebeaninternal.dbmigration.ddlgeneration.platform;
import io.ebean.config.dbplatform.DbPlatformTypeMapping;
import io.ebean.config.dbplatform.h2.H2Platform;
import io.ebean.config.dbplatform.postgres.PostgresPlatform;
import io.ebeaninternal.dbmigration.ddlgeneration.platform.util.PlatformTypeConverter;
import org.junit.Test;
import static org.assertj.core.api.Assertions.assertThat;
public class PlatformTypeConverterTest {
@Test
public void convert_withSuffix_expect_suffix() {
PostgresPlatform pg = new PostgresPlatform();
DbPlatformTypeMapping dbTypeMap = pg.getDbTypeMap();
PlatformTypeConverter converter = new PlatformTypeConverter(dbTypeMap);
assertThat(converter.convert("varchar(10)")).isEqualTo("varchar(10)");
assertThat(converter.convert("VARCHAR(10) default 'en' not null")).isEqualTo("varchar(10) default 'en' not null");
assertThat(converter.convert("DECIMAL(10,2) DEFAULT '0.00' NOT NULL")).isEqualTo("decimal(10,2) DEFAULT '0.00' NOT NULL");
assertThat(converter.convert("CRAZY(12,0) suffix")).isEqualTo("CRAZY(12,0) suffix");
assertThat(converter.convert("CRAZY(12) suffix")).isEqualTo("CRAZY(12) suffix");
assertThat(converter.convert("CRAZY suffix")).isEqualTo("CRAZY suffix");
}
@Test
public void testConvert_given_postgres() throws Exception {
PostgresPlatform pg = new PostgresPlatform();
DbPlatformTypeMapping dbTypeMap = pg.getDbTypeMap();
PlatformTypeConverter converter = new PlatformTypeConverter(dbTypeMap);
assertThat(converter.convert("varchar(10)")).isEqualTo("varchar(10)");
assertThat(converter.convert("decimal(10,2)")).isEqualTo("decimal(10,2)");
assertThat(converter.convert("clob")).isEqualTo("text");
assertThat(converter.convert("blob")).isEqualTo("bytea");
assertThat(converter.convert("tinyint")).isEqualTo("smallint");
assertThat(converter.convert("funky")).isEqualTo("funky"); // unknown
assertThat(converter.convert("integer(8)")).isEqualTo("integer"); // removes scale
assertThat(converter.convert("funky(")).isEqualTo("funky(");
assertThat(converter.convert("funky()")).isEqualTo("funky()");
assertThat(converter.convert("funky)")).isEqualTo("funky)");
}
@Test
public void testConvert_given_h2() throws Exception {
H2Platform platform = new H2Platform();
DbPlatformTypeMapping dbTypeMap = platform.getDbTypeMap();
PlatformTypeConverter converter = new PlatformTypeConverter(dbTypeMap);
assertThat(converter.convert("varchar(10)")).isEqualTo("varchar(10)");
assertThat(converter.convert("decimal(10,2)")).isEqualTo("decimal(10,2)");
assertThat(converter.convert("clob")).isEqualTo("clob");
assertThat(converter.convert("blob")).isEqualTo("blob");
assertThat(converter.convert("tinyint")).isEqualTo("tinyint");
assertThat(converter.convert("integer(8)")).isEqualTo("integer(8)");
assertThat(converter.convert("funky")).isEqualTo("funky"); // unknown
}
@Test
public void testConvertJsonTypes_given_postgres() {
PostgresPlatform platform = new PostgresPlatform();
DbPlatformTypeMapping dbTypeMap = platform.getDbTypeMap();
PlatformTypeConverter converter = new PlatformTypeConverter(dbTypeMap);
assertThat(converter.convert("jsonblob")).isEqualTo("bytea");
assertThat(converter.convert("jsonclob")).isEqualTo("text");
assertThat(converter.convert("jsonvarchar(200)")).isEqualTo("varchar(200)");
assertThat(converter.convert("json")).isEqualTo("json");
assertThat(converter.convert("jsonb")).isEqualTo("jsonb");
}
@Test
public void testConvertJsonTypes_given_h2() {
H2Platform platform = new H2Platform();
DbPlatformTypeMapping dbTypeMap = platform.getDbTypeMap();
PlatformTypeConverter converter = new PlatformTypeConverter(dbTypeMap);
assertThat(converter.convert("jsonblob")).isEqualTo("blob");
assertThat(converter.convert("jsonclob")).isEqualTo("clob");
assertThat(converter.convert("jsonvarchar(200)")).isEqualTo("varchar(200)");
assertThat(converter.convert("json")).isEqualTo("clob");
assertThat(converter.convert("jsonb")).isEqualTo("clob");
}
}
@@ -1,18 +0,0 @@
package io.ebeaninternal.dbmigration.ddlgeneration.platform;
import io.ebean.config.dbplatform.postgres.PostgresPlatform;
import org.junit.Test;
import static org.assertj.core.api.Assertions.assertThat;
public class PostgresDdlTest {
private PostgresDdl postgresDdl = new PostgresDdl(new PostgresPlatform());
@Test
public void setLockTimeout() {
final String sql = postgresDdl.setLockTimeout(5);
assertThat(sql).isEqualTo("set lock_timeout = 5000");
}
}
@@ -1,17 +0,0 @@
package io.ebeaninternal.dbmigration.ddlgeneration.platform;
import org.junit.Test;
import static org.assertj.core.api.Assertions.assertThat;
public class SqlServerHistoryDdlTest {
@Test
public void getHistoryTable() {
SqlServerHistoryDdl ddl = new SqlServerHistoryDdl();
assertThat(ddl.getHistoryTable("foo")).isEqualTo("dbo.foo_history");
assertThat(ddl.getHistoryTable("bar.foo")).isEqualTo("bar.foo_history");
assertThat(ddl.getHistoryTable("[Foo]")).isEqualTo("dbo.[Foo_history]");
}
}
@@ -1,17 +0,0 @@
package io.ebeaninternal.dbmigration.ddlgeneration.platform.util;
import org.junit.Test;
import static org.junit.Assert.assertEquals;
public class VowelRemoverTest {
@Test
public void testTrim() throws Exception {
assertEquals("fk_abcd", VowelRemover.trim("fk_abcde", 4));
assertEquals("fk_a", VowelRemover.trim("fk_aaaaaa", 4));
assertEquals("ab_avrylngtblnm", VowelRemover.trim("ab_averylongtablename", 4));
}
}
@@ -1,34 +0,0 @@
package io.ebeaninternal.dbmigration.migrationreader;
import io.ebeaninternal.dbmigration.migration.Migration;
import org.junit.Test;
import java.io.File;
import static org.assertj.core.api.Assertions.assertThat;
public class MigrationXmlWriterTest {
@Test
public void testReadWrite() throws Exception {
Migration migration = MigrationXmlReader.read("/container/test-create-table.xml");
assertThat(migration.getChangeSet()).hasSize(1);
assertThat(migration.getChangeSet().get(0).getChangeSetChildren()).hasSize(3);
File temp = File.createTempFile("migrationWrite", ".xml");
new MigrationXmlWriter("THIS IS A GENERATED FILE - DO NOT MODIFY").write(migration, temp);
Migration migrationRead = MigrationXmlReader.read(temp);
assertThat(migrationRead.getChangeSet()).hasSize(1);
assertThat(migrationRead.getChangeSet().get(0).getChangeSetChildren()).hasSize(3);
temp = File.createTempFile("migrationWrite", ".xml");
new MigrationXmlWriter(null).write(migration, temp);
Migration migrationRead2 = MigrationXmlReader.read(temp);
assertThat(migrationRead2.getChangeSet()).hasSize(1);
assertThat(migrationRead.getChangeSet().get(0).getChangeSetChildren()).hasSize(3);
}
}
@@ -1,150 +0,0 @@
package io.ebeaninternal.dbmigration.model;
import io.ebean.migration.MigrationVersion;
import io.ebeaninternal.dbmigration.migration.ChangeSet;
import io.ebeaninternal.dbmigration.migration.DropColumn;
import org.junit.Test;
import static org.assertj.core.api.Assertions.assertThat;
public class EntryTest {
@Test
public void test_when_empty() throws Exception {
PendingDrops.Entry entry = createEntry();
assertThat(entry.hasPendingDrops()).isFalse();
}
@Test
public void test_when_normal() throws Exception {
PendingDrops.Entry entry = createEntry(new ChangeSet());
assertThat(entry.hasPendingDrops()).isTrue();
}
@Test
public void test_when_suppressOnly() throws Exception {
ChangeSet cs = new ChangeSet();
cs.setSuppressDropsForever(Boolean.TRUE);
PendingDrops.Entry entry = createEntry(cs);
assertThat(entry.hasPendingDrops()).isFalse();
}
@Test
public void test_when_both() throws Exception {
ChangeSet cs = new ChangeSet();
cs.setSuppressDropsForever(Boolean.TRUE);
PendingDrops.Entry entry = createEntry(cs, new ChangeSet());
assertThat(entry.hasPendingDrops()).isTrue();
}
@Test
public void test_containsSuppressForever_when_empty() {
PendingDrops.Entry entry = createEntry();
assertThat(entry.containsSuppressForever()).isFalse();
}
@Test
public void test_containsSuppressForever_when_notSuppress() {
PendingDrops.Entry entry = createEntry(new ChangeSet());
assertThat(entry.containsSuppressForever()).isFalse();
}
@Test
public void test_containsSuppressForever_when_suppress() {
ChangeSet cs = new ChangeSet();
cs.setSuppressDropsForever(Boolean.TRUE);
PendingDrops.Entry entry = createEntry(cs);
assertThat(entry.containsSuppressForever()).isTrue();
}
@Test
public void test_containsSuppressForever_when_mixed() {
ChangeSet cs = new ChangeSet();
cs.setSuppressDropsForever(Boolean.TRUE);
PendingDrops.Entry entry = createEntry(cs, new ChangeSet());
assertThat(entry.containsSuppressForever()).isTrue();
}
@Test
public void test_removeDrops_when_columnsMatch() {
ChangeSet pending = changeSet("one", "two");
PendingDrops.Entry entry = createEntry(pending);
assertThat(entry.removeDrops(changeSet("one", "two"))).isTrue();
assertThat(entry.list).asList().doesNotContain(pending);
}
@Test
public void test_removeDrops_when_subset() {
DropColumn dropColumnTwo = col("two");
ChangeSet pending = changeSet("one");
pending.getChangeSetChildren().add(dropColumnTwo);
PendingDrops.Entry entry = createEntry(pending);
assertThat(entry.removeDrops(changeSet("one"))).isFalse();
assertThat(entry.list).asList().containsExactly(pending);
assertThat(pending.getChangeSetChildren()).asList().containsExactly(dropColumnTwo);
}
@Test
public void test_removeDrops_when_columnsMatch_butSuppressed() {
ChangeSet pending = changeSet("one", "two");
pending.setSuppressDropsForever(Boolean.TRUE);
PendingDrops.Entry entry = createEntry(pending);
assertThat(entry.removeDrops(changeSet("one", "two"))).isFalse();
assertThat(entry.list).asList().contains(pending);
assertThat(pending.getChangeSetChildren()).asList().hasSize(2);
}
static ChangeSet changeSet(String... colName) {
ChangeSet cs = new ChangeSet();
for (String col : colName) {
cs.getChangeSetChildren().add(col(col));
}
return cs;
}
static DropColumn col(String colName) {
DropColumn drop = new DropColumn();
drop.setColumnName(colName);
drop.setTableName("tab");
return drop;
}
static PendingDrops.Entry createEntry(ChangeSet... pending) {
PendingDrops.Entry entry = new PendingDrops.Entry(MigrationVersion.parse("1.1"));
for (ChangeSet changeSet : pending) {
entry.add(changeSet);
}
return entry;
}
}
@@ -1,320 +0,0 @@
package io.ebeaninternal.dbmigration.model;
import io.ebeaninternal.dbmigration.migration.AlterColumn;
import org.junit.Test;
import static org.assertj.core.api.Assertions.assertThat;
public class MColumnTest {
MTable table = new MTable("tab");
MColumn basic() {
return new MColumn("col", "integer");
}
ModelDiff diff() {
return new ModelDiff();
}
@Test
public void noDiff() throws Exception {
ModelDiff diff = diff();
basic().compare(diff, table, basic());
assertThat(diff.getApplyChanges()).isEmpty();
assertThat(diff.getDropChanges()).isEmpty();
}
@Test
public void diffType() throws Exception {
ModelDiff diff = diff();
basic().compare(diff, table, new MColumn("col", "integer(8)"));
assertChanges(diff);
AlterColumn alterColumn = getAlterColumn(diff);
assertThat(alterColumn.getType()).isEqualTo("integer(8)");
}
@Test
public void diffNotNull() throws Exception {
ModelDiff diff = diff();
MColumn newCol = basic();
newCol.setNotnull(true);
basic().compare(diff, table, newCol);
assertChanges(diff);
AlterColumn alterColumn = getAlterColumn(diff);
assertThat(alterColumn.isNotnull()).isEqualTo(true);
assertThat(alterColumn.getType()).isNull();
assertThat(alterColumn.getUnique()).isNull();
assertThat(alterColumn.getUniqueOneToOne()).isNull();
assertThat(alterColumn.getDefaultValue()).isNull();
}
@Test
public void diffNull() throws Exception {
ModelDiff diff = diff();
MColumn newCol = basic();
newCol.setNotnull(false);
MColumn baseCol = basic();
baseCol.setNotnull(true);
baseCol.compare(diff, table, newCol);
assertChanges(diff);
AlterColumn alterColumn = getAlterColumn(diff);
assertThat(alterColumn.isNotnull()).isEqualTo(false);
}
@Test
public void applyNotNull_expect_notNull() throws Exception {
MColumn newCol = basic();
newCol.setNotnull(true);
AlterColumn alterColumn = new AlterColumn();
alterColumn.setNotnull(Boolean.FALSE);
newCol.apply(alterColumn);
assertThat(newCol.isNotnull()).isFalse();
}
@Test
public void diffCheckAdd() throws Exception {
ModelDiff diff = diff();
MColumn newCol = basic();
newCol.setCheckConstraint("abc");
basic().compare(diff, table, newCol);
assertChanges(diff);
assertThat(getAlterColumn(diff).getCheckConstraint()).isEqualTo("abc");
assertThat(getAlterColumn(diff).getDropCheckConstraint()).isNull();
}
@Test
public void diffCheckRemove() throws Exception {
ModelDiff diff = diff();
MColumn newCol = basic();
MColumn oldCol = basic();
oldCol.setCheckConstraint("z");
oldCol.setCheckConstraintName("abc");
oldCol.compare(diff, table, newCol);
assertChanges(diff);
assertThat(getAlterColumn(diff).getCheckConstraint()).isNull();
assertThat(getAlterColumn(diff).getDropCheckConstraint()).isEqualTo("abc");
}
@Test
public void diffCheckChange() throws Exception {
ModelDiff diff = diff();
MColumn newCol = basic();
newCol.setCheckConstraint("abc");
MColumn oldCol = basic();
oldCol.setCheckConstraint("z");
oldCol.setCheckConstraintName("d");
oldCol.compare(diff, table, newCol);
assertChanges(diff);
assertThat(getAlterColumn(diff).getCheckConstraint()).isEqualTo("abc");
assertThat(getAlterColumn(diff).getDropCheckConstraint()).isNull();
}
@Test
public void diffDefaultValueAdd() throws Exception {
ModelDiff diff = diff();
MColumn newCol = basic();
newCol.setDefaultValue("abc");
basic().compare(diff, table, newCol);
assertChanges(diff);
assertThat(getAlterColumn(diff).getDefaultValue()).isEqualTo("abc");
}
@Test
public void diffDefaultValueRemove() throws Exception {
ModelDiff diff = diff();
MColumn newCol = basic();
MColumn oldCol = basic();
oldCol.setDefaultValue("abc");
oldCol.compare(diff, table, newCol);
assertChanges(diff);
assertThat(getAlterColumn(diff).getDefaultValue()).isEqualTo("DROP DEFAULT");
}
@Test
public void diffDefaultValueChange() throws Exception {
ModelDiff diff = diff();
MColumn newCol = basic();
newCol.setDefaultValue("abc");
MColumn oldCol = basic();
oldCol.setDefaultValue("d");
oldCol.compare(diff, table, newCol);
assertChanges(diff);
assertThat(getAlterColumn(diff).getDefaultValue()).isEqualTo("abc");
}
@Test
public void diffReferencesAdd() throws Exception {
ModelDiff diff = diff();
MColumn newCol = basic();
newCol.setReferences("abc");
basic().compare(diff, table, newCol);
assertChanges(diff);
assertThat(getAlterColumn(diff).getReferences()).isEqualTo("abc");
assertThat(getAlterColumn(diff).getDropForeignKey()).isNull();
}
@Test
public void diffReferencesRemove() throws Exception {
ModelDiff diff = diff();
MColumn newCol = basic();
MColumn oldCol = basic();
oldCol.setReferences("abc");
oldCol.setForeignKeyName("fk_ab");
oldCol.setForeignKeyIndex("ix_ab");
oldCol.compare(diff, table, newCol);
assertChanges(diff);
assertThat(getAlterColumn(diff).getReferences()).isNull();
assertThat(getAlterColumn(diff).getForeignKeyName()).isNull();
assertThat(getAlterColumn(diff).getForeignKeyIndex()).isNull();
assertThat(getAlterColumn(diff).getDropForeignKey()).isEqualTo("fk_ab");
assertThat(getAlterColumn(diff).getDropForeignKeyIndex()).isEqualTo("ix_ab");
}
@Test
public void diffReferencesChange() throws Exception {
ModelDiff diff = diff();
MColumn newCol = basic();
newCol.setReferences("ab");
newCol.setForeignKeyName("fk_ab");
newCol.setForeignKeyIndex("ix_ab");
MColumn oldCol = basic();
oldCol.setReferences("d");
oldCol.setForeignKeyName("fk_d");
oldCol.setForeignKeyIndex("ix_d");
oldCol.compare(diff, table, newCol);
assertChanges(diff);
assertThat(getAlterColumn(diff).getReferences()).isEqualTo("ab");
assertThat(getAlterColumn(diff).getForeignKeyName()).isEqualTo("fk_ab");
assertThat(getAlterColumn(diff).getForeignKeyIndex()).isEqualTo("ix_ab");
assertThat(getAlterColumn(diff).getDropForeignKey()).isEqualTo("fk_d");
assertThat(getAlterColumn(diff).getDropForeignKeyIndex()).isEqualTo("ix_d");
}
@Test
public void diffUniqueAdd() throws Exception {
ModelDiff diff = diff();
MColumn newCol = basic();
newCol.setUnique("uq_one");
basic().compare(diff, table, newCol);
assertChanges(diff);
assertThat(getAlterColumn(diff).getUnique()).isEqualTo("uq_one");
}
@Test
public void diffUniqueRemove() throws Exception {
ModelDiff diff = diff();
MColumn newCol = basic();
MColumn oldCol = basic();
oldCol.setUnique("uq_one");
oldCol.compare(diff, table, newCol);
assertChanges(diff);
assertThat(getAlterColumn(diff).getDropUnique()).isEqualTo("uq_one");
}
@Test
public void diffUniqueOneToOneAdd() throws Exception {
ModelDiff diff = diff();
MColumn newCol = basic();
newCol.setUniqueOneToOne("uq_new");
MColumn oldCol = basic();
oldCol.setUniqueOneToOne("uq_old");
oldCol.compare(diff, table, newCol);
assertChanges(diff);
assertThat(getAlterColumn(diff).getUniqueOneToOne()).isEqualTo("uq_new");
assertThat(getAlterColumn(diff).getDropUnique()).isEqualTo("uq_old");
}
@Test
public void diffUniqueOneToOneRemove() throws Exception {
ModelDiff diff = diff();
MColumn newCol = basic();
MColumn oldCol = basic();
oldCol.setUniqueOneToOne("uq_new");
oldCol.compare(diff, table, newCol);
assertChanges(diff);
assertThat(getAlterColumn(diff).getDropUnique()).isEqualTo("uq_new");
}
@Test
public void diffHistoryExcludeAdd() throws Exception {
ModelDiff diff = diff();
MColumn newCol = basic();
newCol.setHistoryExclude(true);
basic().compare(diff, table, newCol);
assertChanges(diff);
assertThat(getAlterColumn(diff).isHistoryExclude()).isEqualTo(true);
}
@Test
public void diffHistoryExcludeRemove() throws Exception {
ModelDiff diff = diff();
MColumn newCol = basic();
MColumn oldCol = basic();
oldCol.setHistoryExclude(true);
oldCol.compare(diff, table, newCol);
assertChanges(diff);
assertThat(getAlterColumn(diff).isHistoryExclude()).isEqualTo(false);
}
private AlterColumn getAlterColumn(ModelDiff diff) {
return (AlterColumn) diff.getApplyChanges().get(0);
}
private void assertChanges(ModelDiff diff) {
assertThat(diff.getDropChanges()).isEmpty();
assertThat(diff.getApplyChanges()).hasSize(1);
}
}
@@ -1,129 +0,0 @@
package io.ebeaninternal.dbmigration.model;
import io.ebean.annotation.IdentityGenerated;
import io.ebean.config.dbplatform.IdType;
import io.ebeaninternal.dbmigration.migration.CreateTable;
import io.ebeaninternal.dbmigration.migration.IdentityType;
import io.ebeaninternal.server.deploy.IdentityMode;
import io.ebeaninternal.server.deploy.meta.DeployIdentityMode;
import org.junit.Test;
import java.math.BigInteger;
import static org.junit.Assert.*;
public class MTableIdentityTest {
@Test
public void toCreateTable() {
IdentityMode mode = new IdentityMode(IdType.SEQUENCE, IdentityGenerated.BY_DEFAULT, 11, 12, 13, "foo_seq");
CreateTable tab = new CreateTable();
MTableIdentity.toCreateTable(mode, tab);
assertEquals(BigInteger.valueOf(11), tab.getIdentityStart());
assertEquals(BigInteger.valueOf(12), tab.getIdentityIncrement());
assertEquals(BigInteger.valueOf(13), tab.getIdentityCache());
assertEquals("foo_seq", tab.getSequenceName());
assertEquals("by_default", tab.getIdentityGenerated());
assertEquals(IdentityType.SEQUENCE, tab.getIdentityType());
}
@Test
public void toCreateTable_when_auto() {
IdentityMode mode = new IdentityMode(IdType.AUTO, IdentityGenerated.AUTO, 11, 12, 13, "foo_seq");
CreateTable tab = new CreateTable();
MTableIdentity.toCreateTable(mode, tab);
assertNull(tab.getIdentityGenerated());
assertNull(tab.getIdentityType());
}
@Test
public void toCreateTable_when_PlatformDefault_expect_typeNull() {
DeployIdentityMode deploy = DeployIdentityMode.auto();
deploy.setPlatformType(IdType.SEQUENCE);
CreateTable tab = new CreateTable();
MTableIdentity.toCreateTable(new IdentityMode(deploy), tab);
assertNull(tab.getIdentityType());
}
@Test
public void toCreateTable_when_notPlatformDefault_expectType() {
DeployIdentityMode deploy = DeployIdentityMode.auto();
deploy.setIdType(IdType.SEQUENCE);
CreateTable tab = new CreateTable();
MTableIdentity.toCreateTable(new IdentityMode(deploy), tab);
assertEquals(IdentityType.SEQUENCE, tab.getIdentityType());
}
@Test
public void fromCreateTable_when_empty() {
CreateTable tab = new CreateTable();
final IdentityMode mode = MTableIdentity.fromCreateTable(tab);
assertEquals(IdType.AUTO, mode.getIdType());
assertEquals(IdentityGenerated.AUTO, mode.getGenerated());
assertEquals(0, mode.getStart());
assertEquals(0, mode.getIncrement());
assertEquals(0, mode.getCache());
assertNull(mode.getSequenceName());
}
@Test
public void fromCreateTable_when_allSet() {
CreateTable tab = new CreateTable();
tab.setIdentityType(IdentityType.SEQUENCE);
tab.setIdentityGenerated("always");
tab.setSequenceName("foo_seq");
tab.setIdentityStart(BigInteger.valueOf(5));
tab.setIdentityIncrement(BigInteger.valueOf(7));
tab.setIdentityCache(BigInteger.valueOf(9));
final IdentityMode mode = MTableIdentity.fromCreateTable(tab);
assertEquals(IdType.SEQUENCE, mode.getIdType());
assertEquals(IdentityGenerated.ALWAYS, mode.getGenerated());
assertEquals(5, mode.getStart());
assertEquals(7, mode.getIncrement());
assertEquals(9, mode.getCache());
assertEquals("foo_seq", mode.getSequenceName());
}
@Test
public void fromCreateTable_expect_useNewPropertiesWin() {
CreateTable tab = new CreateTable();
// old properties lose
tab.setSequenceInitial(BigInteger.valueOf(42));
tab.setSequenceAllocate(BigInteger.valueOf(43));
// new properties win
tab.setIdentityStart(BigInteger.valueOf(5));
tab.setIdentityIncrement(BigInteger.valueOf(7));
final IdentityMode mode = MTableIdentity.fromCreateTable(tab);
assertEquals(5, mode.getStart());
assertEquals(7, mode.getIncrement());
}
@Test
public void fromCreateTable_when_seqInitAndSeqAll() {
CreateTable tab = new CreateTable();
tab.setSequenceInitial(BigInteger.valueOf(42));
tab.setSequenceAllocate(BigInteger.valueOf(43));
final IdentityMode mode = MTableIdentity.fromCreateTable(tab);
assertEquals(42, mode.getStart());
assertEquals(43, mode.getIncrement());
}
}
@@ -1,239 +0,0 @@
package io.ebeaninternal.dbmigration.model;
import io.ebeaninternal.dbmigration.migration.AddColumn;
import io.ebeaninternal.dbmigration.migration.AddHistoryTable;
import io.ebeaninternal.dbmigration.migration.AlterColumn;
import io.ebeaninternal.dbmigration.migration.DropColumn;
import io.ebeaninternal.dbmigration.migration.DropHistoryTable;
import io.ebeaninternal.dbmigration.migration.DropTable;
import org.junit.Test;
import java.util.List;
import static org.assertj.core.api.Assertions.assertThat;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNull;
public class MTableTest {
static MTable base() {
MTable table = new MTable("tab");
table.addColumn(new MColumn("id", "bigint"));
table.addColumn(new MColumn("name", "varchar(20)"));
table.addColumn(new MColumn("status", "varchar(3)"));
return table;
}
static MTable newTable() {
MTable table = new MTable("tab");
table.addColumn(new MColumn("id", "bigint"));
table.addColumn(new MColumn("name", "varchar(20)"));
table.addColumn(new MColumn("comment", "varchar(1000)"));
return table;
}
static MTable newTableAdd2Columns() {
MTable table = new MTable("tab");
table.addColumn(new MColumn("id", "bigint"));
table.addColumn(new MColumn("name", "varchar(20)"));
table.addColumn(new MColumn("status", "varchar(3)"));
table.addColumn(new MColumn("comment", "varchar(1000)"));
table.addColumn(new MColumn("note", "varchar(2000)"));
return table;
}
static MTable newTableModifiedColumn() {
MColumn modCol = new MColumn("name", "varchar(30)");// modified type
modCol.setNotnull(true);
MTable table = new MTable("tab");
table.addColumn(modCol);
table.addColumn(new MColumn("id", "bigint"));
table.addColumn(new MColumn("status", "varchar(3)"));
return table;
}
@Test
public void schema() {
MTable table = new MTable("tab");
assertNull(table.getSchema());
table = new MTable("foo.tab");
assertEquals("foo", table.getSchema());
assertEquals("foo.tab", table.getName());
}
@Test
public void test_allHistoryColumns() throws Exception {
MTable base = base();
base.registerPendingDropColumn("fullName");
base.registerPendingDropColumn("last");
assertThat(base.allHistoryColumns(false)).containsExactly("id", "name", "status");
assertThat(base.allHistoryColumns(true)).containsExactly("id", "name", "status", "fullName", "last");
}
@Test
public void test_dropTable() {
MTable base = base();
DropTable dropTable = base.dropTable();
assertThat(dropTable.getName()).isEqualTo(base.getName());
}
@Test
public void test_compare_addColumnDropColumn() throws Exception {
ModelDiff diff = new ModelDiff();
diff.compareTables(base(), newTable());
List<Object> createChanges = diff.getApplyChanges();
assertThat(createChanges).hasSize(1);
AddColumn addColumn = (AddColumn) createChanges.get(0);
assertThat(addColumn.getColumn()).extracting("name").contains("comment");
assertThat(addColumn.getColumn()).extracting("type").contains("varchar(1000)");
List<Object> dropChanges = diff.getDropChanges();
assertThat(dropChanges).hasSize(1);
DropColumn dropColumn = (DropColumn) dropChanges.get(0);
assertThat(dropColumn.getColumnName()).isEqualTo("status");
assertThat(dropColumn.getTableName()).isEqualTo("tab");
}
@Test
public void test_compare_addTwoColumnsToSameTable() throws Exception {
ModelDiff diff = new ModelDiff();
diff.compareTables(base(), newTableAdd2Columns());
List<Object> createChanges = diff.getApplyChanges();
assertThat(createChanges).hasSize(1);
AddColumn addColumn = (AddColumn) createChanges.get(0);
assertThat(addColumn.getColumn()).extracting("name").contains("comment", "note");
assertThat(addColumn.getColumn()).extracting("type").contains("varchar(1000)", "varchar(2000)");
assertThat(diff.getDropChanges()).hasSize(0);
}
@Test
public void test_compare_modifyColumn() throws Exception {
ModelDiff diff = new ModelDiff();
diff.compareTables(base(), newTableModifiedColumn());
List<Object> createChanges = diff.getApplyChanges();
assertThat(createChanges).hasSize(1);
AlterColumn alterColumn = (AlterColumn) createChanges.get(0);
assertThat(alterColumn.getColumnName()).isEqualTo("name");
assertThat(alterColumn.getType()).isEqualTo("varchar(30)");
assertThat(alterColumn.isNotnull()).isEqualTo(true);
assertThat(alterColumn.getUnique()).isNull();
assertThat(alterColumn.getCheckConstraint()).isNull();
assertThat(alterColumn.getReferences()).isNull();
assertThat(diff.getDropChanges()).hasSize(0);
}
@Test
public void test_apply_dropColumn() {
MTable base = base();
DropColumn dropColumn = new DropColumn();
dropColumn.setTableName("tab");
dropColumn.setColumnName("name");
base.apply(dropColumn);
assertThat(base.getColumn("name")).isNull();
}
@Test(expected = IllegalStateException.class)
public void test_apply_dropColumn_doesNotExist() {
MTable base = base();
DropColumn dropColumn = new DropColumn();
dropColumn.setTableName(base.getName());
dropColumn.setColumnName("DoesNotExist");
base.apply(dropColumn);
}
@Test(expected = IllegalStateException.class)
public void test_apply_alterColumn_doesNotExist() {
MTable base = base();
AlterColumn alterColumn = new AlterColumn();
alterColumn.setTableName(base.getName());
alterColumn.setColumnName("DoesNotExist");
alterColumn.setType("integer");
base.apply(alterColumn);
}
@Test
public void test_apply_alterColumn_type() {
MTable base = base();
AlterColumn alterColumn = new AlterColumn();
alterColumn.setTableName(base.getName());
alterColumn.setColumnName("id");
alterColumn.setType("uuid");
base.apply(alterColumn);
assertThat(base.getColumn("id").getType()).isEqualTo("uuid");
}
@Test
public void test_compare_addAndDropColumn() throws Exception {
MTable base = base();
MTable newTable = newTable();
ModelDiff diff = new ModelDiff();
base.compare(diff, newTable);
assertThat(diff.getApplyChanges()).hasSize(1);
assertThat(diff.getDropChanges()).hasSize(1);
}
@Test
public void test_compare_addHistoryToTable() {
MTable base = base();
MTable withHistory = base();
withHistory.setWithHistory(true);
ModelDiff diff = new ModelDiff();
base.compare(diff, withHistory);
assertThat(diff.getDropChanges()).isEmpty();
assertThat(diff.getApplyChanges()).hasSize(1);
assertThat(diff.getApplyChanges().get(0)).isInstanceOf(AddHistoryTable.class);
}
@Test
public void test_compare_removeHistoryFromTable() throws Exception {
MTable withHistory = base();
withHistory.setWithHistory(true);
MTable noHistory = base();
ModelDiff diff = new ModelDiff();
withHistory.compare(diff, noHistory);
assertThat(diff.getApplyChanges()).isEmpty();
assertThat(diff.getDropChanges()).hasSize(1);
assertThat(diff.getDropChanges().get(0)).isInstanceOf(DropHistoryTable.class);
}
}
@@ -1,180 +0,0 @@
package io.ebeaninternal.dbmigration.model;
import org.junit.Test;
import io.ebean.migration.MigrationVersion;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import static org.assertj.core.api.Assertions.assertThat;
// FIXME: this test should be moved to ebean-migration artifact
public class MigrationVersionTest {
@Test
public void sort() {
List<MigrationVersion> list = new ArrayList<>();
list.add(MigrationVersion.parse("1.1__point"));
list.add(MigrationVersion.parse("3.0__three"));
list.add(MigrationVersion.parse("1.0__init"));
list.add(MigrationVersion.parse("R__beta"));
list.add(MigrationVersion.parse("R__alpha"));
Collections.sort(list);
assertThat(list.get(0).getComment()).isEqualTo("init");
assertThat(list.get(1).getComment()).isEqualTo("point");
assertThat(list.get(2).getComment()).isEqualTo("three");
assertThat(list.get(3).getComment()).isEqualTo("alpha");
assertThat(list.get(4).getComment()).isEqualTo("beta");
}
@Test
public void test_parse_hyphenSnapshot() {
MigrationVersion version = MigrationVersion.parse("0.1.1-SNAPSHOT");
assertThat(version.normalised()).isEqualTo("0.1.1");
assertThat(version.getComment()).isEqualTo("");
}
@Test
public void test_parse_hyphenSnapshot_when_underscores() {
MigrationVersion version = MigrationVersion.parse("0_1_1-SNAPSHOT__Foo");
assertThat(version.normalised()).isEqualTo("0.1.1");
assertThat(version.getComment()).isEqualTo("Foo");
}
@Test
public void test_parse_when_repeatable() throws Exception {
MigrationVersion version = MigrationVersion.parse("R__Foo");
assertThat(version.getComment()).isEqualTo("Foo");
assertThat(version.normalised()).isEqualTo("R");
}
@Test
public void test_parse_when_repeatable_case() throws Exception {
MigrationVersion version = MigrationVersion.parse("r__Foo");
assertThat(version.isRepeatable()).isTrue();
assertThat(version.getComment()).isEqualTo("Foo");
assertThat(version.normalised()).isEqualTo("R");
assertThat(version.normalised()).isEqualTo("R");
}
@Test
public void test_parse_when_v_prefix() throws Exception {
MigrationVersion version = MigrationVersion.parse("v1_0__Foo");
assertThat(version.isRepeatable()).isFalse();
assertThat(version.getComment()).isEqualTo("Foo");
assertThat(version.normalised()).isEqualTo("1.0");
assertThat(version.asString()).isEqualTo("1_0");
assertThat(version.getRaw()).isEqualTo("1_0__Foo");
}
@Test
public void repeatable_compareTo() throws Exception {
MigrationVersion foo = MigrationVersion.parse("R__Foo");
MigrationVersion bar = MigrationVersion.parse("R__Bar");
assertThat(foo.compareTo(bar)).isGreaterThan(0);
assertThat(bar.compareTo(foo)).isLessThan(0);
MigrationVersion bar2 = MigrationVersion.parse("R__Bar");
assertThat(bar.compareTo(bar2)).isEqualTo(0);
}
@Test
public void repeatable_compareTo_when_caseDifferent() throws Exception {
MigrationVersion none = MigrationVersion.parse("R__");
MigrationVersion bar = MigrationVersion.parse("R__Bar");
MigrationVersion bar2 = MigrationVersion.parse("R__bar");
assertThat(none.compareTo(bar)).isLessThan(0);
assertThat(bar.compareTo(bar2)).isLessThan(0);
assertThat(none.compareTo(bar2)).isLessThan(0);
}
@Test
public void test_parse_getComment() throws Exception {
assertThat(MigrationVersion.parse("1.1.1_2__Foo").getComment()).isEqualTo("Foo");
assertThat(MigrationVersion.parse("1.1.1.2__junk").getComment()).isEqualTo("junk");
assertThat(MigrationVersion.parse("1.1_1.2_foo").getComment()).isEqualTo("");
assertThat(MigrationVersion.parse("1.1_1.2_d").getComment()).isEqualTo("");
assertThat(MigrationVersion.parse("1.1_1.2_").getComment()).isEqualTo("");
assertThat(MigrationVersion.parse("1.1_1.2").getComment()).isEqualTo("");
}
@Test
public void test_nextVersion_expect_preserveUnderscores() {
assertThat(MigrationVersion.parse("2").nextVersion()).isEqualTo("3");
assertThat(MigrationVersion.parse("1.0").nextVersion()).isEqualTo("1.1");
assertThat(MigrationVersion.parse("2.0.b34").nextVersion()).isEqualTo("2.1");
assertThat(MigrationVersion.parse("1.1.1_2__Foo").nextVersion()).isEqualTo("1.1.1_3");
assertThat(MigrationVersion.parse("1.1.1.2_junk").nextVersion()).isEqualTo("1.1.1.3");
assertThat(MigrationVersion.parse("1_2.3_4__Foo").nextVersion()).isEqualTo("1_2.3_5");
assertThat(MigrationVersion.parse("1_2.3_4_").nextVersion()).isEqualTo("1_2.3_5");
assertThat(MigrationVersion.parse("1_2_3_4__Foo").nextVersion()).isEqualTo("1_2_3_5");
}
@Test
public void test_normalised_expect_periods() {
assertThat(MigrationVersion.parse("2").normalised()).isEqualTo("2");
assertThat(MigrationVersion.parse("1.0").normalised()).isEqualTo("1.0");
assertThat(MigrationVersion.parse("2.0.b34").normalised()).isEqualTo("2.0");
assertThat(MigrationVersion.parse("1.1.1_2__Foo").normalised()).isEqualTo("1.1.1.2");
assertThat(MigrationVersion.parse("1.1.1.2_junk").normalised()).isEqualTo("1.1.1.2");
assertThat(MigrationVersion.parse("1_2.3_4__Foo").normalised()).isEqualTo("1.2.3.4");
assertThat(MigrationVersion.parse("1_2.3_4_").normalised()).isEqualTo("1.2.3.4");
assertThat(MigrationVersion.parse("1_2_3_4__Foo").normalised()).isEqualTo("1.2.3.4");
}
@Test
public void test_compareTo_isEqual() throws Exception {
MigrationVersion v0 = MigrationVersion.parse("1.1.1_2__Foo");
MigrationVersion v1 = MigrationVersion.parse("1.1.1.2_junk");
MigrationVersion v2 = MigrationVersion.parse("1.1_1.2_foo");
MigrationVersion v3 = MigrationVersion.parse("1.1_1.2__foo");
// same version number, but not equal. It prints out the warning:
// The migrationscript '1.1.1.1_junk' contains non numeric version part.
// This may lead to misordered version scripts.
assertThat(v0.compareTo(v1)).isEqualTo(0);
assertThat(v0).isNotEqualTo(v1);
assertThat(v1.compareTo(v0)).isEqualTo(0);
assertThat(v1).isNotEqualTo(v0);
assertThat(v1.compareTo(v2)).isEqualTo(0);
assertThat(v1).isNotEqualTo(v2);
assertThat(v0.compareTo(v3)).isEqualTo(0);
assertThat(v0).isNotEqualTo(v3);
assertThat(v3.compareTo(v0)).isEqualTo(0);
assertThat(v3).isNotEqualTo(v0);
}
@Test
public void test_compareTo() throws Exception {
MigrationVersion v0 = MigrationVersion.parse("1.1.1.1_junk");
MigrationVersion v1 = MigrationVersion.parse("1.1.1.2_junk");
MigrationVersion v2 = MigrationVersion.parse("1.1_1.3_junk");
MigrationVersion v3 = MigrationVersion.parse("1.2_1.2_junk");
MigrationVersion v4 = MigrationVersion.parse("2.1_1.2_junk");
assertThat(v1.compareTo(v0)).isEqualTo(1);
assertThat(v1.compareTo(v2)).isEqualTo(-1);
assertThat(v1.compareTo(v3)).isEqualTo(-1);
assertThat(v1.compareTo(v4)).isEqualTo(-1);
}
}
@@ -1,42 +0,0 @@
package io.ebeaninternal.dbmigration.model;
import io.ebean.migration.MigrationVersion;
import io.ebeaninternal.dbmigration.migration.AddColumn;
import io.ebeaninternal.dbmigration.migration.ChangeSet;
import io.ebeaninternal.dbmigration.migration.CreateTable;
import io.ebeaninternal.dbmigration.migration.DropColumn;
import io.ebeaninternal.dbmigration.migration.Migration;
import io.ebeaninternal.dbmigration.migrationreader.MigrationXmlReader;
import org.junit.Test;
import java.util.List;
import static org.assertj.core.api.Assertions.assertThat;
public class ModelContainerApplyTest {
@Test
public void testApply() {
Migration migration = MigrationXmlReader.read("/container/test-create-table.xml");
List<ChangeSet> changeSets = migration.getChangeSet();
ChangeSet changeSet = changeSets.get(0);
List<Object> changeSetChildren = changeSet.getChangeSetChildren();
assertThat(changeSetChildren).hasSize(3);
assertThat(changeSetChildren.get(0)).isInstanceOf(CreateTable.class);
assertThat(changeSetChildren.get(1)).isInstanceOf(AddColumn.class);
assertThat(changeSetChildren.get(2)).isInstanceOf(DropColumn.class);
ModelContainer model = new ModelContainer();
model.apply(migration, MigrationVersion.parse("1.1"));
MTable foo = model.getTable("foo");
assertThat(foo.getComment()).isEqualTo("comment");
assertThat(foo.getTablespace()).isEqualTo("fooSpace");
assertThat(foo.getIndexTablespace()).isEqualTo("fooIndexSpace");
assertThat(foo.isWithHistory()).isEqualTo(false);
assertThat(foo.allColumns()).extracting("name").contains("col1", "col3", "added_to_foo");
}
}
@@ -1,204 +0,0 @@
package io.ebeaninternal.dbmigration.model;
import io.ebean.migration.MigrationVersion;
import io.ebeaninternal.dbmigration.migration.DropHistoryTable;
import io.ebeaninternal.dbmigration.migration.DropIndex;
import io.ebeaninternal.dbmigration.migration.DropTable;
import io.ebeaninternal.dbmigration.migration.Migration;
import io.ebeaninternal.dbmigration.migrationreader.MigrationXmlReader;
import org.junit.Test;
import java.util.List;
import java.util.Set;
import static org.assertj.core.api.Assertions.assertThat;
public class ModelContainerTest {
@Test
public void elementCollectionTable_single_expect_foreignKeys() {
ModelContainer container = new ModelContainer();
container.addTableElementCollection(createElementCollectionTable("ec_bean.id", "fk_ec_bean_ec_table"));
final MTable ecTable = container.getTable("ec_table");
final MColumn fkCol = ecTable.getColumn("fk_col");
assertThat(fkCol.getReferences()).isEqualTo("ec_bean.id");
}
@Test
public void elementCollectionTable_reused_expect_noForeignKeys() {
ModelContainer container = new ModelContainer();
container.addTableElementCollection(createElementCollectionTable("ec_bean.id", "fk_ec_bean_ec_table"));
container.addTableElementCollection(createElementCollectionTable("ec_otherBean.id", "fk_ec_otherBean_ec_table"));
final MTable ecTable = container.getTable("ec_table");
final MColumn fkCol = ecTable.getColumn("fk_col");
assertThat(fkCol.getReferences()).isNull();
assertThat(fkCol.getForeignKeyName()).isNull();
final MIndex index = container.getIndex(new MIndex("ix_ec_table", "ec_table", "foo"));
assertThat(index.getTableName()).isEqualTo("ec_table");
assertThat(index.getColumns()).containsOnly("fk_col");
}
private MTable createElementCollectionTable(String references, String fkName) {
MTable ecTable = new MTable("ec_table");
final MColumn colFk = new MColumn("fk_col", "varchar", true);
colFk.setReferences(references);
colFk.setForeignKeyName(fkName);
colFk.setForeignKeyIndex("ix_ec_table");
ecTable.addColumn(colFk);
ecTable.addColumn(new MColumn("key", "varchar", true));
ecTable.addColumn(new MColumn("val", "varchar", true));
return ecTable;
}
@Test
public void apply_when_noPendingDrops_then_emptyPending() {
ModelContainer container = new ModelContainer();
container.apply(mig("1.0.model.xml"), ver("1.1"));
assertThat(container.getPendingDrops()).isEmpty();
}
@Test
public void apply_when_pendingDrops_then_registeredHistoryTable() {
ModelContainer base = container_1_1();
MTable table = base.getTable("document");
assertThat(table.allHistoryColumns(true)).doesNotContain("zing");
container_1_1().registerPendingHistoryDropColumns(base);
assertThat(table.allHistoryColumns(true)).contains("zing");
assertThat(table.allHistoryColumns(false)).doesNotContain("zing");
}
@Test
public void apply_when_pendingDropsApplied_then_droppedTableNotInHistory() {
ModelContainer container = container_1_1();
container.apply(mig("1.1_2__drops.model.xml"), ver("1.1_2"));
ModelContainer base = container_1_1();
container.registerPendingHistoryDropColumns(base);
assertThat(base.getTable("document").allHistoryColumns(false)).doesNotContain("zing");
assertThat(base.getTable("document").allHistoryColumns(true)).doesNotContain("zing");
}
@Test
public void apply_when_apply_partial_pendingDrops_then_some_remainder() {
ModelContainer container = container_2_1();
container.apply(mig("2.2__drops.model.xml"), ver("2.2"));
ModelContainer base = container_2_1();
container.registerPendingHistoryDropColumns(base);
List<String> normalColumns = base.getTable("document").allHistoryColumns(false);
List<String> historyColumns = base.getTable("document").allHistoryColumns(true);
assertThat(historyColumns).contains("zong", "boom", "baz", "bar");
assertThat(normalColumns).doesNotContain("zing", "zong", "boom", "baz", "bar");
}
@Test
public void apply_sql() {
ModelContainer container = new ModelContainer();
container.apply(mig("3.0__rawSql.model.xml"), ver("3.0"));
assertThat(container.getPendingDrops()).isEmpty();
}
@Test
public void apply_alterForeignKey() {
ModelContainer container = new ModelContainer();
container.apply(mig("4.0__alterForeignKey.model.xml"), ver("4.0"));
assertThat(container.getPendingDrops()).isEmpty();
}
@Test
public void apply_dropTable_when_notInModel_then_ok() {
ModelContainer container = new ModelContainer();
container.apply(mig("5.0__dropTable.model.xml"), ver("5.0"));
assertThat(container.getTables()).isEmpty();
}
@Test
public void apply_drop_when_notInModel_then_ok() {
ModelContainer container = new ModelContainer();
DropTable dropTable = new DropTable();
dropTable.setName("DoesNotExist");
container.applyChange(dropTable);
DropIndex dropIndex = new DropIndex();
dropIndex.setIndexName("DoesNotExist");
container.applyChange(dropIndex);
DropHistoryTable dropHistoryTable = new DropHistoryTable();
dropHistoryTable.setBaseTable("DoesNotExist");
container.applyChange(dropHistoryTable);
}
@Test
public void apply_renameColumn() {
ModelContainer container = new ModelContainer();
container.apply(mig("6.0__renameColumn.model.xml"), ver("6.0"));
final MTable table = container.getTable("document");
assertThat(table.getColumn("title")).isNotNull();
assertThat(table.getColumn("short_title")).isNull();
}
@Test
public void getSchemas() {
MTable t0 = new MTable("foo.one");
MTable t1 = new MTable("foo.two");
MTable t2 = new MTable("bar.three");
ModelContainer container = new ModelContainer();
container.addTable(t0);
container.addTable(t1);
container.addTable(t2);
final Set<String> schemas = container.getSchemas();
assertThat(schemas).containsExactly("bar","foo");
}
private ModelContainer container_2_1() {
ModelContainer container = new ModelContainer();
container.apply(mig("2.0.model.xml"), ver("2.0"));
container.apply(mig("2.1.model.xml"), ver("2.1"));
return container;
}
private ModelContainer container_1_1() {
ModelContainer container = new ModelContainer();
container.apply(mig("1.0.model.xml"), ver("1.0"));
container.apply(mig("1.1.model.xml"), ver("1.1"));
return container;
}
private MigrationVersion ver(String version) {
return MigrationVersion.parse(version);
}
private Migration mig(String path) {
return MigrationXmlReader.read(ModelContainerTest.class.getResourceAsStream(path));
}
}
@@ -1,27 +0,0 @@
package io.ebeaninternal.dbmigration.model;
import org.junit.Test;
import static org.assertj.core.api.Assertions.assertThat;
public class ModelDiffTest {
@Test
public void test_compareTo_with_dropColumnOnHistoryTable_then_historyColumnRegistered() throws Exception {
ModelContainer base = new ModelContainer();
base.addTable(MTableTest.base().setWithHistory(true));
ModelContainer newModel = new ModelContainer();
newModel.addTable(MTableTest.newTable().setWithHistory(true));
ModelDiff diff = new ModelDiff(base);
diff.compareTo(newModel);
MTable tab = newModel.getTable("tab");
assertThat(tab.allHistoryColumns(true)).contains("status");
assertThat(tab.allColumns()).extracting("name").doesNotContain("status");
}
}
@@ -1,247 +0,0 @@
package io.ebeaninternal.dbmigration.model;
import io.ebean.migration.MigrationVersion;
import io.ebeaninternal.dbmigration.migration.ChangeSet;
import io.ebeaninternal.dbmigration.migration.DropColumn;
import io.ebeaninternal.dbmigration.migration.Migration;
import org.junit.Test;
import java.util.ArrayList;
import java.util.List;
import static org.assertj.core.api.Assertions.assertThat;
public class PendingDropsTest {
static final MigrationVersion V1_1 = MigrationVersion.parse("1.1");
static final MigrationVersion V1_2 = MigrationVersion.parse("1.2");
@Test
public void test_add() throws Exception {
PendingDrops pendingDrops = new PendingDrops();
pendingDrops.add(V1_1, new ChangeSet());
}
@Test
public void test_appliedDropsFor_when_matchesSome_then_removesMatched() throws Exception {
PendingDrops pendingDrops = new PendingDrops();
DropColumn one = col("one");
DropColumn two = col("two");
pendingDrops.add(V1_1, changeSet(one, two));
pendingDrops.add(V1_1, changeSet("three", "four"));
assertThat(pendingDrops.testGetEntryFor(V1_1).list).asList().hasSize(2);
ChangeSet applied = changeSet("two");
applied.setDropsFor("1.1");
assertThat(pendingDrops.appliedDropsFor(applied)).isFalse();
assertThat(pendingDrops.testGetEntryFor(V1_1).list).asList().hasSize(2);
assertThat(pendingDrops.testGetEntryFor(V1_1).list.get(0).getChangeSetChildren()).asList().containsExactly(one);
}
@Test
public void test_appliedDropsFor_when_matchesAll_then_removesChangeSet() throws Exception {
PendingDrops pendingDrops = new PendingDrops();
DropColumn one = col("one");
DropColumn two = col("two");
pendingDrops.add(V1_1, changeSet(one, two));
pendingDrops.add(V1_1, changeSet("three", "four"));
assertThat(pendingDrops.testGetEntryFor(V1_1).list).asList().hasSize(2);
ChangeSet applied = changeSet("two", "one");
applied.setDropsFor("1.1");
assertThat(pendingDrops.appliedDropsFor(applied)).isFalse();
assertThat(pendingDrops.testGetEntryFor(V1_1).list).asList().hasSize(1);
}
@Test
public void test_appliedDropsFor_when_changeSetSuppressed_isIgnored() throws Exception {
PendingDrops pendingDrops = new PendingDrops();
DropColumn one = col("one");
ChangeSet changeSet = changeSet(one);
changeSet.setSuppressDropsForever(true);
pendingDrops.add(V1_1, changeSet);
ChangeSet applied = changeSet("one");
applied.setDropsFor("1.1");
assertThat(pendingDrops.appliedDropsFor(applied)).isFalse();
assertThat(pendingDrops.testGetEntryFor(V1_1).list).asList().hasSize(1);
}
@Test
public void test_pendingDrops() throws Exception {
PendingDrops pendingDrops = new PendingDrops();
assertThat(pendingDrops.pendingDrops()).isEmpty();
pendingDrops.add(V1_1, new ChangeSet());
pendingDrops.add(V1_2, new ChangeSet());
assertThat(pendingDrops.pendingDrops()).containsExactly("1.1", "1.2");
}
@Test
public void test_pendingDrops_when_suppressForever() throws Exception {
PendingDrops pendingDrops = new PendingDrops();
assertThat(pendingDrops.pendingDrops()).isEmpty();
pendingDrops.add(V1_1, newSuppressForeverChangeSet());
assertThat(pendingDrops.pendingDrops()).isEmpty();
pendingDrops.add(V1_2, new ChangeSet());
assertThat(pendingDrops.pendingDrops()).containsExactly("1.2");
}
@Test
public void test_pendingDrops_when_both() throws Exception {
PendingDrops pendingDrops = new PendingDrops();
assertThat(pendingDrops.pendingDrops()).isEmpty();
pendingDrops.add(V1_1, newSuppressForeverChangeSet());
pendingDrops.add(V1_1, new ChangeSet());
assertThat(pendingDrops.pendingDrops()).containsExactly("1.1");
pendingDrops.add(V1_2, new ChangeSet());
assertThat(pendingDrops.pendingDrops()).containsExactly("1.1", "1.2");
}
@Test
public void test_migrationForVersion() throws Exception {
PendingDrops pendingDrops = new PendingDrops();
ChangeSet applyDropChangeSet1 = new ChangeSet();
ChangeSet applyDropChangeSet2 = new ChangeSet();
MigrationVersion version = V1_1;
pendingDrops.add(version, applyDropChangeSet1);
pendingDrops.add(version, applyDropChangeSet2);
Migration migration = pendingDrops.migrationForVersion("1_1");
assertThat(migration.getChangeSet()).containsExactly(applyDropChangeSet1, applyDropChangeSet2);
assertThat(pendingDrops.testContainsEntryFor(version)).isFalse();
}
@Test
public void test_migrationForVersion_when_both() throws Exception {
PendingDrops pendingDrops = new PendingDrops();
ChangeSet applyDropChangeSet = new ChangeSet();
MigrationVersion version = V1_1;
pendingDrops.add(version, newSuppressForeverChangeSet());
pendingDrops.add(version, applyDropChangeSet);
Migration migration = pendingDrops.migrationForVersion("1_1");
assertThat(migration.getChangeSet()).containsExactly(applyDropChangeSet);
assertThat(pendingDrops.testContainsEntryFor(version)).isTrue();
}
@Test
public void test_migrationForVersion_when_next() throws Exception {
PendingDrops pendingDrops = new PendingDrops();
MigrationVersion version = V1_1;
ChangeSet applyDropChangeSet = new ChangeSet();
pendingDrops.add(version, newSuppressForeverChangeSet());
pendingDrops.add(version, applyDropChangeSet);
Migration migration = pendingDrops.migrationForVersion("next");
assertThat(migration.getChangeSet()).containsExactly(applyDropChangeSet);
assertThat(pendingDrops.testContainsEntryFor(version)).isTrue();
}
@Test(expected = IllegalArgumentException.class)
public void test_migrationForVersion_when_next_isSuppressForever() throws Exception {
PendingDrops pendingDrops = new PendingDrops();
pendingDrops.add(V1_1, newSuppressForeverChangeSet());
pendingDrops.migrationForVersion("next");
}
@Test(expected = IllegalArgumentException.class)
public void test_migrationForVersion_when_doesNotExist() throws Exception {
PendingDrops pendingDrops = new PendingDrops();
pendingDrops.migrationForVersion("1_1");
}
@Test(expected = IllegalArgumentException.class)
public void test_migrationForVersion_when_next_doesNotExist() throws Exception {
PendingDrops pendingDrops = new PendingDrops();
pendingDrops.migrationForVersion("next");
}
@Test
public void test_registerPendingHistoryDropColumns() throws Exception {
TDModelContainer modelContainer = new TDModelContainer();
DropColumn drop1 = col("one");
drop1.setWithHistory(Boolean.TRUE);
DropColumn drop2 = col("two");
ChangeSet changeSet = changeSet(drop1, drop2);
PendingDrops pendingDrops = new PendingDrops();
pendingDrops.add(V1_1, changeSet);
pendingDrops.registerPendingHistoryDropColumns(modelContainer);
assertThat(modelContainer.drops).containsExactly(changeSet);
}
class TDModelContainer extends ModelContainer {
List<ChangeSet> drops = new ArrayList<>();
@Override
public void registerPendingHistoryDropColumns(ChangeSet changeSet) {
drops.add(changeSet);
}
}
private ChangeSet newSuppressForeverChangeSet() {
ChangeSet changeSet = new ChangeSet();
changeSet.setSuppressDropsForever(Boolean.TRUE);
return changeSet;
}
static ChangeSet changeSet(String... colNames) {
return EntryTest.changeSet(colNames);
}
static ChangeSet changeSet(DropColumn... drops) {
ChangeSet changeSet = new ChangeSet();
for (DropColumn dropColumn : drops) {
changeSet.getChangeSetChildren().add(dropColumn);
}
return changeSet;
}
static DropColumn col(String colName) {
return EntryTest.col(colName);
}
}
@@ -1,129 +0,0 @@
package io.ebeaninternal.dbmigration.model.build;
import io.ebean.BaseTestCase;
import io.ebean.DB;
import io.ebean.DatabaseFactory;
import io.ebean.config.DatabaseConfig;
import io.ebean.config.DbConstraintNaming;
import io.ebean.config.dbplatform.h2.H2Platform;
import io.ebean.config.dbplatform.sqlserver.SqlServer17Platform;
import io.ebeaninternal.api.SpiEbeanServer;
import io.ebeaninternal.dbmigration.ddlgeneration.platform.DefaultConstraintMaxLength;
import io.ebeaninternal.dbmigration.model.MColumn;
import io.ebeaninternal.dbmigration.model.MCompoundForeignKey;
import io.ebeaninternal.dbmigration.model.MTable;
import io.ebeaninternal.dbmigration.model.ModelContainer;
import io.ebeaninternal.dbmigration.model.visitor.VisitAllUsing;
import org.junit.Test;
import org.tests.model.basic.CKeyAssoc;
import org.tests.model.basic.CKeyDetail;
import org.tests.model.basic.CKeyParent;
import org.tests.model.basic.CKeyParentId;
import java.util.List;
import static org.assertj.core.api.Assertions.assertThat;
public class ModelBuildBeanVisitorTest extends BaseTestCase {
@Test
public void test() {
SpiEbeanServer defaultServer = (SpiEbeanServer) DB.getDefault();
ModelContainer model = new ModelContainer();
DbConstraintNaming constraintNaming = defaultServer.getServerConfig().getConstraintNaming();
constraintNaming.setMaxLength(new DefaultConstraintMaxLength(60));
ModelBuildContext ctx = new ModelBuildContext(model, new H2Platform(), constraintNaming, true);
ModelBuildBeanVisitor addTable = new ModelBuildBeanVisitor(ctx);
new VisitAllUsing(addTable, defaultServer).visitAllBeans();
assert_compound_pk(model);
assert_discriminatorColumn_explicit(model);
assert_discriminatorColumn_implied(model);
assert_discriminatorColumn_length(model);
}
@Test
public void test_allQuoted() {
ModelContainer model = new ModelContainer();
DatabaseConfig config = new DatabaseConfig();
config.setName("h2");
config.loadFromProperties();
config.setName("h2other");
config.setAllQuotedIdentifiers(true);
config.setDdlGenerate(false);
config.setDdlRun(false);
config.setDdlExtra(false);
config.setDefaultServer(false);
config.setRegister(false);
config.addClass(CKeyDetail.class);
config.addClass(CKeyParent.class);
config.addClass(CKeyAssoc.class);
config.addClass(CKeyParentId.class);
config.setDbOffline(true);
config.setDatabasePlatform(new SqlServer17Platform());
final SpiEbeanServer database = (SpiEbeanServer)DatabaseFactory.create(config);
ModelBuildContext ctx = new ModelBuildContext(model, config.getDatabasePlatform(), config.getConstraintNaming(), true);
ModelBuildBeanVisitor addTable = new ModelBuildBeanVisitor(ctx);
new VisitAllUsing(addTable, database).visitAllBeans();
MTable parent = model.getTable("[CKeyParent]");
assertThat(parent.getPkName()).isEqualTo("[pk_CKeyParent]");
MTable detail = model.getTable("[CKeyDetail]");
assertThat(detail.getPkName()).isEqualTo("[pk_CKeyDetail]");
final List<MCompoundForeignKey> compoundKeys = detail.getCompoundKeys();
assertThat(compoundKeys).hasSize(1);
final MCompoundForeignKey fkey = compoundKeys.get(0);
assertThat(fkey.getName()).isEqualTo("[fk_CKeyDetail_parent]");
assertThat(fkey.getIndexName()).isEqualTo("[ix_CKeyDetail_parent]");
database.shutdown(true, false);
}
private void assert_compound_pk(ModelContainer model) {
MTable item = model.getTable("item");
assertThat(item).isNotNull();
assertThat(item.primaryKeyColumns()).hasSize(2);
}
private void assert_discriminatorColumn_explicit(ModelContainer model) {
MTable configuration = model.getTable("configuration");
MColumn discTypeColumn = configuration.getColumn("type");
assertThat(discTypeColumn.getType()).isEqualTo("varchar(21)");
assertThat(discTypeColumn.isNotnull()).isTrue();
}
private void assert_discriminatorColumn_implied(ModelContainer model) {
MTable configuration = model.getTable("bar");
MColumn discTypeColumn = configuration.getColumn("bar_type");
assertThat(discTypeColumn.getType()).isEqualTo("varchar(31)");
assertThat(discTypeColumn.isNotnull()).isTrue();
}
private void assert_discriminatorColumn_length(ModelContainer model) {
MTable configuration = model.getTable("vehicle");
MColumn discTypeColumn = configuration.getColumn("dtype");
assertThat(discTypeColumn.getType()).isEqualTo("varchar(3)");
assertThat(discTypeColumn.isNotnull()).isTrue();
}
}
@@ -1,85 +0,0 @@
package io.ebeaninternal.dbmigration.model.build;
import io.ebean.BaseTestCase;
import io.ebean.EbeanServerFactory;
import io.ebean.config.ServerConfig;
import io.ebeaninternal.dbmigration.ddlgeneration.Helper;
import io.ebeaninternal.dbmigration.migration.Migration;
import io.ebeaninternal.dbmigration.migrationreader.MigrationXmlReader;
import io.ebeaninternal.dbmigration.model.CurrentModel;
import io.ebeaninternal.dbmigration.model.MTable;
import io.ebeaninternal.dbmigration.model.ModelContainer;
import io.ebeaninternal.api.SpiEbeanServer;
import org.tests.model.basic.CKeyAssoc;
import org.tests.model.basic.CKeyDetail;
import org.tests.model.basic.CKeyParent;
import org.tests.model.basic.CKeyParentId;
import org.junit.Test;
import java.io.IOException;
import static org.assertj.core.api.Assertions.assertThat;
public class ModelBuild_compoundKeyTest extends BaseTestCase {
private SpiEbeanServer getServer() {
ServerConfig config = new ServerConfig();
config.setName("h2");
config.loadFromProperties();
config.setName("h2other");
config.setDdlGenerate(false);
config.setDdlRun(false);
config.setDdlExtra(false);
config.setDefaultServer(false);
config.setRegister(false);
config.addClass(CKeyDetail.class);
config.addClass(CKeyParent.class);
config.addClass(CKeyAssoc.class);
config.addClass(CKeyParentId.class);
return (SpiEbeanServer) EbeanServerFactory.create(config);
}
@Test
public void test() throws IOException {
SpiEbeanServer ebeanServer = getServer();
CurrentModel currentModel = new CurrentModel(ebeanServer);
ModelContainer model = currentModel.read();
MTable parent = model.getTable("ckey_parent");
MTable detail = model.getTable("ckey_detail");
assertThat(parent).isNotNull();
assertThat(detail).isNotNull();
assertThat(parent.primaryKeyColumns()).hasSize(2);
assertThat(detail.getCompoundKeys()).hasSize(1);
String apply = Helper.asText(this, "/assert/ModelBuild_compoundKeyTest/apply.sql");
String createDdl = currentModel.getCreateDdl();
assertThat(createDdl).startsWith("-- Generated by ebean").endsWith(apply);
}
@Test
public void testFromMigration() throws IOException {
Migration migration = MigrationXmlReader.read("/container/test-compoundkey.xml");
SpiEbeanServer ebeanServer = getServer();
CurrentModel currentModel = new CurrentModel(ebeanServer);
currentModel.setChangeSet(migration.getChangeSet().get(0));
String createDdl = currentModel.getCreateDdl();
String apply = Helper.asText(this, "/assert/ModelBuild_compoundKeyTest/apply.sql");
assertThat(createDdl).startsWith("-- Generated by ebean").endsWith(apply);
}
}
@@ -1,68 +0,0 @@
package io.ebeaninternal.dbmigration.model.build;
import io.ebean.BaseTestCase;
import io.ebean.EbeanServerFactory;
import io.ebean.config.ServerConfig;
import io.ebeaninternal.dbmigration.ddlgeneration.DdlOptions;
import io.ebeaninternal.dbmigration.ddlgeneration.Helper;
import io.ebeaninternal.dbmigration.model.CurrentModel;
import io.ebeaninternal.api.SpiEbeanServer;
import org.tests.model.basic.Person;
import org.tests.model.basic.Phone;
import org.junit.Test;
import java.io.IOException;
import static org.assertj.core.api.Assertions.assertThat;
public class ModelBuild_explicitSequencesTest extends BaseTestCase {
private SpiEbeanServer getServer(boolean postgres) {
ServerConfig config = new ServerConfig();
config.setName("h2");
config.loadFromProperties();
config.setName("h2other");
config.setDdlGenerate(false);
config.setDdlRun(false);
config.setDdlExtra(false);
config.setDefaultServer(false);
config.setRegister(false);
config.setDatabasePlatformName(postgres ? "postgres" : "h2");
config.addClass(Person.class);
config.addClass(Phone.class);
return (SpiEbeanServer) EbeanServerFactory.create(config);
}
@Test
public void test() throws IOException {
SpiEbeanServer ebeanServer = getServer(false);
CurrentModel currentModel = new CurrentModel(ebeanServer);
String apply = currentModel.getCreateDdl();
assertThat(apply)
.startsWith("-- Generated by ebean")
.endsWith(Helper.asText(this, "/assert/ModelBuild_explicitSequencesTest/apply.sql"));
}
@Test
public void test_asPostgres() throws IOException {
SpiEbeanServer ebeanServer = getServer(true);
CurrentModel currentModel = new CurrentModel(ebeanServer);
final DdlOptions ddlOptions = currentModel.getDdlOptions();
ddlOptions.setForeignKeySkipCheck(true);
String apply = currentModel.getCreateDdl();
assertThat(apply)
.startsWith("-- Generated by ebean")
.endsWith(Helper.asText(this, "/assert/ModelBuild_explicitSequencesTest/pg-apply.sql"));
}
}
@@ -1,12 +0,0 @@
create table foo (
col1 varchar(4) generated by default as identity not null,
col2 varchar(30) not null,
col3 varchar(30) not null,
constraint pk_foo primary key (col1)
);
comment on table foo is 'comment';
alter table foo add column added_to_foo varchar(20);
alter table foo drop column col2;
@@ -1,2 +0,0 @@
drop table if exists foo;
@@ -1,8 +0,0 @@
create table mytable (
id integer generated by default as identity not null,
status varchar(1) not null,
order_id integer not null,
constraint ck_mytable_status check (status in ('A','B')),
constraint pk_mytable primary key (id)
);
@@ -1,3 +0,0 @@
create index ix_mytable_order_id on mytable (order_id);
alter table mytable add constraint fk_mytable_order_id foreign key (order_id) references orders (id) on delete restrict on update restrict;
@@ -1,2 +0,0 @@
drop table if exists mytable;
@@ -1,3 +0,0 @@
alter table mytable drop constraint if exists fk_mytable_order_id;
drop index if exists ix_mytable_order_id;
@@ -1,29 +0,0 @@
create table ckey_assoc (
id integer generated by default as identity not null,
assoc_one varchar(255),
constraint pk_ckey_assoc primary key (id)
);
create table ckey_detail (
id integer generated by default as identity not null,
something varchar(255),
one_key integer,
two_key varchar(127),
constraint pk_ckey_detail primary key (id)
);
create table ckey_parent (
one_key integer not null,
two_key varchar(127) not null,
name varchar(255),
assoc_id integer,
version integer not null,
constraint pk_ckey_parent primary key (one_key,two_key)
);
create index ix_ckey_detail_parent on ckey_detail (one_key,two_key);
alter table ckey_detail add constraint fk_ckey_detail_parent foreign key (one_key,two_key) references ckey_parent (one_key,two_key) on delete restrict on update restrict;
create index ix_ckey_parent_assoc_id on ckey_parent (assoc_id);
alter table ckey_parent add constraint fk_ckey_parent_assoc_id foreign key (assoc_id) references ckey_assoc (id) on delete restrict on update restrict;
@@ -1,18 +0,0 @@
create table persons (
id bigint generated by default as identity (start with 1000 increment by 40) not null,
surname varchar(64) not null,
name varchar(64) not null,
constraint pk_persons primary key (id)
);
create table phones (
id bigint generated by default as identity not null,
phone_number varchar(7) not null,
person_id bigint not null,
constraint uq_phones_phone_number unique (phone_number),
constraint pk_phones primary key (id)
);
create index ix_phones_person_id on phones (person_id);
alter table phones add constraint fk_phones_person_id foreign key (person_id) references persons (id) on delete restrict on update restrict;
@@ -1,18 +0,0 @@
create table persons (
id bigint generated by default as identity (start with 1000 increment by 40) not null,
surname varchar(64) not null,
name varchar(64) not null,
constraint pk_persons primary key (id)
);
create table phones (
id bigint generated by default as identity not null,
phone_number varchar(7) not null,
person_id bigint not null,
constraint uq_phones_phone_number unique (phone_number),
constraint pk_phones primary key (id)
);
create index ix_phones_person_id on phones (person_id);
alter table phones add constraint fk_phones_person_id foreign key (person_id) references persons (id) on delete restrict on update restrict not valid;
File diff suppressed because it is too large. Load diff
@@ -1,424 +0,0 @@
drop table asimple_bean;
drop sequence asimple_bean_seq;
drop table bar;
drop sequence bar_seq;
drop table oto_account;
drop sequence oto_account_seq;
drop table o_address;
drop sequence o_address_seq;
drop table address;
drop sequence address_seq;
drop table animals;
drop sequence animals_seq;
drop table animal_shelter;
drop sequence animal_shelter_seq;
drop table article;
drop sequence article_seq;
drop table attribute;
drop sequence attribute_seq;
drop table attribute_holder;
drop sequence attribute_holder_seq;
drop table audit_log;
drop sequence audit_log_seq;
drop table bbookmark;
drop sequence bbookmark_seq;
drop table bbookmark_user;
drop sequence bbookmark_user_seq;
drop table bsimple_with_gen;
drop sequence bsimple_with_gen_seq;
drop table bwith_qident;
drop sequence bwith_qident_seq;
drop table basic_joda_entity;
drop sequence basic_joda_entity_seq;
drop table bean_with_time_zone;
drop sequence bean_with_time_zone_seq;
drop table drel_booking;
drop sequence drel_booking_seq;
drop table ckey_assoc;
drop sequence ckey_assoc_seq;
drop table ckey_detail;
drop sequence ckey_detail_seq;
drop table ckey_parent;
drop table calculation_result;
drop sequence calculation_result_seq;
drop table cao_bean;
drop table sa_car;
drop sequence sa_car_seq;
drop table sp_car_car;
drop sequence sp_car_car_seq;
drop table sp_car_car_wheels;
drop table car_accessory;
drop sequence car_accessory_seq;
drop table configuration;
drop sequence configuration_seq;
drop table configurations;
drop sequence configurations_seq;
drop table contact;
drop sequence contact_seq;
drop table contact_group;
drop sequence contact_group_seq;
drop table contact_note;
drop sequence contact_note_seq;
drop table c_conversation;
drop sequence c_conversation_seq;
drop table o_country;
drop sequence o_country_seq;
drop table o_customer;
drop sequence o_customer_seq;
drop table dexh_entity;
drop sequence dexh_entity_seq;
drop table dperson;
drop sequence dperson_seq;
drop table rawinherit_data;
drop sequence rawinherit_data_seq;
drop table e_basic;
drop sequence e_basic_seq;
drop table ebasic_clob;
drop sequence ebasic_clob_seq;
drop table ebasic_clob_fetch_eager;
drop sequence ebasic_clob_fetch_eager_seq;
drop table ebasic_clob_no_ver;
drop sequence ebasic_clob_no_ver_seq;
drop table e_basicenc;
drop sequence e_basicenc_seq;
drop table e_basicenc_bin;
drop sequence e_basicenc_bin_seq;
drop table e_basic_enum_id;
drop sequence e_basic_enum_id_seq;
drop table ebasic_json_map;
drop sequence ebasic_json_map_seq;
drop table ebasic_json_map_blob;
drop sequence ebasic_json_map_blob_seq;
drop table ebasic_json_map_json_b;
drop sequence ebasic_json_map_json_b_seq;
drop table ebasic_json_map_varchar;
drop sequence ebasic_json_map_varchar_seq;
drop table ebasic_json_node;
drop sequence ebasic_json_node_seq;
drop table ebasic_json_node_blob;
drop sequence ebasic_json_node_blob_seq;
drop table ebasic_json_node_json_b;
drop sequence ebasic_json_node_json_b_seq;
drop table ebasic_json_node_varchar;
drop sequence ebasic_json_node_varchar_seq;
drop table e_basic_ndc;
drop sequence e_basic_ndc_seq;
drop table e_basicver;
drop sequence e_basicver_seq;
drop table e_basic_withlife;
drop sequence e_basic_withlife_seq;
drop table e_basicverucon;
drop sequence e_basicverucon_seq;
drop table eemb_inner;
drop sequence eemb_inner_seq;
drop table eemb_outer;
drop sequence eemb_outer_seq;
drop table egen_props;
drop sequence egen_props_seq;
drop table einvoice;
drop sequence einvoice_seq;
drop table e_main;
drop sequence e_main_seq;
drop table enull_collection;
drop sequence enull_collection_seq;
drop table enull_collection_detail;
drop sequence enull_collection_detail_seq;
drop table eopt_one_a;
drop sequence eopt_one_a_seq;
drop table eopt_one_b;
drop sequence eopt_one_b_seq;
drop table eopt_one_c;
drop sequence eopt_one_c_seq;
drop table eperson;
drop sequence eperson_seq;
drop table esimple;
drop table esome_type;
drop sequence esome_type_seq;
drop table etrans_many;
drop sequence etrans_many_seq;
drop table evanilla_collection;
drop sequence evanilla_collection_seq;
drop table evanilla_collection_detail;
drop sequence evanilla_collection_detail_seq;
drop table ewho_props;
drop sequence ewho_props_seq;
drop table e_withinet;
drop sequence e_withinet_seq;
drop table td_child;
drop sequence td_child_seq;
drop table td_parent;
drop sequence td_parent_seq;
drop table feature_desc;
drop sequence feature_desc_seq;
drop table f_first;
drop sequence f_first_seq;
drop table foo;
drop sequence foo_seq;
drop table gen_key_identity;
drop table gen_key_sequence;
drop sequence SEQ;
drop table gen_key_table;
drop sequence gen_key_table_seq;
drop table c_group;
drop sequence c_group_seq;
drop table imrelated;
drop sequence imrelated_seq;
drop table imroot;
drop sequence imroot_seq;
drop table ixresource;
drop table info_company;
drop sequence info_company_seq;
drop table info_contact;
drop sequence info_contact_seq;
drop table info_customer;
drop sequence info_customer_seq;
drop table inner_report;
drop sequence inner_report_seq;
drop table drel_invoice;
drop sequence drel_invoice_seq;
drop table item;
drop table level1;
drop sequence level1_seq;
drop table level1_level4;
drop table level1_level2;
drop table level2;
drop sequence level2_seq;
drop table level2_level3;
drop table level3;
drop sequence level3_seq;
drop table level4;
drop sequence level4_seq;
drop table la_attr_value;
drop sequence la_attr_value_seq;
drop table la_attr_value_attribute;
drop table mmedia;
drop sequence mmedia_seq;
drop table non_updateprop;
drop sequence non_updateprop_seq;
drop table mprinter;
drop sequence mprinter_seq;
drop table mprinter_state;
drop sequence mprinter_state_seq;
drop table mprofile;
drop sequence mprofile_seq;
drop table mprotected_construct_bean;
drop sequence mprotected_construct_bean_seq;
drop table mrole;
drop sequence mrole_seq;
drop table mrole_muser;
drop table msome_other;
drop sequence msome_other_seq;
drop table muser;
drop sequence muser_seq;
drop table muser_type;
drop sequence muser_type_seq;
drop table map_super_actual;
drop sequence map_super_actual_seq;
drop table c_message;
drop sequence c_message_seq;
drop table mnoc_role;
drop sequence mnoc_role_seq;
drop table mnoc_user;
drop sequence mnoc_user_seq;
drop table mnoc_user_mnoc_role;
drop table mp_role;
drop sequence mp_role_seq;
drop table mp_user;
drop sequence mp_user_seq;
drop table my_lob_size;
drop sequence my_lob_size_seq;
drop table my_lob_size_join_many;
drop sequence my_lob_size_join_many_seq;
drop table noidbean;
drop table o_cached_bean;
drop sequence o_cached_bean_seq;
drop table o_cached_bean_country;
drop table o_cached_bean_child;
drop sequence o_cached_bean_child_seq;
drop table ocar;
drop sequence ocar_seq;
drop table oengine;
drop table ogear_box;
drop table o_order;
drop sequence o_order_seq;
drop table o_order_detail;
drop sequence o_order_detail_seq;
drop table s_orders;
drop sequence s_orders_seq;
drop table s_order_items;
drop sequence s_order_items_seq;
drop table or_order_ship;
drop sequence or_order_ship_seq;
drop table oto_child;
drop sequence oto_child_seq;
drop table oto_master;
drop sequence oto_master_seq;
drop table pfile;
drop sequence pfile_seq;
drop table pfile_content;
drop sequence pfile_content_seq;
drop table paggview;
drop table pallet_location;
drop sequence pallet_location_seq;
drop table parcel;
drop sequence parcel_seq;
drop table parcel_location;
drop sequence parcel_location_seq;
drop table rawinherit_parent;
drop sequence rawinherit_parent_seq;
drop table rawinherit_parent_rawinherit_dat;
drop table c_participation;
drop sequence c_participation_seq;
drop table mt_permission;
drop table persistent_file;
drop sequence persistent_file_seq;
drop table persistent_file_content;
drop sequence persistent_file_content_seq;
drop table PERSONS;
drop sequence PERSONS_seq;
drop table person;
drop sequence person_seq;
drop table PHONES;
drop sequence phones_seq;
drop table o_product;
drop sequence o_product_seq;
drop table pp;
drop table pp_to_ww;
drop table rcustomer;
drop table r_orders;
drop table region;
drop table ResourceFile;
drop sequence resourcefile_seq;
drop table mt_role;
drop table mt_role_permission;
drop table em_role;
drop sequence em_role_seq;
drop table f_second;
drop sequence f_second_seq;
drop table section;
drop sequence section_seq;
drop table self_parent;
drop sequence self_parent_seq;
drop table self_ref_customer;
drop sequence self_ref_customer_seq;
drop table self_ref_example;
drop sequence self_ref_example_seq;
drop table some_enum_bean;
drop sequence some_enum_bean_seq;
drop table some_file_bean;
drop sequence some_file_bean_seq;
drop table some_new_types_bean;
drop sequence some_new_types_bean_seq;
drop table some_period_bean;
drop sequence some_period_bean_seq;
drop table stockforecast;
drop sequence stockforecast_seq;
drop table sub_section;
drop sequence sub_section_seq;
drop table sub_type;
drop sequence sub_type_seq;
drop table tbytes_only;
drop sequence tbytes_only_seq;
drop table tcar;
drop sequence tcar_seq;
drop table tint_root;
drop sequence tint_root_seq;
drop table tjoda_entity;
drop sequence tjoda_entity_seq;
drop table t_mapsuper1;
drop sequence t_mapsuper1_seq;
drop table t_oneb;
drop sequence t_oneb_seq;
drop table t_detail_with_other_namexxxyy;
drop sequence t_atable_detail_seq;
drop table ts_detail_two;
drop sequence ts_detail_two_seq;
drop table t_atable_thatisrelatively;
drop sequence t_atable_master_seq;
drop table ts_master_two;
drop sequence ts_master_two_seq;
drop table tuuid_entity;
drop table twheel;
drop sequence twheel_seq;
drop table twith_pre_insert;
drop sequence twith_pre_insert_seq;
drop table mt_tenant;
drop table sa_tire;
drop sequence sa_tire_seq;
drop table tire;
drop sequence tire_seq;
drop table trip;
drop sequence trip_seq;
drop table truck_ref;
drop sequence truck_ref_seq;
drop table type;
drop table ut_detail;
drop sequence ut_detail_seq;
drop table ut_master;
drop sequence ut_master_seq;
drop table uuone;
drop table uutwo;
drop table em_user;
drop sequence em_user_seq;
drop table tx_user;
drop sequence tx_user_seq;
drop table c_user;
drop sequence c_user_seq;
drop table oto_user;
drop sequence oto_user_seq;
drop table em_user_role;
drop table vehicle;
drop sequence vehicle_seq;
drop table vehicle_driver;
drop sequence vehicle_driver_seq;
drop table warehouses;
drop sequence warehouses_seq;
drop table WarehousesShippingZones;
drop table sa_wheel;
drop sequence sa_wheel_seq;
drop table sp_car_wheel;
drop sequence sp_car_wheel_seq;
drop table wheel;
drop sequence wheel_seq;
drop table with_zero;
drop sequence with_zero_seq;
drop table parent;
drop sequence parent_seq;
drop table wview;
drop table zones;
drop sequence zones_seq;
File diff suppressed because it is too large. Load diff
@@ -1,357 +0,0 @@
alter table bar add constraint fk_bar_foo_id foreign key (foo_id) references foo (foo_id) on delete restrict on update restrict;
create index ix_bar_foo_id on bar (foo_id);
alter table o_address add constraint fk_o_address_country_code foreign key (country_code) references o_country (code) on delete restrict on update restrict;
create index ix_o_address_country_code on o_address (country_code);
alter table animals add constraint fk_animals_shelter_id foreign key (shelter_id) references animal_shelter (id) on delete restrict on update restrict;
create index ix_animals_shelter_id on animals (shelter_id);
alter table attribute add constraint fk_attribute_attribute_holder_id foreign key (attribute_holder_id) references attribute_holder (id) on delete restrict on update restrict;
create index ix_attribute_attribute_holder_id on attribute (attribute_holder_id);
alter table bbookmark add constraint fk_bbookmark_user_id foreign key (user_id) references bbookmark_user (id) on delete restrict on update restrict;
create index ix_bbookmark_user_id on bbookmark (user_id);
alter table drel_booking add constraint fk_drel_booking_agent_invoice foreign key (agent_invoice) references drel_invoice (id) on delete restrict on update restrict;
create index ix_drel_booking_agent_invoice on drel_booking (agent_invoice);
alter table drel_booking add constraint fk_drel_booking_client_invoice foreign key (client_invoice) references drel_invoice (id) on delete restrict on update restrict;
create index ix_drel_booking_client_invoice on drel_booking (client_invoice);
alter table ckey_detail add constraint fk_ckey_detail_ckey_parent foreign key (one_key,two_key) references ckey_parent (one_key,two_key) on delete restrict on update restrict;
create index ix_ckey_detail_one_key_two_key on ckey_detail (one_key,two_key);
alter table ckey_parent add constraint fk_ckey_parent_assoc_id foreign key (assoc_id) references ckey_assoc (id) on delete restrict on update restrict;
create index ix_ckey_parent_assoc_id on ckey_parent (assoc_id);
alter table calculation_result add constraint fk_calculation_result_product_configuration_id foreign key (product_configuration_ID) references configuration (ID) on delete restrict on update restrict;
create index ix_calculation_result_product_configuration_id on calculation_result (product_configuration_ID);
alter table calculation_result add constraint fk_calculation_result_group_configuration_id foreign key (group_configuration_ID) references configuration (ID) on delete restrict on update restrict;
create index ix_calculation_result_group_configuration_id on calculation_result (group_configuration_ID);
alter table sp_car_car_wheels add constraint fk_sp_car_car_wheels_sp_car_car foreign key (car) references sp_car_car (id) on delete restrict on update restrict;
create index ix_sp_car_car_wheels_car on sp_car_car_wheels (car);
alter table sp_car_car_wheels add constraint fk_sp_car_car_wheels_sp_car_wheel foreign key (wheel) references sp_car_wheel (id) on delete restrict on update restrict;
create index ix_sp_car_car_wheels_wheel on sp_car_car_wheels (wheel);
alter table car_accessory add constraint fk_car_accessory_car_id foreign key (car_id) references vehicle (id) on delete restrict on update restrict;
create index ix_car_accessory_car_id on car_accessory (car_id);
alter table configuration add constraint fk_configuration_configurations_id foreign key (configurations_ID) references configurations (ID) on delete restrict on update restrict;
create index ix_configuration_configurations_id on configuration (configurations_ID);
alter table contact add constraint fk_contact_customer_id foreign key (customer_id) references o_customer (id) on delete restrict on update restrict;
create index ix_contact_customer_id on contact (customer_id);
alter table contact add constraint fk_contact_group_id foreign key (group_id) references contact_group (id) on delete restrict on update restrict;
create index ix_contact_group_id on contact (group_id);
alter table contact_note add constraint fk_contact_note_contact_id foreign key (contact_id) references contact (id) on delete restrict on update restrict;
create index ix_contact_note_contact_id on contact_note (contact_id);
alter table c_conversation add constraint fk_c_conversation_group_id foreign key (group_id) references c_group (id) on delete restrict on update restrict;
create index ix_c_conversation_group_id on c_conversation (group_id);
alter table o_customer add constraint fk_o_customer_billing_address_id foreign key (billing_address_id) references o_address (id) on delete restrict on update restrict;
create index ix_o_customer_billing_address_id on o_customer (billing_address_id);
alter table o_customer add constraint fk_o_customer_shipping_address_id foreign key (shipping_address_id) references o_address (id) on delete restrict on update restrict;
create index ix_o_customer_shipping_address_id on o_customer (shipping_address_id);
alter table eemb_inner add constraint fk_eemb_inner_outer_id foreign key (outer_id) references eemb_outer (id) on delete restrict on update restrict;
create index ix_eemb_inner_outer_id on eemb_inner (outer_id);
alter table einvoice add constraint fk_einvoice_person_id foreign key (person_id) references eperson (id) on delete restrict on update restrict;
create index ix_einvoice_person_id on einvoice (person_id);
alter table enull_collection_detail add constraint fk_enull_collection_detail_enull_collection_id foreign key (enull_collection_id) references enull_collection (id) on delete restrict on update restrict;
create index ix_enull_collection_detail_enull_collection_id on enull_collection_detail (enull_collection_id);
alter table eopt_one_a add constraint fk_eopt_one_a_b_id foreign key (b_id) references eopt_one_b (id) on delete restrict on update restrict;
create index ix_eopt_one_a_b_id on eopt_one_a (b_id);
alter table eopt_one_b add constraint fk_eopt_one_b_c_id foreign key (c_id) references eopt_one_c (id) on delete restrict on update restrict;
create index ix_eopt_one_b_c_id on eopt_one_b (c_id);
alter table evanilla_collection_detail add constraint fk_evanilla_collection_detail_evanilla_collection_id foreign key (evanilla_collection_id) references evanilla_collection (id) on delete restrict on update restrict;
create index ix_evanilla_collection_detail_evanilla_collection_id on evanilla_collection_detail (evanilla_collection_id);
alter table td_child add constraint fk_td_child_parent_id foreign key (parent_id) references td_parent (parent_id) on delete restrict on update restrict;
create index ix_td_child_parent_id on td_child (parent_id);
alter table imrelated add constraint fk_imrelated_owner_id foreign key (owner_id) references imroot (id) on delete restrict on update restrict;
create index ix_imrelated_owner_id on imrelated (owner_id);
alter table info_contact add constraint fk_info_contact_company_id foreign key (company_id) references info_company (id) on delete restrict on update restrict;
create index ix_info_contact_company_id on info_contact (company_id);
alter table info_customer add constraint fk_info_customer_company_id foreign key (company_id) references info_company (id) on delete restrict on update restrict;
create index ix_info_customer_company_id on info_customer (company_id);
alter table inner_report add constraint fk_inner_report_forecast_id foreign key (forecast_id) references stockforecast (id) on delete restrict on update restrict;
create index ix_inner_report_forecast_id on inner_report (forecast_id);
alter table drel_invoice add constraint fk_drel_invoice_booking foreign key (booking) references drel_booking (id) on delete restrict on update restrict;
create index ix_drel_invoice_booking on drel_invoice (booking);
alter table item add constraint fk_item_type foreign key (customer,type) references type (customer,type) on delete restrict on update restrict;
create index ix_item_customer_type on item (customer,type);
alter table item add constraint fk_item_region foreign key (customer,region) references region (customer,type) on delete restrict on update restrict;
create index ix_item_customer_region on item (customer,region);
alter table level1_level4 add constraint fk_level1_level4_level1 foreign key (level1_id) references level1 (id) on delete restrict on update restrict;
create index ix_level1_level4_level1_id on level1_level4 (level1_id);
alter table level1_level4 add constraint fk_level1_level4_level4 foreign key (level4_id) references level4 (id) on delete restrict on update restrict;
create index ix_level1_level4_level4_id on level1_level4 (level4_id);
alter table level1_level2 add constraint fk_level1_level2_level1 foreign key (level1_id) references level1 (id) on delete restrict on update restrict;
create index ix_level1_level2_level1_id on level1_level2 (level1_id);
alter table level1_level2 add constraint fk_level1_level2_level2 foreign key (level2_id) references level2 (id) on delete restrict on update restrict;
create index ix_level1_level2_level2_id on level1_level2 (level2_id);
alter table level2_level3 add constraint fk_level2_level3_level2 foreign key (level2_id) references level2 (id) on delete restrict on update restrict;
create index ix_level2_level3_level2_id on level2_level3 (level2_id);
alter table level2_level3 add constraint fk_level2_level3_level3 foreign key (level3_id) references level3 (id) on delete restrict on update restrict;
create index ix_level2_level3_level3_id on level2_level3 (level3_id);
alter table la_attr_value_attribute add constraint fk_la_attr_value_attribute_la_attr_value foreign key (la_attr_value_id) references la_attr_value (id) on delete restrict on update restrict;
create index ix_la_attr_value_attribute_la_attr_value_id on la_attr_value_attribute (la_attr_value_id);
alter table la_attr_value_attribute add constraint fk_la_attr_value_attribute_attribute foreign key (attribute_id) references attribute (id) on delete restrict on update restrict;
create index ix_la_attr_value_attribute_attribute_id on la_attr_value_attribute (attribute_id);
alter table mprinter add constraint fk_mprinter_current_state_id foreign key (current_state_id) references mprinter_state (id) on delete restrict on update restrict;
create index ix_mprinter_current_state_id on mprinter (current_state_id);
alter table mprinter add constraint fk_mprinter_last_swap_cyan_id foreign key (last_swap_cyan_id) references mprinter_state (id) on delete restrict on update restrict;
create index ix_mprinter_last_swap_cyan_id on mprinter (last_swap_cyan_id);
alter table mprinter add constraint fk_mprinter_last_swap_magenta_id foreign key (last_swap_magenta_id) references mprinter_state (id) on delete restrict on update restrict;
create index ix_mprinter_last_swap_magenta_id on mprinter (last_swap_magenta_id);
alter table mprinter add constraint fk_mprinter_last_swap_yellow_id foreign key (last_swap_yellow_id) references mprinter_state (id) on delete restrict on update restrict;
create index ix_mprinter_last_swap_yellow_id on mprinter (last_swap_yellow_id);
alter table mprinter add constraint fk_mprinter_last_swap_black_id foreign key (last_swap_black_id) references mprinter_state (id) on delete restrict on update restrict;
create index ix_mprinter_last_swap_black_id on mprinter (last_swap_black_id);
alter table mprinter_state add constraint fk_mprinter_state_printer_id foreign key (printer_id) references mprinter (id) on delete restrict on update restrict;
create index ix_mprinter_state_printer_id on mprinter_state (printer_id);
alter table mprofile add constraint fk_mprofile_picture_id foreign key (picture_id) references mmedia (id) on delete restrict on update restrict;
create index ix_mprofile_picture_id on mprofile (picture_id);
alter table mrole_muser add constraint fk_mrole_muser_mrole foreign key (mrole_roleid) references mrole (roleid) on delete restrict on update restrict;
create index ix_mrole_muser_mrole_roleid on mrole_muser (mrole_roleid);
alter table mrole_muser add constraint fk_mrole_muser_muser foreign key (muser_userid) references muser (userid) on delete restrict on update restrict;
create index ix_mrole_muser_muser_userid on mrole_muser (muser_userid);
alter table muser add constraint fk_muser_user_type_id foreign key (user_type_id) references muser_type (id) on delete restrict on update restrict;
create index ix_muser_user_type_id on muser (user_type_id);
alter table c_message add constraint fk_c_message_conversation_id foreign key (conversation_id) references c_conversation (id) on delete restrict on update restrict;
create index ix_c_message_conversation_id on c_message (conversation_id);
alter table c_message add constraint fk_c_message_user_id foreign key (user_id) references c_user (id) on delete restrict on update restrict;
create index ix_c_message_user_id on c_message (user_id);
alter table mnoc_user_mnoc_role add constraint fk_mnoc_user_mnoc_role_mnoc_user foreign key (mnoc_user_user_id) references mnoc_user (user_id) on delete restrict on update restrict;
create index ix_mnoc_user_mnoc_role_mnoc_user_user_id on mnoc_user_mnoc_role (mnoc_user_user_id);
alter table mnoc_user_mnoc_role add constraint fk_mnoc_user_mnoc_role_mnoc_role foreign key (mnoc_role_role_id) references mnoc_role (role_id) on delete restrict on update restrict;
create index ix_mnoc_user_mnoc_role_mnoc_role_role_id on mnoc_user_mnoc_role (mnoc_role_role_id);
alter table mp_role add constraint fk_mp_role_mp_user_id foreign key (mp_user_id) references mp_user (id) on delete restrict on update restrict;
create index ix_mp_role_mp_user_id on mp_role (mp_user_id);
alter table my_lob_size_join_many add constraint fk_my_lob_size_join_many_parent_id foreign key (parent_id) references my_lob_size (id) on delete restrict on update restrict;
create index ix_my_lob_size_join_many_parent_id on my_lob_size_join_many (parent_id);
alter table o_cached_bean_country add constraint fk_o_cached_bean_country_o_cached_bean foreign key (o_cached_bean_id) references o_cached_bean (id) on delete restrict on update restrict;
create index ix_o_cached_bean_country_o_cached_bean_id on o_cached_bean_country (o_cached_bean_id);
alter table o_cached_bean_country add constraint fk_o_cached_bean_country_o_country foreign key (o_country_code) references o_country (code) on delete restrict on update restrict;
create index ix_o_cached_bean_country_o_country_code on o_cached_bean_country (o_country_code);
alter table o_cached_bean_child add constraint fk_o_cached_bean_child_cached_bean_id foreign key (cached_bean_id) references o_cached_bean (id) on delete restrict on update restrict;
create index ix_o_cached_bean_child_cached_bean_id on o_cached_bean_child (cached_bean_id);
alter table oengine add constraint fk_oengine_car_id foreign key (car_id) references ocar (id) on delete restrict on update restrict;
create index ix_oengine_car_id on oengine (car_id);
alter table ogear_box add constraint fk_ogear_box_car_id foreign key (car_id) references ocar (id) on delete restrict on update restrict;
create index ix_ogear_box_car_id on ogear_box (car_id);
alter table o_order add constraint fk_o_order_kcustomer_id foreign key (kcustomer_id) references o_customer (id) on delete restrict on update restrict;
create index ix_o_order_kcustomer_id on o_order (kcustomer_id);
alter table o_order_detail add constraint fk_o_order_detail_order_id foreign key (order_id) references o_order (id) on delete restrict on update restrict;
create index ix_o_order_detail_order_id on o_order_detail (order_id);
alter table o_order_detail add constraint fk_o_order_detail_product_id foreign key (product_id) references o_product (id) on delete restrict on update restrict;
create index ix_o_order_detail_product_id on o_order_detail (product_id);
alter table s_order_items add constraint fk_s_order_items_order_uuid foreign key (order_uuid) references s_orders (uuid) on delete restrict on update restrict;
create index ix_s_order_items_order_uuid on s_order_items (order_uuid);
alter table or_order_ship add constraint fk_or_order_ship_order_id foreign key (order_id) references o_order (id) on delete restrict on update restrict;
create index ix_or_order_ship_order_id on or_order_ship (order_id);
alter table oto_child add constraint fk_oto_child_master_id foreign key (master_id) references oto_master (id) on delete restrict on update restrict;
create index ix_oto_child_master_id on oto_child (master_id);
alter table pfile add constraint fk_pfile_file_content_id foreign key (file_content_id) references pfile_content (id) on delete restrict on update restrict;
create index ix_pfile_file_content_id on pfile (file_content_id);
alter table pfile add constraint fk_pfile_file_content2_id foreign key (file_content2_id) references pfile_content (id) on delete restrict on update restrict;
create index ix_pfile_file_content2_id on pfile (file_content2_id);
alter table paggview add constraint fk_paggview_pview_id foreign key (pview_id) references pp (id) on delete restrict on update restrict;
create index ix_paggview_pview_id on paggview (pview_id);
alter table pallet_location add constraint fk_pallet_location_zone_sid foreign key (ZONE_SID) references zones (ID) on delete restrict on update restrict;
create index ix_pallet_location_zone_sid on pallet_location (ZONE_SID);
alter table parcel_location add constraint fk_parcel_location_parcelid foreign key (parcelId) references parcel (parcelId) on delete restrict on update restrict;
create index ix_parcel_location_parcelid on parcel_location (parcelId);
alter table rawinherit_parent_rawinherit_dat add constraint fk_rawinherit_parent_rawinherit_dat_rawinherit_parent foreign key (rawinherit_parent_id) references rawinherit_parent (id) on delete restrict on update restrict;
create index ix_rawinherit_parent_rawinherit_dat_rawinherit_parent_id on rawinherit_parent_rawinherit_dat (rawinherit_parent_id);
alter table rawinherit_parent_rawinherit_dat add constraint fk_rawinherit_parent_rawinherit_dat_rawinherit_data foreign key (rawinherit_data_id) references rawinherit_data (id) on delete restrict on update restrict;
create index ix_rawinherit_parent_rawinherit_dat_rawinherit_data_id on rawinherit_parent_rawinherit_dat (rawinherit_data_id);
alter table c_participation add constraint fk_c_participation_conversation_id foreign key (conversation_id) references c_conversation (id) on delete restrict on update restrict;
create index ix_c_participation_conversation_id on c_participation (conversation_id);
alter table c_participation add constraint fk_c_participation_user_id foreign key (user_id) references c_user (id) on delete restrict on update restrict;
create index ix_c_participation_user_id on c_participation (user_id);
alter table persistent_file_content add constraint fk_persistent_file_content_persistent_file_id foreign key (persistent_file_id) references persistent_file (id) on delete restrict on update restrict;
create index ix_persistent_file_content_persistent_file_id on persistent_file_content (persistent_file_id);
alter table person add constraint fk_person_default_address_oid foreign key (default_address_oid) references address (oid) on delete restrict on update restrict;
create index ix_person_default_address_oid on person (default_address_oid);
alter table PHONES add constraint fk_phones_person_id foreign key (PERSON_ID) references PERSONS (ID) on delete restrict on update restrict;
create index ix_phones_person_id on PHONES (PERSON_ID);
alter table pp_to_ww add constraint fk_pp_to_ww_pp foreign key (pp_id) references pp (id) on delete restrict on update restrict;
create index ix_pp_to_ww_pp_id on pp_to_ww (pp_id);
alter table pp_to_ww add constraint fk_pp_to_ww_wview foreign key (ww_id) references wview (id) on delete restrict on update restrict;
create index ix_pp_to_ww_ww_id on pp_to_ww (ww_id);
alter table r_orders add constraint fk_r_orders_rcustomer foreign key (company,customerName) references rcustomer (company,name) on delete restrict on update restrict;
create index ix_r_orders_company_customerName on r_orders (company,customerName);
alter table ResourceFile add constraint fk_resourcefile_parentresourcefileid foreign key (parentResourceFileId) references ResourceFile (id) on delete restrict on update restrict;
create index ix_resourcefile_parentresourcefileid on ResourceFile (parentResourceFileId);
alter table mt_role add constraint fk_mt_role_tenant_id foreign key (tenant_id) references mt_tenant (id) on delete restrict on update restrict;
create index ix_mt_role_tenant_id on mt_role (tenant_id);
alter table mt_role_permission add constraint fk_mt_role_permission_mt_role foreign key (mt_role_id) references mt_role (id) on delete restrict on update restrict;
create index ix_mt_role_permission_mt_role_id on mt_role_permission (mt_role_id);
alter table mt_role_permission add constraint fk_mt_role_permission_mt_permission foreign key (mt_permission_id) references mt_permission (id) on delete restrict on update restrict;
create index ix_mt_role_permission_mt_permission_id on mt_role_permission (mt_permission_id);
alter table f_second add constraint fk_f_second_first foreign key (first) references f_first (id) on delete restrict on update restrict;
create index ix_f_second_first on f_second (first);
alter table section add constraint fk_section_article_id foreign key (article_id) references article (id) on delete restrict on update restrict;
create index ix_section_article_id on section (article_id);
alter table self_parent add constraint fk_self_parent_parent_id foreign key (parent_id) references self_parent (id) on delete restrict on update restrict;
create index ix_self_parent_parent_id on self_parent (parent_id);
alter table self_ref_customer add constraint fk_self_ref_customer_referred_by_id foreign key (referred_by_id) references self_ref_customer (id) on delete restrict on update restrict;
create index ix_self_ref_customer_referred_by_id on self_ref_customer (referred_by_id);
alter table self_ref_example add constraint fk_self_ref_example_parent_id foreign key (parent_id) references self_ref_example (id) on delete restrict on update restrict;
create index ix_self_ref_example_parent_id on self_ref_example (parent_id);
alter table stockforecast add constraint fk_stockforecast_inner_report_id foreign key (inner_report_id) references inner_report (id) on delete restrict on update restrict;
create index ix_stockforecast_inner_report_id on stockforecast (inner_report_id);
alter table sub_section add constraint fk_sub_section_section_id foreign key (section_id) references section (id) on delete restrict on update restrict;
create index ix_sub_section_section_id on sub_section (section_id);
alter table t_detail_with_other_namexxxyy add constraint fk_t_detail_with_other_namexxxyy_master_id foreign key (master_id) references t_atable_thatisrelatively (id) on delete restrict on update restrict;
create index ix_t_detail_with_other_namexxxyy_master_id on t_detail_with_other_namexxxyy (master_id);
alter table ts_detail_two add constraint fk_ts_detail_two_master_id foreign key (master_id) references ts_master_two (id) on delete restrict on update restrict;
create index ix_ts_detail_two_master_id on ts_detail_two (master_id);
alter table twheel add constraint fk_twheel_owner_plate_no foreign key (owner_plate_no) references tcar (plate_no) on delete restrict on update restrict;
create index ix_twheel_owner_plate_no on twheel (owner_plate_no);
alter table tire add constraint fk_tire_wheel foreign key (wheel) references wheel (id) on delete restrict on update restrict;
create index ix_tire_wheel on tire (wheel);
alter table trip add constraint fk_trip_vehicle_driver_id foreign key (vehicle_driver_id) references vehicle_driver (id) on delete restrict on update restrict;
create index ix_trip_vehicle_driver_id on trip (vehicle_driver_id);
alter table trip add constraint fk_trip_address_id foreign key (address_id) references o_address (id) on delete restrict on update restrict;
create index ix_trip_address_id on trip (address_id);
alter table type add constraint fk_type_sub_type_id foreign key (sub_type_id) references sub_type (sub_type_id) on delete restrict on update restrict;
create index ix_type_sub_type_id on type (sub_type_id);
alter table ut_detail add constraint fk_ut_detail_utmaster_id foreign key (utmaster_id) references ut_master (id) on delete restrict on update restrict;
create index ix_ut_detail_utmaster_id on ut_detail (utmaster_id);
alter table uutwo add constraint fk_uutwo_master_id foreign key (master_id) references uuone (id) on delete restrict on update restrict;
create index ix_uutwo_master_id on uutwo (master_id);
alter table c_user add constraint fk_c_user_group_id foreign key (group_id) references c_group (id) on delete restrict on update restrict;
create index ix_c_user_group_id on c_user (group_id);
alter table oto_user add constraint fk_oto_user_account_id foreign key (account_id) references oto_account (id) on delete restrict on update restrict;
create index ix_oto_user_account_id on oto_user (account_id);
alter table em_user_role add constraint fk_em_user_role_user_id foreign key (user_id) references em_user (id) on delete restrict on update restrict;
create index ix_em_user_role_user_id on em_user_role (user_id);
alter table em_user_role add constraint fk_em_user_role_role_id foreign key (role_id) references em_role (id) on delete restrict on update restrict;
create index ix_em_user_role_role_id on em_user_role (role_id);
alter table vehicle add constraint fk_vehicle_truck_ref_id foreign key (truck_ref_id) references truck_ref (id) on delete restrict on update restrict;
create index ix_vehicle_truck_ref_id on vehicle (truck_ref_id);
alter table vehicle add constraint fk_vehicle_car_ref_id foreign key (car_ref_id) references truck_ref (id) on delete restrict on update restrict;
create index ix_vehicle_car_ref_id on vehicle (car_ref_id);
alter table vehicle_driver add constraint fk_vehicle_driver_vehicle_id foreign key (vehicle_id) references vehicle (id) on delete restrict on update restrict;
create index ix_vehicle_driver_vehicle_id on vehicle_driver (vehicle_id);
alter table vehicle_driver add constraint fk_vehicle_driver_address_id foreign key (address_id) references o_address (id) on delete restrict on update restrict;
create index ix_vehicle_driver_address_id on vehicle_driver (address_id);
alter table warehouses add constraint fk_warehouses_officezoneid foreign key (officeZoneId) references zones (ID) on delete restrict on update restrict;
create index ix_warehouses_officezoneid on warehouses (officeZoneId);
alter table WarehousesShippingZones add constraint fk_warehousesshippingzones_warehouses foreign key (warehouseId) references warehouses (ID) on delete restrict on update restrict;
create index ix_warehousesshippingzones_warehouseid on WarehousesShippingZones (warehouseId);
alter table WarehousesShippingZones add constraint fk_warehousesshippingzones_zones foreign key (shippingZoneId) references zones (ID) on delete restrict on update restrict;
create index ix_warehousesshippingzones_shippingzoneid on WarehousesShippingZones (shippingZoneId);
alter table sa_wheel add constraint fk_sa_wheel_tire foreign key (tire) references sa_tire (id) on delete restrict on update restrict;
create index ix_sa_wheel_tire on sa_wheel (tire);
alter table sa_wheel add constraint fk_sa_wheel_car foreign key (car) references sa_car (id) on delete restrict on update restrict;
create index ix_sa_wheel_car on sa_wheel (car);
alter table with_zero add constraint fk_with_zero_parent_id foreign key (parent_id) references parent (id) on delete restrict on update restrict;
create index ix_with_zero_parent_id on with_zero (parent_id);
@@ -1,357 +0,0 @@
drop index ix_bar_foo_id;
alter table bar drop constraint fk_bar_foo_id;
drop index ix_o_address_country_code;
alter table o_address drop constraint fk_o_address_country_code;
drop index ix_animals_shelter_id;
alter table animals drop constraint fk_animals_shelter_id;
drop index ix_attribute_attribute_holder_id;
alter table attribute drop constraint fk_attribute_attribute_holder_id;
drop index ix_bbookmark_user_id;
alter table bbookmark drop constraint fk_bbookmark_user_id;
drop index ix_drel_booking_agent_invoice;
alter table drel_booking drop constraint fk_drel_booking_agent_invoice;
drop index ix_drel_booking_client_invoice;
alter table drel_booking drop constraint fk_drel_booking_client_invoice;
drop index ix_ckey_detail_one_key_two_key;
alter table ckey_detail drop constraint fk_ckey_detail_ckey_parent;
drop index ix_ckey_parent_assoc_id;
alter table ckey_parent drop constraint fk_ckey_parent_assoc_id;
drop index ix_calculation_result_product_configuration_id;
alter table calculation_result drop constraint fk_calculation_result_product_configuration_id;
drop index ix_calculation_result_group_configuration_id;
alter table calculation_result drop constraint fk_calculation_result_group_configuration_id;
drop index ix_sp_car_car_wheels_car;
alter table sp_car_car_wheels drop constraint fk_sp_car_car_wheels_sp_car_car;
drop index ix_sp_car_car_wheels_wheel;
alter table sp_car_car_wheels drop constraint fk_sp_car_car_wheels_sp_car_wheel;
drop index ix_car_accessory_car_id;
alter table car_accessory drop constraint fk_car_accessory_car_id;
drop index ix_configuration_configurations_id;
alter table configuration drop constraint fk_configuration_configurations_id;
drop index ix_contact_customer_id;
alter table contact drop constraint fk_contact_customer_id;
drop index ix_contact_group_id;
alter table contact drop constraint fk_contact_group_id;
drop index ix_contact_note_contact_id;
alter table contact_note drop constraint fk_contact_note_contact_id;
drop index ix_c_conversation_group_id;
alter table c_conversation drop constraint fk_c_conversation_group_id;
drop index ix_o_customer_billing_address_id;
alter table o_customer drop constraint fk_o_customer_billing_address_id;
drop index ix_o_customer_shipping_address_id;
alter table o_customer drop constraint fk_o_customer_shipping_address_id;
drop index ix_eemb_inner_outer_id;
alter table eemb_inner drop constraint fk_eemb_inner_outer_id;
drop index ix_einvoice_person_id;
alter table einvoice drop constraint fk_einvoice_person_id;
drop index ix_enull_collection_detail_enull_collection_id;
alter table enull_collection_detail drop constraint fk_enull_collection_detail_enull_collection_id;
drop index ix_eopt_one_a_b_id;
alter table eopt_one_a drop constraint fk_eopt_one_a_b_id;
drop index ix_eopt_one_b_c_id;
alter table eopt_one_b drop constraint fk_eopt_one_b_c_id;
drop index ix_evanilla_collection_detail_evanilla_collection_id;
alter table evanilla_collection_detail drop constraint fk_evanilla_collection_detail_evanilla_collection_id;
drop index ix_td_child_parent_id;
alter table td_child drop constraint fk_td_child_parent_id;
drop index ix_imrelated_owner_id;
alter table imrelated drop constraint fk_imrelated_owner_id;
drop index ix_info_contact_company_id;
alter table info_contact drop constraint fk_info_contact_company_id;
drop index ix_info_customer_company_id;
alter table info_customer drop constraint fk_info_customer_company_id;
drop index ix_inner_report_forecast_id;
alter table inner_report drop constraint fk_inner_report_forecast_id;
drop index ix_drel_invoice_booking;
alter table drel_invoice drop constraint fk_drel_invoice_booking;
drop index ix_item_customer_type;
alter table item drop constraint fk_item_type;
drop index ix_item_customer_region;
alter table item drop constraint fk_item_region;
drop index ix_level1_level4_level1_id;
alter table level1_level4 drop constraint fk_level1_level4_level1;
drop index ix_level1_level4_level4_id;
alter table level1_level4 drop constraint fk_level1_level4_level4;
drop index ix_level1_level2_level1_id;
alter table level1_level2 drop constraint fk_level1_level2_level1;
drop index ix_level1_level2_level2_id;
alter table level1_level2 drop constraint fk_level1_level2_level2;
drop index ix_level2_level3_level2_id;
alter table level2_level3 drop constraint fk_level2_level3_level2;
drop index ix_level2_level3_level3_id;
alter table level2_level3 drop constraint fk_level2_level3_level3;
drop index ix_la_attr_value_attribute_la_attr_value_id;
alter table la_attr_value_attribute drop constraint fk_la_attr_value_attribute_la_attr_value;
drop index ix_la_attr_value_attribute_attribute_id;
alter table la_attr_value_attribute drop constraint fk_la_attr_value_attribute_attribute;
drop index ix_mprinter_current_state_id;
alter table mprinter drop constraint fk_mprinter_current_state_id;
drop index ix_mprinter_last_swap_cyan_id;
alter table mprinter drop constraint fk_mprinter_last_swap_cyan_id;
drop index ix_mprinter_last_swap_magenta_id;
alter table mprinter drop constraint fk_mprinter_last_swap_magenta_id;
drop index ix_mprinter_last_swap_yellow_id;
alter table mprinter drop constraint fk_mprinter_last_swap_yellow_id;
drop index ix_mprinter_last_swap_black_id;
alter table mprinter drop constraint fk_mprinter_last_swap_black_id;
drop index ix_mprinter_state_printer_id;
alter table mprinter_state drop constraint fk_mprinter_state_printer_id;
drop index ix_mprofile_picture_id;
alter table mprofile drop constraint fk_mprofile_picture_id;
drop index ix_mrole_muser_mrole_roleid;
alter table mrole_muser drop constraint fk_mrole_muser_mrole;
drop index ix_mrole_muser_muser_userid;
alter table mrole_muser drop constraint fk_mrole_muser_muser;
drop index ix_muser_user_type_id;
alter table muser drop constraint fk_muser_user_type_id;
drop index ix_c_message_conversation_id;
alter table c_message drop constraint fk_c_message_conversation_id;
drop index ix_c_message_user_id;
alter table c_message drop constraint fk_c_message_user_id;
drop index ix_mnoc_user_mnoc_role_mnoc_user_user_id;
alter table mnoc_user_mnoc_role drop constraint fk_mnoc_user_mnoc_role_mnoc_user;
drop index ix_mnoc_user_mnoc_role_mnoc_role_role_id;
alter table mnoc_user_mnoc_role drop constraint fk_mnoc_user_mnoc_role_mnoc_role;
drop index ix_mp_role_mp_user_id;
alter table mp_role drop constraint fk_mp_role_mp_user_id;
drop index ix_my_lob_size_join_many_parent_id;
alter table my_lob_size_join_many drop constraint fk_my_lob_size_join_many_parent_id;
drop index ix_o_cached_bean_country_o_cached_bean_id;
alter table o_cached_bean_country drop constraint fk_o_cached_bean_country_o_cached_bean;
drop index ix_o_cached_bean_country_o_country_code;
alter table o_cached_bean_country drop constraint fk_o_cached_bean_country_o_country;
drop index ix_o_cached_bean_child_cached_bean_id;
alter table o_cached_bean_child drop constraint fk_o_cached_bean_child_cached_bean_id;
drop index ix_oengine_car_id;
alter table oengine drop constraint fk_oengine_car_id;
drop index ix_ogear_box_car_id;
alter table ogear_box drop constraint fk_ogear_box_car_id;
drop index ix_o_order_kcustomer_id;
alter table o_order drop constraint fk_o_order_kcustomer_id;
drop index ix_o_order_detail_order_id;
alter table o_order_detail drop constraint fk_o_order_detail_order_id;
drop index ix_o_order_detail_product_id;
alter table o_order_detail drop constraint fk_o_order_detail_product_id;
drop index ix_s_order_items_order_uuid;
alter table s_order_items drop constraint fk_s_order_items_order_uuid;
drop index ix_or_order_ship_order_id;
alter table or_order_ship drop constraint fk_or_order_ship_order_id;
drop index ix_oto_child_master_id;
alter table oto_child drop constraint fk_oto_child_master_id;
drop index ix_pfile_file_content_id;
alter table pfile drop constraint fk_pfile_file_content_id;
drop index ix_pfile_file_content2_id;
alter table pfile drop constraint fk_pfile_file_content2_id;
drop index ix_paggview_pview_id;
alter table paggview drop constraint fk_paggview_pview_id;
drop index ix_pallet_location_zone_sid;
alter table pallet_location drop constraint fk_pallet_location_zone_sid;
drop index ix_parcel_location_parcelid;
alter table parcel_location drop constraint fk_parcel_location_parcelid;
drop index ix_rawinherit_parent_rawinherit_dat_rawinherit_parent_id;
alter table rawinherit_parent_rawinherit_dat drop constraint fk_rawinherit_parent_rawinherit_dat_rawinherit_parent;
drop index ix_rawinherit_parent_rawinherit_dat_rawinherit_data_id;
alter table rawinherit_parent_rawinherit_dat drop constraint fk_rawinherit_parent_rawinherit_dat_rawinherit_data;
drop index ix_c_participation_conversation_id;
alter table c_participation drop constraint fk_c_participation_conversation_id;
drop index ix_c_participation_user_id;
alter table c_participation drop constraint fk_c_participation_user_id;
drop index ix_persistent_file_content_persistent_file_id;
alter table persistent_file_content drop constraint fk_persistent_file_content_persistent_file_id;
drop index ix_person_default_address_oid;
alter table person drop constraint fk_person_default_address_oid;
drop index ix_phones_person_id;
alter table PHONES drop constraint fk_phones_person_id;
drop index ix_pp_to_ww_pp_id;
alter table pp_to_ww drop constraint fk_pp_to_ww_pp;
drop index ix_pp_to_ww_ww_id;
alter table pp_to_ww drop constraint fk_pp_to_ww_wview;
drop index ix_r_orders_company_customerName;
alter table r_orders drop constraint fk_r_orders_rcustomer;
drop index ix_resourcefile_parentresourcefileid;
alter table ResourceFile drop constraint fk_resourcefile_parentresourcefileid;
drop index ix_mt_role_tenant_id;
alter table mt_role drop constraint fk_mt_role_tenant_id;
drop index ix_mt_role_permission_mt_role_id;
alter table mt_role_permission drop constraint fk_mt_role_permission_mt_role;
drop index ix_mt_role_permission_mt_permission_id;
alter table mt_role_permission drop constraint fk_mt_role_permission_mt_permission;
drop index ix_f_second_first;
alter table f_second drop constraint fk_f_second_first;
drop index ix_section_article_id;
alter table section drop constraint fk_section_article_id;
drop index ix_self_parent_parent_id;
alter table self_parent drop constraint fk_self_parent_parent_id;
drop index ix_self_ref_customer_referred_by_id;
alter table self_ref_customer drop constraint fk_self_ref_customer_referred_by_id;
drop index ix_self_ref_example_parent_id;
alter table self_ref_example drop constraint fk_self_ref_example_parent_id;
drop index ix_stockforecast_inner_report_id;
alter table stockforecast drop constraint fk_stockforecast_inner_report_id;
drop index ix_sub_section_section_id;
alter table sub_section drop constraint fk_sub_section_section_id;
drop index ix_t_detail_with_other_namexxxyy_master_id;
alter table t_detail_with_other_namexxxyy drop constraint fk_t_detail_with_other_namexxxyy_master_id;
drop index ix_ts_detail_two_master_id;
alter table ts_detail_two drop constraint fk_ts_detail_two_master_id;
drop index ix_twheel_owner_plate_no;
alter table twheel drop constraint fk_twheel_owner_plate_no;
drop index ix_tire_wheel;
alter table tire drop constraint fk_tire_wheel;
drop index ix_trip_vehicle_driver_id;
alter table trip drop constraint fk_trip_vehicle_driver_id;
drop index ix_trip_address_id;
alter table trip drop constraint fk_trip_address_id;
drop index ix_type_sub_type_id;
alter table type drop constraint fk_type_sub_type_id;
drop index ix_ut_detail_utmaster_id;
alter table ut_detail drop constraint fk_ut_detail_utmaster_id;
drop index ix_uutwo_master_id;
alter table uutwo drop constraint fk_uutwo_master_id;
drop index ix_c_user_group_id;
alter table c_user drop constraint fk_c_user_group_id;
drop index ix_oto_user_account_id;
alter table oto_user drop constraint fk_oto_user_account_id;
drop index ix_em_user_role_user_id;
alter table em_user_role drop constraint fk_em_user_role_user_id;
drop index ix_em_user_role_role_id;
alter table em_user_role drop constraint fk_em_user_role_role_id;
drop index ix_vehicle_truck_ref_id;
alter table vehicle drop constraint fk_vehicle_truck_ref_id;
drop index ix_vehicle_car_ref_id;
alter table vehicle drop constraint fk_vehicle_car_ref_id;
drop index ix_vehicle_driver_vehicle_id;
alter table vehicle_driver drop constraint fk_vehicle_driver_vehicle_id;
drop index ix_vehicle_driver_address_id;
alter table vehicle_driver drop constraint fk_vehicle_driver_address_id;
drop index ix_warehouses_officezoneid;
alter table warehouses drop constraint fk_warehouses_officezoneid;
drop index ix_warehousesshippingzones_warehouseid;
alter table WarehousesShippingZones drop constraint fk_warehousesshippingzones_warehouses;
drop index ix_warehousesshippingzones_shippingzoneid;
alter table WarehousesShippingZones drop constraint fk_warehousesshippingzones_zones;
drop index ix_sa_wheel_tire;
alter table sa_wheel drop constraint fk_sa_wheel_tire;
drop index ix_sa_wheel_car;
alter table sa_wheel drop constraint fk_sa_wheel_car;
drop index ix_with_zero_parent_id;
alter table with_zero drop constraint fk_with_zero_parent_id;
@@ -1,424 +0,0 @@
drop table asimple_bean;
drop table bar;
drop table oto_account;
drop table o_address;
drop table address;
drop table animals;
drop table animal_shelter;
drop table article;
drop table attribute;
drop table attribute_holder;
drop table audit_log;
drop table bbookmark;
drop table bbookmark_user;
drop table bsimple_with_gen;
drop table bwith_qident;
drop table basic_joda_entity;
drop table bean_with_time_zone;
drop table drel_booking;
drop table ckey_assoc;
drop table ckey_detail;
drop table ckey_parent;
drop table calculation_result;
drop table cao_bean;
drop table sa_car;
drop table sp_car_car;
drop table sp_car_car_wheels;
drop table car_accessory;
drop table configuration;
drop table configurations;
drop table contact;
drop table contact_group;
drop table contact_note;
drop table c_conversation;
drop table o_country;
drop table o_customer;
drop table dexh_entity;
drop table dperson;
drop table rawinherit_data;
drop table e_basic;
drop table ebasic_clob;
drop table ebasic_clob_fetch_eager;
drop table ebasic_clob_no_ver;
drop table e_basicenc;
drop table e_basicenc_bin;
drop table e_basic_enum_id;
drop table ebasic_json_map;
drop table ebasic_json_map_blob;
drop table ebasic_json_map_json_b;
drop table ebasic_json_map_varchar;
drop table ebasic_json_node;
drop table ebasic_json_node_blob;
drop table ebasic_json_node_json_b;
drop table ebasic_json_node_varchar;
drop table e_basic_ndc;
drop table e_basicver;
drop table e_basic_withlife;
drop table e_basicverucon;
drop table eemb_inner;
drop table eemb_outer;
drop table egen_props;
drop table einvoice;
drop table e_main;
drop table enull_collection;
drop table enull_collection_detail;
drop table eopt_one_a;
drop table eopt_one_b;
drop table eopt_one_c;
drop table eperson;
drop table esimple;
drop table esome_type;
drop table etrans_many;
drop table evanilla_collection;
drop table evanilla_collection_detail;
drop table ewho_props;
drop table e_withinet;
drop table td_child;
drop table td_parent;
drop table feature_desc;
drop table f_first;
drop table foo;
drop table gen_key_identity;
drop table gen_key_sequence;
drop table gen_key_table;
drop table c_group;
drop table imrelated;
drop table imroot;
drop table ixresource;
drop table info_company;
drop table info_contact;
drop table info_customer;
drop table inner_report;
drop table drel_invoice;
drop table item;
drop table level1;
drop table level1_level4;
drop table level1_level2;
drop table level2;
drop table level2_level3;
drop table level3;
drop table level4;
drop table la_attr_value;
drop table la_attr_value_attribute;
drop table mmedia;
drop table non_updateprop;
drop table mprinter;
drop table mprinter_state;
drop table mprofile;
drop table mprotected_construct_bean;
drop table mrole;
drop table mrole_muser;
drop table msome_other;
drop table muser;
drop table muser_type;
drop table map_super_actual;
drop table c_message;
drop table mnoc_role;
drop table mnoc_user;
drop table mnoc_user_mnoc_role;
drop table mp_role;
drop table mp_user;
drop table my_lob_size;
drop table my_lob_size_join_many;
drop table noidbean;
drop table o_cached_bean;
drop table o_cached_bean_country;
drop table o_cached_bean_child;
drop table ocar;
drop table oengine;
drop table ogear_box;
drop table o_order;
drop table o_order_detail;
drop table s_orders;
drop table s_order_items;
drop table or_order_ship;
drop table oto_child;
drop table oto_master;
drop table pfile;
drop table pfile_content;
drop table paggview;
drop table pallet_location;
drop table parcel;
drop table parcel_location;
drop table rawinherit_parent;
drop table rawinherit_parent_rawinherit_dat;
drop table c_participation;
drop table mt_permission;
drop table persistent_file;
drop table persistent_file_content;
drop table PERSONS;
drop table person;
drop table PHONES;
drop table o_product;
drop table pp;
drop table pp_to_ww;
drop table rcustomer;
drop table r_orders;
drop table region;
drop table ResourceFile;
drop table mt_role;
drop table mt_role_permission;
drop table em_role;
drop table f_second;
drop table section;
drop table self_parent;
drop table self_ref_customer;
drop table self_ref_example;
drop table some_enum_bean;
drop table some_file_bean;
drop table some_new_types_bean;
drop table some_period_bean;
drop table stockforecast;
drop table sub_section;
drop table sub_type;
drop table tbytes_only;
drop table tcar;
drop table tint_root;
drop table tjoda_entity;
drop table t_mapsuper1;
drop table t_oneb;
drop table t_detail_with_other_namexxxyy;
drop table ts_detail_two;
drop table t_atable_thatisrelatively;
drop table ts_master_two;
drop table tuuid_entity;
drop table twheel;
drop table twith_pre_insert;
drop table mt_tenant;
drop table sa_tire;
drop table tire;
drop table trip;
drop table truck_ref;
drop table type;
drop table ut_detail;
drop table ut_master;
drop table uuone;
drop table uutwo;
drop table em_user;
drop table tx_user;
drop table c_user;
drop table oto_user;
drop table em_user_role;
drop table vehicle;
drop table vehicle_driver;
drop table warehouses;
drop table WarehousesShippingZones;
drop table sa_wheel;
drop table sp_car_wheel;
drop table wheel;
drop table with_zero;
drop table parent;
drop table wview;
drop table zones;
@@ -1,8 +0,0 @@
create column table foo (
col1 nvarchar(4) generated by default as identity not null,
col2 nvarchar(30) not null,
col3 nvarchar(30) not null,
constraint pk_foo primary key (col1)
);
comment on table foo is 'comment';
@@ -1,8 +0,0 @@
create table foo (
col1 varchar(4) generated by default as identity not null,
col2 varchar(30) not null,
col3 varchar(30) not null,
constraint pk_foo primary key (col1)
);
comment on table foo is 'comment';
@@ -1,33 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<migration xmlns="http://ebean-orm.github.io/xml/ns/dbmigration" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://ebean-orm.github.io/xml/ns/dbmigration http://ebean-orm.github.io/xml/ns/dbmigration-1.0.xsd">
<changeSet type="apply">
<addColumn tableName="foo">
<column name="some_id" type="integer" references="bar.id" foreignKeyName="fk_foo_some_id" foreignKeyIndex="idx_foo_some_id"/>
</addColumn>
<addColumn tableName="foo">
<column name="dbarray_added_to_foo" type="varchar[]"/>
</addColumn>
<addColumn tableName="foo">
<column name="dbarray_ninety" type="varchar[](90)"/>
</addColumn>
<addColumn tableName="foo">
<column name="dbarray_integer" type="integer[](90)"/>
</addColumn>
<addColumn tableName="foo">
<column name="dbarray_integer" type="integer[]"/>
</addColumn>
<addColumn tableName="foo">
<column name="status" type="integer" checkConstraint="check ( status in (0,1))" checkConstraintName="ck_ordering_status"/>
</addColumn>
</changeSet>
</migration>
@@ -1,30 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<migration xmlns="http://ebean-orm.github.io/xml/ns/dbmigration" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://ebean-orm.github.io/xml/ns/dbmigration http://ebean-orm.github.io/xml/ns/dbmigration-1.0.xsd">
<changeSet type="baseline">
<createTable name="ckey_assoc" pkName="pk_ckey_assoc">
<column name="id" type="integer" primaryKey="true" identity="true"/>
<column name="assoc_one" type="varchar(255)" />
</createTable>
<createTable name="ckey_detail" pkName="pk_ckey_detail">
<column name="id" type="integer" primaryKey="true" identity="true"/>
<column name="something" type="varchar(255)" />
<column name="one_key" type="integer" />
<column name="two_key" type="varchar(127)" />
<foreignKey name="fk_ckey_detail_parent" columnNames="one_key,two_key" refColumnNames="one_key,two_key" refTableName="ckey_parent" indexName="ix_ckey_detail_parent"/>
</createTable>
<createTable name="ckey_parent" pkName="pk_ckey_parent">
<column name="one_key" type="integer" primaryKey="true" />
<column name="two_key" type="varchar(127)" primaryKey="true" />
<column name="name" type="varchar(255)" />
<column name="assoc_id" type="integer" references="ckey_assoc.id" foreignKeyName="fk_ckey_parent_assoc_id" foreignKeyIndex="ix_ckey_parent_assoc_id"/>
<column name="version" type="integer" notnull="true" />
</createTable>
</changeSet>
</migration>
@@ -1,21 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<migration xmlns="http://ebean-orm.github.io/xml/ns/dbmigration" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://ebean-orm.github.io/xml/ns/dbmigration http://ebean-orm.github.io/xml/ns/dbmigration-1.0.xsd">
<changeSet type="apply">
<createTable name="foo" pkName="pk_foo" withHistory="false" tablespace="fooSpace" indexTablespace="fooIndexSpace" comment="comment">
<column name="col1" type="varchar(4)" notnull="true" primaryKey="true"/>
<column name="col2" type="varchar(30)" notnull="true"/>
<column name="col3" type="varchar(30)" notnull="true"/>
</createTable>
<addColumn tableName="foo">
<column name="added_to_foo" type="varchar(20)"/>
</addColumn>
<dropColumn columnName="col2" tableName="foo"/>
</changeSet>
</migration>
Whitespace-only changes.
Whitespace-only changes.
Whitespace-only changes.
Whitespace-only changes.
Whitespace-only changes.
Whitespace-only changes.
@@ -1,17 +0,0 @@
-- Migrationscripts for ebean unittest DbMigrationDropHistoryTest
-- apply changes
create table migtest_e_history7 (
id integer generated by default as identity not null,
constraint pk_migtest_e_history7 primary key (id)
);
alter table migtest_e_history7 add column sys_period_start timestamp default now();
alter table migtest_e_history7 add column sys_period_end timestamp;
create table migtest_e_history7_history(
id integer,
sys_period_start timestamp,
sys_period_end timestamp
);
create view migtest_e_history7_with_history as select * from migtest_e_history7 union all select * from migtest_e_history7_history;
create trigger migtest_e_history7_history_upd before update,delete on migtest_e_history7 for each row call "io.ebean.config.dbplatform.h2.H2HistoryTrigger";
@@ -1,10 +0,0 @@
-- Migrationscripts for ebean unittest DbMigrationDropHistoryTest
-- drop dependencies
drop trigger migtest_e_history7_history_upd;
drop view migtest_e_history7_with_history;
alter table migtest_e_history7 drop column sys_period_start;
alter table migtest_e_history7 drop column sys_period_end;
drop table migtest_e_history7_history;
-- apply changes
@@ -1,3 +0,0 @@
-- h2 and postgres script
@@ -1,7 +0,0 @@
create or replace view order_agg_vw as
select d.order_id, sum(d.order_qty * d.unit_price) as order_total,
sum(d.ship_qty * d.unit_price) as ship_total
from o_order_detail d
group by d.order_id
@@ -1,8 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<migration xmlns="http://ebean-orm.github.io/xml/ns/dbmigration">
<changeSet type="apply">
<createTable name="migtest_e_history7" withHistory="true" pkName="pk_migtest_e_history7">
<column name="id" type="integer" primaryKey="true"/>
</createTable>
</changeSet>
</migration>
@@ -1,6 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<migration xmlns="http://ebean-orm.github.io/xml/ns/dbmigration">
<changeSet type="pendingDrops">
<dropHistoryTable baseTable="migtest_e_history7"/>
</changeSet>
</migration>
@@ -1,6 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<migration xmlns="http://ebean-orm.github.io/xml/ns/dbmigration">
<changeSet type="apply" dropsFor="1.1">
<dropHistoryTable baseTable="migtest_e_history7"/>
</changeSet>
</migration>
@@ -1,174 +0,0 @@
-- Migrationscripts for ebean unittest
-- apply changes
create table migtest_ckey_assoc (
id integer generated by default as identity not null,
assoc_one varchar(255),
constraint pk_migtest_ckey_assoc primary key (id)
);
create table migtest_ckey_detail (
id integer generated by default as identity not null,
something varchar(255),
constraint pk_migtest_ckey_detail primary key (id)
);
create table migtest_ckey_parent (
one_key integer not null,
two_key varchar(127) not null,
name varchar(255),
version integer not null,
constraint pk_migtest_ckey_parent primary key (one_key,two_key)
);
create table migtest_fk_cascade (
id bigint generated by default as identity not null,
one_id bigint,
constraint pk_migtest_fk_cascade primary key (id)
);
create table migtest_fk_cascade_one (
id bigint generated by default as identity not null,
constraint pk_migtest_fk_cascade_one primary key (id)
);
create table migtest_fk_none (
id bigint generated by default as identity not null,
one_id bigint,
constraint pk_migtest_fk_none primary key (id)
);
create table migtest_fk_none_via_join (
id bigint generated by default as identity not null,
one_id bigint,
constraint pk_migtest_fk_none_via_join primary key (id)
);
create table migtest_fk_one (
id bigint generated by default as identity not null,
constraint pk_migtest_fk_one primary key (id)
);
create table migtest_fk_set_null (
id bigint generated by default as identity not null,
one_id bigint,
constraint pk_migtest_fk_set_null primary key (id)
);
create table migtest_e_basic (
id integer generated by default as identity not null,
status varchar(1),
status2 varchar(1) default 'N' not null,
name varchar(127),
description varchar(127),
some_date timestamp,
old_boolean boolean default false not null,
old_boolean2 boolean,
eref_id integer,
indextest1 varchar(127),
indextest2 varchar(127),
indextest3 varchar(127),
indextest4 varchar(127),
indextest5 varchar(127),
indextest6 varchar(127),
user_id integer not null,
constraint ck_mgtst__bsc_stts check ( status in ('N','A','I')),
constraint ck_mgtst__b_z543fg check ( status2 in ('N','A','I')),
constraint pk_migtest_e_basic primary key (id)
);
-- NOT SUPPORTED alter table migtest_e_basic add constraint uq_mgtst__b_4aybzy unique (indextest2);
-- NOT SUPPORTED alter table migtest_e_basic add constraint uq_mgtst__b_4ayc02 unique (indextest6);
create table migtest_e_enum (
id integer generated by default as identity not null,
test_status varchar(1),
constraint ck_mgtst__n_773sok check ( test_status in ('N','A','I')),
constraint pk_migtest_e_enum primary key (id)
);
create table migtest_e_history (
id integer generated by default as identity not null,
test_string varchar(255),
constraint pk_migtest_e_history primary key (id)
);
create table migtest_e_history2 (
id integer generated by default as identity not null,
test_string varchar(255),
obsolete_string1 varchar(255),
obsolete_string2 varchar(255),
constraint pk_migtest_e_history2 primary key (id)
);
create table migtest_e_history3 (
id integer generated by default as identity not null,
test_string varchar(255),
constraint pk_migtest_e_history3 primary key (id)
);
create table migtest_e_history4 (
id integer generated by default as identity not null,
test_number integer,
constraint pk_migtest_e_history4 primary key (id)
);
create table migtest_e_history5 (
id integer generated by default as identity not null,
test_number integer,
constraint pk_migtest_e_history5 primary key (id)
);
create table migtest_e_history6 (
id integer generated by default as identity not null,
test_number1 integer,
test_number2 integer not null,
constraint pk_migtest_e_history6 primary key (id)
);
create table migtest_e_ref (
id integer generated by default as identity not null,
name varchar(127) not null,
constraint pk_migtest_e_ref primary key (id)
);
alter table migtest_e_ref add constraint uq_mgtst__rf_nm unique (name);
create table migtest_e_softdelete (
id integer generated by default as identity not null,
test_string varchar(255),
constraint pk_migtest_e_softdelete primary key (id)
);
create table migtest_mtm_c (
id integer generated by default as identity not null,
name varchar(255),
constraint pk_migtest_mtm_c primary key (id)
);
create table migtest_mtm_m (
id bigint generated by default as identity not null,
name varchar(255),
constraint pk_migtest_mtm_m primary key (id)
);
create table migtest_oto_child (
id integer generated by default as identity not null,
name varchar(255),
constraint pk_migtest_oto_child primary key (id)
);
create table migtest_oto_master (
id bigint generated by default as identity not null,
name varchar(255),
constraint pk_migtest_oto_master primary key (id)
);
create index ix_mgtst__b_eu8csq on migtest_e_basic (indextest1);
create index ix_mgtst__b_eu8csu on migtest_e_basic (indextest5);
create index ix_mgtst_fk_mok1xj on migtest_fk_cascade (one_id);
alter table migtest_fk_cascade add constraint fk_mgtst_fk_65kf6l foreign key (one_id) references migtest_fk_cascade_one (id) on delete cascade;
create index ix_mgtst_fk_c4p3mv on migtest_fk_set_null (one_id);
alter table migtest_fk_set_null add constraint fk_mgtst_fk_wicx8x foreign key (one_id) references migtest_fk_one (id) on delete set null;
create index ix_mgtst__bsc_rf_d on migtest_e_basic (eref_id);
alter table migtest_e_basic add constraint fk_mgtst__bsc_rf_d foreign key (eref_id) references migtest_e_ref (id) on delete restrict;
@@ -1,110 +0,0 @@
-- Migrationscripts for ebean unittest
-- apply changes
create table migtest_e_user (
id integer generated by default as identity not null,
constraint pk_migtest_e_user primary key (id)
);
create table migtest_mtm_c_migtest_mtm_m (
migtest_mtm_c_id integer not null,
migtest_mtm_m_id bigint not null,
constraint pk_migtest_mtm_c_migtest_mtm_m primary key (migtest_mtm_c_id,migtest_mtm_m_id)
);
create table migtest_mtm_m_migtest_mtm_c (
migtest_mtm_m_id bigint not null,
migtest_mtm_c_id integer not null,
constraint pk_migtest_mtm_m_migtest_mtm_c primary key (migtest_mtm_m_id,migtest_mtm_c_id)
);
alter table migtest_ckey_detail add column one_key integer;
alter table migtest_ckey_detail add column two_key varchar(127);
alter table migtest_ckey_detail add constraint fk_mgtst_ck_e1qkb5 foreign key (one_key,two_key) references migtest_ckey_parent (one_key,two_key) on delete restrict;
alter table migtest_ckey_parent add column assoc_id integer;
alter table migtest_fk_cascade drop constraint fk_mgtst_fk_65kf6l;
alter table migtest_fk_cascade add constraint fk_mgtst_fk_65kf6l foreign key (one_id) references migtest_fk_cascade_one (id) on delete restrict;
alter table migtest_fk_none add constraint fk_mgtst_fk_nn_n_d foreign key (one_id) references migtest_fk_one (id) on delete restrict;
alter table migtest_fk_none_via_join add constraint fk_mgtst_fk_9tknzj foreign key (one_id) references migtest_fk_one (id) on delete restrict;
alter table migtest_fk_set_null drop constraint fk_mgtst_fk_wicx8x;
alter table migtest_fk_set_null add constraint fk_mgtst_fk_wicx8x foreign key (one_id) references migtest_fk_one (id) on delete restrict;
update migtest_e_basic set status = 'A' where status is null;
alter table migtest_e_basic drop constraint ck_mgtst__bsc_stts;
alter table migtest_e_basic alter column status set default 'A';
alter table migtest_e_basic alter column status set not null;
alter table migtest_e_basic add constraint ck_mgtst__bsc_stts check ( status in ('N','A','I','?'));
alter table migtest_e_basic drop constraint ck_mgtst__b_z543fg;
alter table migtest_e_basic alter column status2 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;
-- NOT SUPPORTED alter table migtest_e_basic add constraint uq_mgtst__b_vs45xo unique (description);
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 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_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;
-- NOT SUPPORTED alter table migtest_e_basic add constraint uq_mgtst__b_ucfcne unique (status,indextest1);
-- NOT SUPPORTED alter table migtest_e_basic add constraint uq_mgtst__bsc_nm unique (name);
-- NOT SUPPORTED alter table migtest_e_basic add constraint uq_mgtst__b_4ayc00 unique (indextest4);
-- NOT SUPPORTED alter table migtest_e_basic add constraint uq_mgtst__b_4ayc01 unique (indextest5);
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 bigint;
comment on table migtest_e_history is 'We have history now';
-- NOTE: table has @History - special migration may be necessary
update migtest_e_history2 set test_string = 'unknown' where test_string is null;
alter table migtest_e_history2 alter column test_string set default 'unknown';
alter table migtest_e_history2 alter column test_string set not null;
alter table migtest_e_history2 add column test_string2 varchar(255);
alter table migtest_e_history2 add column test_string3 varchar(255) default 'unknown' not null;
alter table migtest_e_history2 add column new_column varchar(20);
alter table migtest_e_history4 alter column test_number bigint;
alter table migtest_e_history5 add column test_boolean boolean default false not null;
-- NOTE: table has @History - special migration may be necessary
update migtest_e_history6 set test_number1 = 42 where test_number1 is null;
alter table migtest_e_history6 alter column test_number1 set default 42;
alter table migtest_e_history6 alter column test_number1 set not null;
alter table migtest_e_history6 alter column test_number2 set null;
alter table migtest_e_softdelete add column deleted boolean default false not null;
alter table migtest_oto_child add column master_id bigint;
create index ix_mgtst__b_eu8css on migtest_e_basic (indextest3);
create index ix_mgtst__b_eu8csv on migtest_e_basic (indextest6);
drop index ix_mgtst__b_eu8csq;
drop index ix_mgtst__b_eu8csu;
create index ix_mgtst_mt_3ug4ok on migtest_mtm_c_migtest_mtm_m (migtest_mtm_c_id);
alter table migtest_mtm_c_migtest_mtm_m add constraint fk_mgtst_mt_93awga foreign key (migtest_mtm_c_id) references migtest_mtm_c (id) on delete restrict;
create index ix_mgtst_mt_3ug4ou on migtest_mtm_c_migtest_mtm_m (migtest_mtm_m_id);
alter table migtest_mtm_c_migtest_mtm_m add constraint fk_mgtst_mt_93awgk foreign key (migtest_mtm_m_id) references migtest_mtm_m (id) on delete restrict;
create index ix_mgtst_mt_b7nbcu on migtest_mtm_m_migtest_mtm_c (migtest_mtm_m_id);
alter table migtest_mtm_m_migtest_mtm_c add constraint fk_mgtst_mt_ggi34k foreign key (migtest_mtm_m_id) references migtest_mtm_m (id) on delete restrict;
create index ix_mgtst_mt_b7nbck on migtest_mtm_m_migtest_mtm_c (migtest_mtm_c_id);
alter table migtest_mtm_m_migtest_mtm_c add constraint fk_mgtst_mt_ggi34a foreign key (migtest_mtm_c_id) references migtest_mtm_c (id) on delete restrict;
create index ix_mgtst_ck_x45o21 on migtest_ckey_parent (assoc_id);
alter table migtest_ckey_parent add constraint fk_mgtst_ck_da00mr foreign key (assoc_id) references migtest_ckey_assoc (id) on delete restrict;
alter table migtest_oto_child add constraint fk_mgtst_t__csyl38 foreign key (master_id) references migtest_oto_master (id) on delete restrict;
@@ -1,14 +0,0 @@
-- Migrationscripts for ebean unittest
-- apply changes
alter table migtest_e_basic drop column old_boolean;
alter table migtest_e_basic drop column old_boolean2;
alter table migtest_e_basic drop column eref_id;
alter table migtest_e_history2 drop column obsolete_string1;
alter table migtest_e_history2 drop column obsolete_string2;
drop table migtest_e_ref;
drop sequence migtest_e_ref_seq;
@@ -1,67 +0,0 @@
-- Migrationscripts for ebean unittest
-- apply changes
create table migtest_e_ref (
id integer generated by default as identity not null,
name varchar(127) not null,
constraint pk_migtest_e_ref primary key (id)
);
alter table migtest_e_ref add constraint uq_mgtst__rf_nm unique (name);
alter table migtest_ckey_detail drop constraint fk_mgtst_ck_e1qkb5;
alter table migtest_fk_cascade drop constraint fk_mgtst_fk_65kf6l;
alter table migtest_fk_cascade add constraint fk_mgtst_fk_65kf6l foreign key (one_id) references migtest_fk_cascade_one (id) on delete cascade;
alter table migtest_fk_none drop constraint fk_mgtst_fk_nn_n_d;
alter table migtest_fk_none_via_join drop constraint fk_mgtst_fk_9tknzj;
alter table migtest_fk_set_null drop constraint fk_mgtst_fk_wicx8x;
alter table migtest_fk_set_null add constraint fk_mgtst_fk_wicx8x foreign key (one_id) references migtest_fk_one (id) on delete set null;
alter table migtest_e_basic drop constraint ck_mgtst__bsc_stts;
alter table migtest_e_basic alter column status drop default;
alter table migtest_e_basic alter column status set null;
alter table migtest_e_basic add constraint ck_mgtst__bsc_stts check ( status in ('N','A','I'));
update migtest_e_basic set status2 = 'N' where status2 is null;
alter table migtest_e_basic drop constraint ck_mgtst__b_z543fg;
alter table migtest_e_basic alter column status2 varchar(1);
alter table migtest_e_basic alter column status2 set default 'N';
alter table migtest_e_basic alter column status2 set not null;
alter table migtest_e_basic add constraint ck_mgtst__b_z543fg check ( status2 in ('N','A','I'));
alter table migtest_e_basic drop constraint uq_mgtst__b_vs45xo;
update migtest_e_basic set user_id = 23 where user_id is null;
alter table migtest_e_basic drop constraint fk_mgtst__bsc_sr_d;
alter table migtest_e_basic alter column user_id set default 23;
alter table migtest_e_basic alter column user_id set not null;
alter table migtest_e_basic add column old_boolean boolean default false not null;
alter table migtest_e_basic add column old_boolean2 boolean;
alter table migtest_e_basic add column eref_id integer;
alter table migtest_e_basic drop constraint uq_mgtst__b_ucfcne;
alter table migtest_e_basic drop constraint uq_mgtst__bsc_nm;
alter table migtest_e_basic drop constraint uq_mgtst__b_4ayc00;
alter table migtest_e_basic drop constraint uq_mgtst__b_4ayc01;
-- NOT SUPPORTED alter table migtest_e_basic add constraint uq_mgtst__b_4aybzy unique (indextest2);
-- NOT SUPPORTED alter table migtest_e_basic add constraint uq_mgtst__b_4ayc02 unique (indextest6);
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 set null;
alter table migtest_e_history2 add column obsolete_string1 varchar(255);
alter table migtest_e_history2 add column obsolete_string2 varchar(255);
alter table migtest_e_history4 alter column test_number integer;
alter table migtest_e_history6 alter column test_number1 drop default;
alter table migtest_e_history6 alter column test_number1 set null;
-- NOTE: table has @History - special migration may be necessary
update migtest_e_history6 set test_number2 = 7 where test_number2 is null;
alter table migtest_e_history6 alter column test_number2 set default 7;
alter table migtest_e_history6 alter column test_number2 set not null;
create index ix_mgtst__b_eu8csq on migtest_e_basic (indextest1);
create index ix_mgtst__b_eu8csu on migtest_e_basic (indextest5);
drop index ix_mgtst__b_eu8css;
drop index ix_mgtst__b_eu8csv;
create index ix_mgtst__bsc_rf_d on migtest_e_basic (eref_id);
alter table migtest_e_basic add constraint fk_mgtst__bsc_rf_d foreign key (eref_id) references migtest_e_ref (id) on delete restrict;
@@ -1,34 +0,0 @@
-- Migrationscripts for ebean unittest
-- apply changes
alter table migtest_ckey_detail drop column one_key;
alter table migtest_ckey_detail drop column two_key;
alter table migtest_ckey_parent drop column assoc_id;
alter table migtest_e_basic drop column new_string_field;
alter table migtest_e_basic drop column new_boolean_field;
alter table migtest_e_basic drop column new_boolean_field2;
alter table migtest_e_basic drop column progress;
alter table migtest_e_basic drop column new_integer;
alter table migtest_e_history2 drop column test_string2;
alter table migtest_e_history2 drop column test_string3;
alter table migtest_e_history2 drop column new_column;
alter table migtest_e_history5 drop column test_boolean;
alter table migtest_e_softdelete drop column deleted;
alter table migtest_oto_child drop column master_id;
drop table migtest_e_user;
drop sequence migtest_e_user_seq;
drop table migtest_mtm_c_migtest_mtm_m;
drop table migtest_mtm_m_migtest_mtm_c;
@@ -1,7 +0,0 @@
create or replace view order_agg_vw as
select d.order_id, sum(d.order_qty * d.unit_price) as order_total,
sum(d.ship_qty * d.unit_price) as ship_total
from o_order_detail d
group by d.order_id
@@ -1,232 +0,0 @@
-- Migrationscripts for ebean unittest
-- apply changes
create table migtest_ckey_assoc (
id integer generated by default as identity not null,
assoc_one varchar(255),
constraint pk_migtest_ckey_assoc primary key (id)
);
create table migtest_ckey_detail (
id integer generated by default as identity not null,
something varchar(255),
constraint pk_migtest_ckey_detail primary key (id)
);
create table migtest_ckey_parent (
one_key integer not null,
two_key varchar(127) not null,
name varchar(255),
version integer not null,
constraint pk_migtest_ckey_parent primary key (one_key,two_key)
);
create table migtest_fk_cascade (
id bigint generated by default as identity not null,
one_id bigint,
constraint pk_migtest_fk_cascade primary key (id)
);
create table migtest_fk_cascade_one (
id bigint generated by default as identity not null,
constraint pk_migtest_fk_cascade_one primary key (id)
);
create table migtest_fk_none (
id bigint generated by default as identity not null,
one_id bigint,
constraint pk_migtest_fk_none primary key (id)
);
create table migtest_fk_none_via_join (
id bigint generated by default as identity not null,
one_id bigint,
constraint pk_migtest_fk_none_via_join primary key (id)
);
create table migtest_fk_one (
id bigint generated by default as identity not null,
constraint pk_migtest_fk_one primary key (id)
);
create table migtest_fk_set_null (
id bigint generated by default as identity not null,
one_id bigint,
constraint pk_migtest_fk_set_null primary key (id)
);
create table migtest_e_basic (
id integer generated by default as identity not null,
status varchar(1),
status2 varchar(1) default 'N' not null,
name varchar(127),
description varchar(127),
some_date timestamp,
old_boolean boolean default false not null,
old_boolean2 boolean,
eref_id integer,
indextest1 varchar(127),
indextest2 varchar(127),
indextest3 varchar(127),
indextest4 varchar(127),
indextest5 varchar(127),
indextest6 varchar(127),
user_id integer not null,
constraint ck_migtest_e_basic_status check ( status in ('N','A','I')),
constraint ck_migtest_e_basic_status2 check ( status2 in ('N','A','I')),
constraint uq_migtest_e_basic_indextest2 unique (indextest2),
constraint uq_migtest_e_basic_indextest6 unique (indextest6),
constraint pk_migtest_e_basic primary key (id)
);
create table migtest_e_enum (
id integer generated by default as identity not null,
test_status varchar(1),
constraint ck_migtest_e_enum_test_status check ( test_status in ('N','A','I')),
constraint pk_migtest_e_enum primary key (id)
);
create table migtest_e_history (
id integer generated by default as identity not null,
test_string varchar(255),
constraint pk_migtest_e_history primary key (id)
);
create table migtest_e_history2 (
id integer generated by default as identity not null,
test_string varchar(255),
obsolete_string1 varchar(255),
obsolete_string2 varchar(255),
constraint pk_migtest_e_history2 primary key (id)
);
create table migtest_e_history3 (
id integer generated by default as identity not null,
test_string varchar(255),
constraint pk_migtest_e_history3 primary key (id)
);
create table migtest_e_history4 (
id integer generated by default as identity not null,
test_number integer,
constraint pk_migtest_e_history4 primary key (id)
);
create table migtest_e_history5 (
id integer generated by default as identity not null,
test_number integer,
constraint pk_migtest_e_history5 primary key (id)
);
create table migtest_e_history6 (
id integer generated by default as identity not null,
test_number1 integer,
test_number2 integer not null,
constraint pk_migtest_e_history6 primary key (id)
);
create table migtest_e_ref (
id integer generated by default as identity not null,
name varchar(127) not null,
constraint uq_migtest_e_ref_name unique (name),
constraint pk_migtest_e_ref primary key (id)
);
create table migtest_e_softdelete (
id integer generated by default as identity not null,
test_string varchar(255),
constraint pk_migtest_e_softdelete primary key (id)
);
create table migtest_mtm_c (
id integer generated by default as identity not null,
name varchar(255),
constraint pk_migtest_mtm_c primary key (id)
);
create table migtest_mtm_m (
id bigint generated by default as identity not null,
name varchar(255),
constraint pk_migtest_mtm_m primary key (id)
);
create table migtest_oto_child (
id integer generated by default as identity not null,
name varchar(255),
constraint pk_migtest_oto_child primary key (id)
);
create table migtest_oto_master (
id bigint generated by default as identity not null,
name varchar(255),
constraint pk_migtest_oto_master primary key (id)
);
create index ix_migtest_e_basic_indextest1 on migtest_e_basic (indextest1);
create index ix_migtest_e_basic_indextest5 on migtest_e_basic (indextest5);
create index ix_migtest_fk_cascade_one_id on migtest_fk_cascade (one_id);
alter table migtest_fk_cascade add constraint fk_migtest_fk_cascade_one_id foreign key (one_id) references migtest_fk_cascade_one (id) on delete cascade on update cascade;
create index ix_migtest_fk_set_null_one_id on migtest_fk_set_null (one_id);
alter table migtest_fk_set_null add constraint fk_migtest_fk_set_null_one_id foreign key (one_id) references migtest_fk_one (id) on delete set null on update 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 on update restrict;
alter table migtest_e_history2 add column sys_period_start timestamp default now();
alter table migtest_e_history2 add column sys_period_end timestamp;
create table migtest_e_history2_history(
id integer,
test_string varchar(255),
obsolete_string1 varchar(255),
obsolete_string2 varchar(255),
sys_period_start timestamp,
sys_period_end timestamp
);
create view migtest_e_history2_with_history as select * from migtest_e_history2 union all select * from migtest_e_history2_history;
alter table migtest_e_history3 add column sys_period_start timestamp default now();
alter table migtest_e_history3 add column sys_period_end timestamp;
create table migtest_e_history3_history(
id integer,
test_string varchar(255),
sys_period_start timestamp,
sys_period_end timestamp
);
create view migtest_e_history3_with_history as select * from migtest_e_history3 union all select * from migtest_e_history3_history;
alter table migtest_e_history4 add column sys_period_start timestamp default now();
alter table migtest_e_history4 add column sys_period_end timestamp;
create table migtest_e_history4_history(
id integer,
test_number integer,
sys_period_start timestamp,
sys_period_end timestamp
);
create view migtest_e_history4_with_history as select * from migtest_e_history4 union all select * from migtest_e_history4_history;
alter table migtest_e_history5 add column sys_period_start timestamp default now();
alter table migtest_e_history5 add column sys_period_end timestamp;
create table migtest_e_history5_history(
id integer,
test_number integer,
sys_period_start timestamp,
sys_period_end timestamp
);
create view migtest_e_history5_with_history as select * from migtest_e_history5 union all select * from migtest_e_history5_history;
alter table migtest_e_history6 add column sys_period_start timestamp default now();
alter table migtest_e_history6 add column sys_period_end timestamp;
create table migtest_e_history6_history(
id integer,
test_number1 integer,
test_number2 integer,
sys_period_start timestamp,
sys_period_end timestamp
);
create view migtest_e_history6_with_history as select * from migtest_e_history6 union all select * from migtest_e_history6_history;
create trigger migtest_e_history2_history_upd before update,delete on migtest_e_history2 for each row call "io.ebean.config.dbplatform.h2.H2HistoryTrigger";
create trigger migtest_e_history3_history_upd before update,delete on migtest_e_history3 for each row call "io.ebean.config.dbplatform.h2.H2HistoryTrigger";
create trigger migtest_e_history4_history_upd before update,delete on migtest_e_history4 for each row call "io.ebean.config.dbplatform.h2.H2HistoryTrigger";
create trigger migtest_e_history5_history_upd before update,delete on migtest_e_history5 for each row call "io.ebean.config.dbplatform.h2.H2HistoryTrigger";
create trigger migtest_e_history6_history_upd before update,delete on migtest_e_history6 for each row call "io.ebean.config.dbplatform.h2.H2HistoryTrigger";
@@ -1,152 +0,0 @@
-- Migrationscripts for ebean unittest
-- drop dependencies
drop view if exists migtest_e_history2_with_history;
drop view if exists migtest_e_history3_with_history;
drop view if exists migtest_e_history4_with_history;
drop view if exists migtest_e_history5_with_history;
-- apply changes
create table migtest_e_user (
id integer generated by default as identity not null,
constraint pk_migtest_e_user primary key (id)
);
create table migtest_mtm_c_migtest_mtm_m (
migtest_mtm_c_id integer not null,
migtest_mtm_m_id bigint not null,
constraint pk_migtest_mtm_c_migtest_mtm_m primary key (migtest_mtm_c_id,migtest_mtm_m_id)
);
create table migtest_mtm_m_migtest_mtm_c (
migtest_mtm_m_id bigint not null,
migtest_mtm_c_id integer not null,
constraint pk_migtest_mtm_m_migtest_mtm_c primary key (migtest_mtm_m_id,migtest_mtm_c_id)
);
alter table migtest_ckey_detail add column one_key integer;
alter table migtest_ckey_detail add column two_key varchar(127);
alter table migtest_ckey_detail add constraint fk_migtest_ckey_detail_parent foreign key (one_key,two_key) references migtest_ckey_parent (one_key,two_key) on delete restrict on update restrict;
alter table migtest_ckey_parent add column assoc_id integer;
alter table migtest_fk_cascade drop constraint if exists fk_migtest_fk_cascade_one_id;
alter table migtest_fk_cascade add constraint fk_migtest_fk_cascade_one_id foreign key (one_id) references migtest_fk_cascade_one (id) on delete restrict on update restrict;
alter table migtest_fk_none add constraint fk_migtest_fk_none_one_id foreign key (one_id) references migtest_fk_one (id) on delete restrict on update restrict;
alter table migtest_fk_none_via_join add constraint fk_migtest_fk_none_via_join_one_id foreign key (one_id) references migtest_fk_one (id) on delete restrict on update restrict;
alter table migtest_fk_set_null drop constraint if exists fk_migtest_fk_set_null_one_id;
alter table migtest_fk_set_null add constraint fk_migtest_fk_set_null_one_id foreign key (one_id) references migtest_fk_one (id) on delete restrict on update restrict;
update migtest_e_basic set status = 'A' where status is null;
alter table migtest_e_basic drop constraint if exists ck_migtest_e_basic_status;
alter table migtest_e_basic alter column status set default 'A';
alter table migtest_e_basic alter column status set not null;
alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I','?'));
alter table migtest_e_basic drop constraint if exists ck_migtest_e_basic_status2;
alter table migtest_e_basic alter column status2 varchar(127);
alter table migtest_e_basic alter column status2 drop default;
alter table migtest_e_basic alter column status2 set null;
-- rename all collisions;
alter table migtest_e_basic add constraint uq_migtest_e_basic_description unique (description);
insert into migtest_e_user (id) select distinct user_id from migtest_e_basic;
alter table migtest_e_basic add constraint fk_migtest_e_basic_user_id foreign key (user_id) references migtest_e_user (id) on delete restrict on update restrict;
alter table migtest_e_basic alter column user_id set null;
alter table migtest_e_basic add column new_string_field varchar(255) default 'foo''bar' not null;
alter table migtest_e_basic add column new_boolean_field boolean default true not null;
update migtest_e_basic set new_boolean_field = old_boolean;
alter table migtest_e_basic add column new_boolean_field2 boolean default true not null;
alter table migtest_e_basic add column progress integer default 0 not null;
alter table migtest_e_basic add constraint ck_migtest_e_basic_progress check ( progress in (0,1,2));
alter table migtest_e_basic add column new_integer integer default 42 not null;
alter table migtest_e_basic drop constraint uq_migtest_e_basic_indextest2;
alter table migtest_e_basic drop constraint uq_migtest_e_basic_indextest6;
alter table migtest_e_basic add constraint uq_migtest_e_basic_status_indextest1 unique (status,indextest1);
alter table migtest_e_basic add constraint uq_migtest_e_basic_name unique (name);
alter table migtest_e_basic add constraint uq_migtest_e_basic_indextest4 unique (indextest4);
alter table migtest_e_basic add constraint uq_migtest_e_basic_indextest5 unique (indextest5);
alter table migtest_e_enum drop constraint if exists ck_migtest_e_enum_test_status;
comment on column migtest_e_history.test_string is 'Column altered to long now';
alter table migtest_e_history alter column test_string bigint;
comment on table migtest_e_history is 'We have history now';
-- NOTE: table has @History - special migration may be necessary
update migtest_e_history2 set test_string = 'unknown' where test_string is null;
alter table migtest_e_history2 alter column test_string set default 'unknown';
alter table migtest_e_history2 alter column test_string set not null;
alter table migtest_e_history2 add column test_string2 varchar(255);
alter table migtest_e_history2 add column test_string3 varchar(255) default 'unknown' not null;
alter table migtest_e_history2 add column new_column varchar(20);
alter table migtest_e_history2_history add column test_string2 varchar(255);
alter table migtest_e_history2_history add column test_string3 varchar(255) default 'unknown';
alter table migtest_e_history2_history add column new_column varchar(20);
alter table migtest_e_history4 alter column test_number bigint;
alter table migtest_e_history4_history alter column test_number bigint;
alter table migtest_e_history5 add column test_boolean boolean default false not null;
alter table migtest_e_history5_history add column test_boolean boolean default false;
-- NOTE: table has @History - special migration may be necessary
update migtest_e_history6 set test_number1 = 42 where test_number1 is null;
alter table migtest_e_history6 alter column test_number1 set default 42;
alter table migtest_e_history6 alter column test_number1 set not null;
alter table migtest_e_history6 alter column test_number2 set null;
alter table migtest_e_softdelete add column deleted boolean default false not null;
alter table migtest_oto_child add column master_id bigint;
create index ix_migtest_e_basic_indextest3 on migtest_e_basic (indextest3);
create index ix_migtest_e_basic_indextest6 on migtest_e_basic (indextest6);
drop index if exists ix_migtest_e_basic_indextest1;
drop index if exists ix_migtest_e_basic_indextest5;
create index ix_migtest_mtm_c_migtest_mtm_m_migtest_mtm_c on migtest_mtm_c_migtest_mtm_m (migtest_mtm_c_id);
alter table migtest_mtm_c_migtest_mtm_m add constraint fk_migtest_mtm_c_migtest_mtm_m_migtest_mtm_c foreign key (migtest_mtm_c_id) references migtest_mtm_c (id) on delete restrict on update restrict;
create index ix_migtest_mtm_c_migtest_mtm_m_migtest_mtm_m on migtest_mtm_c_migtest_mtm_m (migtest_mtm_m_id);
alter table migtest_mtm_c_migtest_mtm_m add constraint fk_migtest_mtm_c_migtest_mtm_m_migtest_mtm_m foreign key (migtest_mtm_m_id) references migtest_mtm_m (id) on delete restrict on update restrict;
create index ix_migtest_mtm_m_migtest_mtm_c_migtest_mtm_m on migtest_mtm_m_migtest_mtm_c (migtest_mtm_m_id);
alter table migtest_mtm_m_migtest_mtm_c add constraint fk_migtest_mtm_m_migtest_mtm_c_migtest_mtm_m foreign key (migtest_mtm_m_id) references migtest_mtm_m (id) on delete restrict on update restrict;
create index ix_migtest_mtm_m_migtest_mtm_c_migtest_mtm_c on migtest_mtm_m_migtest_mtm_c (migtest_mtm_c_id);
alter table migtest_mtm_m_migtest_mtm_c add constraint fk_migtest_mtm_m_migtest_mtm_c_migtest_mtm_c foreign key (migtest_mtm_c_id) references migtest_mtm_c (id) on delete restrict on update restrict;
create index ix_migtest_ckey_parent_assoc_id on migtest_ckey_parent (assoc_id);
alter table migtest_ckey_parent add constraint fk_migtest_ckey_parent_assoc_id foreign key (assoc_id) references migtest_ckey_assoc (id) on delete restrict on update restrict;
alter table migtest_oto_child add constraint fk_migtest_oto_child_master_id foreign key (master_id) references migtest_oto_master (id) on delete restrict on update restrict;
alter table migtest_e_history add column sys_period_start timestamp default now();
alter table migtest_e_history add column sys_period_end timestamp;
create table migtest_e_history_history(
id integer,
test_string bigint,
sys_period_start timestamp,
sys_period_end timestamp
);
create view migtest_e_history_with_history as select * from migtest_e_history union all select * from migtest_e_history_history;
create view migtest_e_history2_with_history as select * from migtest_e_history2 union all select * from migtest_e_history2_history;
create view migtest_e_history3_with_history as select * from migtest_e_history3 union all select * from migtest_e_history3_history;
create view migtest_e_history4_with_history as select * from migtest_e_history4 union all select * from migtest_e_history4_history;
create view migtest_e_history5_with_history as select * from migtest_e_history5 union all select * from migtest_e_history5_history;
create trigger migtest_e_history_history_upd before update,delete on migtest_e_history for each row call "io.ebean.config.dbplatform.h2.H2HistoryTrigger";
-- changes: [add test_string2, add test_string3, add new_column]
drop trigger migtest_e_history2_history_upd;
create trigger migtest_e_history2_history_upd before update,delete on migtest_e_history2 for each row call "io.ebean.config.dbplatform.h2.H2HistoryTrigger";
-- changes: [exclude test_string]
drop trigger migtest_e_history3_history_upd;
create trigger migtest_e_history3_history_upd before update,delete on migtest_e_history3 for each row call "io.ebean.config.dbplatform.h2.H2HistoryTrigger";
-- changes: [alter test_number]
drop trigger migtest_e_history4_history_upd;
create trigger migtest_e_history4_history_upd before update,delete on migtest_e_history4 for each row call "io.ebean.config.dbplatform.h2.H2HistoryTrigger";
-- changes: [add test_boolean]
drop trigger migtest_e_history5_history_upd;
create trigger migtest_e_history5_history_upd before update,delete on migtest_e_history5 for each row call "io.ebean.config.dbplatform.h2.H2HistoryTrigger";
@@ -1,24 +0,0 @@
-- Migrationscripts for ebean unittest
-- drop dependencies
drop view if exists migtest_e_history2_with_history;
-- apply changes
alter table migtest_e_basic drop column old_boolean;
alter table migtest_e_basic drop column old_boolean2;
alter table migtest_e_basic drop column eref_id;
alter table migtest_e_history2 drop column obsolete_string1;
alter table migtest_e_history2_history drop column obsolete_string1;
alter table migtest_e_history2 drop column obsolete_string2;
alter table migtest_e_history2_history drop column obsolete_string2;
drop table if exists migtest_e_ref;
drop sequence if exists migtest_e_ref_seq;
create view migtest_e_history2_with_history as select * from migtest_e_history2 union all select * from migtest_e_history2_history;
-- changes: [drop obsolete_string1, drop obsolete_string2]
drop trigger migtest_e_history2_history_upd;
create trigger migtest_e_history2_history_upd before update,delete on migtest_e_history2 for each row call "io.ebean.config.dbplatform.h2.H2HistoryTrigger";
@@ -1,90 +0,0 @@
-- Migrationscripts for ebean unittest
-- drop dependencies
drop view if exists migtest_e_history2_with_history;
drop view if exists migtest_e_history3_with_history;
drop view if exists migtest_e_history4_with_history;
-- apply changes
create table migtest_e_ref (
id integer generated by default as identity not null,
name varchar(127) not null,
constraint uq_migtest_e_ref_name unique (name),
constraint pk_migtest_e_ref primary key (id)
);
alter table migtest_ckey_detail drop constraint if exists fk_migtest_ckey_detail_parent;
alter table migtest_fk_cascade drop constraint if exists fk_migtest_fk_cascade_one_id;
alter table migtest_fk_cascade add constraint fk_migtest_fk_cascade_one_id foreign key (one_id) references migtest_fk_cascade_one (id) on delete cascade on update cascade;
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 set null;
alter table migtest_e_basic drop constraint if exists ck_migtest_e_basic_status;
alter table migtest_e_basic alter column status drop default;
alter table migtest_e_basic alter column status set null;
alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I'));
update migtest_e_basic set status2 = 'N' where status2 is null;
alter table migtest_e_basic drop constraint if exists ck_migtest_e_basic_status2;
alter table migtest_e_basic alter column status2 varchar(1);
alter table migtest_e_basic alter column status2 set default 'N';
alter table migtest_e_basic alter column status2 set not null;
alter table migtest_e_basic add constraint ck_migtest_e_basic_status2 check ( status2 in ('N','A','I'));
alter table migtest_e_basic drop constraint uq_migtest_e_basic_description;
update migtest_e_basic set user_id = 23 where user_id is null;
alter table migtest_e_basic drop constraint if exists fk_migtest_e_basic_user_id;
alter table migtest_e_basic alter column user_id set default 23;
alter table migtest_e_basic alter column user_id set not null;
alter table migtest_e_basic add column old_boolean boolean default false not null;
alter table migtest_e_basic add column old_boolean2 boolean;
alter table migtest_e_basic add column eref_id integer;
alter table migtest_e_basic drop constraint uq_migtest_e_basic_status_indextest1;
alter table migtest_e_basic drop constraint uq_migtest_e_basic_name;
alter table migtest_e_basic drop constraint uq_migtest_e_basic_indextest4;
alter table migtest_e_basic drop constraint uq_migtest_e_basic_indextest5;
alter table migtest_e_basic add constraint uq_migtest_e_basic_indextest2 unique (indextest2);
alter table migtest_e_basic add constraint uq_migtest_e_basic_indextest6 unique (indextest6);
alter table migtest_e_enum drop constraint if exists ck_migtest_e_enum_test_status;
alter table migtest_e_enum add constraint ck_migtest_e_enum_test_status check ( test_status in ('N','A','I'));
comment on column migtest_e_history.test_string is '';
comment on table migtest_e_history is '';
alter table migtest_e_history2 alter column test_string drop default;
alter table migtest_e_history2 alter column test_string set null;
alter table migtest_e_history2 add column obsolete_string1 varchar(255);
alter table migtest_e_history2 add column obsolete_string2 varchar(255);
alter table migtest_e_history2_history add column obsolete_string1 varchar(255);
alter table migtest_e_history2_history add column obsolete_string2 varchar(255);
alter table migtest_e_history4 alter column test_number integer;
alter table migtest_e_history4_history alter column test_number integer;
alter table migtest_e_history6 alter column test_number1 drop default;
alter table migtest_e_history6 alter column test_number1 set null;
-- NOTE: table has @History - special migration may be necessary
update migtest_e_history6 set test_number2 = 7 where test_number2 is null;
alter table migtest_e_history6 alter column test_number2 set default 7;
alter table migtest_e_history6 alter column test_number2 set not null;
create index ix_migtest_e_basic_indextest1 on migtest_e_basic (indextest1);
create index ix_migtest_e_basic_indextest5 on migtest_e_basic (indextest5);
drop index if exists ix_migtest_e_basic_indextest3;
drop index if exists ix_migtest_e_basic_indextest6;
create index ix_migtest_e_basic_eref_id on migtest_e_basic (eref_id);
alter table migtest_e_basic add constraint fk_migtest_e_basic_eref_id foreign key (eref_id) references migtest_e_ref (id) on delete restrict on update restrict;
create view migtest_e_history2_with_history as select * from migtest_e_history2 union all select * from migtest_e_history2_history;
create view migtest_e_history3_with_history as select * from migtest_e_history3 union all select * from migtest_e_history3_history;
create view migtest_e_history4_with_history as select * from migtest_e_history4 union all select * from migtest_e_history4_history;
-- changes: [add obsolete_string1, add obsolete_string2]
drop trigger migtest_e_history2_history_upd;
create trigger migtest_e_history2_history_upd before update,delete on migtest_e_history2 for each row call "io.ebean.config.dbplatform.h2.H2HistoryTrigger";
-- changes: [include test_string]
drop trigger migtest_e_history3_history_upd;
create trigger migtest_e_history3_history_upd before update,delete on migtest_e_history3 for each row call "io.ebean.config.dbplatform.h2.H2HistoryTrigger";
-- changes: [alter test_number]
drop trigger migtest_e_history4_history_upd;
create trigger migtest_e_history4_history_upd before update,delete on migtest_e_history4 for each row call "io.ebean.config.dbplatform.h2.H2HistoryTrigger";
@@ -1,58 +0,0 @@
-- Migrationscripts for ebean unittest
-- drop dependencies
drop trigger migtest_e_history_history_upd;
drop view migtest_e_history_with_history;
alter table migtest_e_history drop column sys_period_start;
alter table migtest_e_history drop column sys_period_end;
drop table migtest_e_history_history;
drop view if exists migtest_e_history2_with_history;
drop view if exists migtest_e_history5_with_history;
-- apply changes
alter table migtest_ckey_detail drop column one_key;
alter table migtest_ckey_detail drop column two_key;
alter table migtest_ckey_parent drop column assoc_id;
alter table migtest_e_basic drop column new_string_field;
alter table migtest_e_basic drop column new_boolean_field;
alter table migtest_e_basic drop column new_boolean_field2;
alter table migtest_e_basic drop column progress;
alter table migtest_e_basic drop column new_integer;
alter table migtest_e_history2 drop column test_string2;
alter table migtest_e_history2_history drop column test_string2;
alter table migtest_e_history2 drop column test_string3;
alter table migtest_e_history2_history drop column test_string3;
alter table migtest_e_history2 drop column new_column;
alter table migtest_e_history2_history drop column new_column;
alter table migtest_e_history5 drop column test_boolean;
alter table migtest_e_history5_history drop column test_boolean;
alter table migtest_e_softdelete drop column deleted;
alter table migtest_oto_child drop column master_id;
drop table if exists migtest_e_user;
drop sequence if exists migtest_e_user_seq;
drop table if exists migtest_mtm_c_migtest_mtm_m;
drop table if exists migtest_mtm_m_migtest_mtm_c;
create view migtest_e_history2_with_history as select * from migtest_e_history2 union all select * from migtest_e_history2_history;
create view migtest_e_history5_with_history as select * from migtest_e_history5 union all select * from migtest_e_history5_history;
-- changes: [drop test_string2, drop test_string3, drop new_column]
drop trigger migtest_e_history2_history_upd;
create trigger migtest_e_history2_history_upd before update,delete on migtest_e_history2 for each row call "io.ebean.config.dbplatform.h2.H2HistoryTrigger";
-- changes: [drop test_boolean]
drop trigger migtest_e_history5_history_upd;
create trigger migtest_e_history5_history_upd before update,delete on migtest_e_history5 for each row call "io.ebean.config.dbplatform.h2.H2HistoryTrigger";
@@ -1,3 +0,0 @@
-- h2 and postgres script
@@ -1,7 +0,0 @@
create or replace view order_agg_vw as
select d.order_id, sum(d.order_qty * d.unit_price) as order_total,
sum(d.ship_qty * d.unit_price) as ship_total
from o_order_detail d
group by d.order_id
@@ -1,237 +0,0 @@
-- Migrationscripts for ebean unittest
-- apply changes
create column table migtest_ckey_assoc (
id integer generated by default as identity not null,
assoc_one nvarchar(255),
constraint pk_migtest_ckey_assoc primary key (id)
);
create column table migtest_ckey_detail (
id integer generated by default as identity not null,
something nvarchar(255),
constraint pk_migtest_ckey_detail primary key (id)
);
create column table migtest_ckey_parent (
one_key integer not null,
two_key nvarchar(127) not null,
name nvarchar(255),
version integer not null,
constraint pk_migtest_ckey_parent primary key (one_key,two_key)
);
create column table migtest_fk_cascade (
id bigint generated by default as identity not null,
one_id bigint,
constraint pk_migtest_fk_cascade primary key (id)
);
create column table migtest_fk_cascade_one (
id bigint generated by default as identity not null,
constraint pk_migtest_fk_cascade_one primary key (id)
);
create column table migtest_fk_none (
id bigint generated by default as identity not null,
one_id bigint,
constraint pk_migtest_fk_none primary key (id)
);
create column table migtest_fk_none_via_join (
id bigint generated by default as identity not null,
one_id bigint,
constraint pk_migtest_fk_none_via_join primary key (id)
);
create column table migtest_fk_one (
id bigint generated by default as identity not null,
constraint pk_migtest_fk_one primary key (id)
);
create column table migtest_fk_set_null (
id bigint generated by default as identity not null,
one_id bigint,
constraint pk_migtest_fk_set_null primary key (id)
);
create column table migtest_e_basic (
id integer generated by default as identity not null,
status nvarchar(1),
status2 nvarchar(1) default 'N' not null,
name nvarchar(127),
description nvarchar(127),
some_date timestamp,
old_boolean boolean default false not null,
old_boolean2 boolean,
eref_id integer,
indextest1 nvarchar(127),
indextest2 nvarchar(127),
indextest3 nvarchar(127),
indextest4 nvarchar(127),
indextest5 nvarchar(127),
indextest6 nvarchar(127),
user_id integer not null,
constraint ck_migtest_e_basic_status check ( status in ('N','A','I')),
constraint ck_migtest_e_basic_status2 check ( status2 in ('N','A','I')),
constraint uq_migtest_e_basic_indextest2 unique (indextest2),
constraint uq_migtest_e_basic_indextest6 unique (indextest6),
constraint pk_migtest_e_basic primary key (id)
);
create column table migtest_e_enum (
id integer generated by default as identity not null,
test_status nvarchar(1),
constraint ck_migtest_e_enum_test_status check ( test_status in ('N','A','I')),
constraint pk_migtest_e_enum primary key (id)
);
create column table migtest_e_history (
id integer generated by default as identity not null,
test_string nvarchar(255),
constraint pk_migtest_e_history primary key (id)
);
create column table migtest_e_history2 (
id integer generated by default as identity not null,
test_string nvarchar(255),
obsolete_string1 nvarchar(255),
obsolete_string2 nvarchar(255),
constraint pk_migtest_e_history2 primary key (id)
);
create column table migtest_e_history3 (
id integer generated by default as identity not null,
test_string nvarchar(255),
constraint pk_migtest_e_history3 primary key (id)
);
create column table migtest_e_history4 (
id integer generated by default as identity not null,
test_number integer,
constraint pk_migtest_e_history4 primary key (id)
);
create column table migtest_e_history5 (
id integer generated by default as identity not null,
test_number integer,
constraint pk_migtest_e_history5 primary key (id)
);
create column table migtest_e_history6 (
id integer generated by default as identity not null,
test_number1 integer,
test_number2 integer not null,
constraint pk_migtest_e_history6 primary key (id)
);
create column table migtest_e_ref (
id integer generated by default as identity not null,
name nvarchar(127) not null,
constraint uq_migtest_e_ref_name unique (name),
constraint pk_migtest_e_ref primary key (id)
);
create column table migtest_e_softdelete (
id integer generated by default as identity not null,
test_string nvarchar(255),
constraint pk_migtest_e_softdelete primary key (id)
);
create column table migtest_mtm_c (
id integer generated by default as identity not null,
name nvarchar(255),
constraint pk_migtest_mtm_c primary key (id)
);
create column table migtest_mtm_m (
id bigint generated by default as identity not null,
name nvarchar(255),
constraint pk_migtest_mtm_m primary key (id)
);
create column table migtest_oto_child (
id integer generated by default as identity not null,
name nvarchar(255),
constraint pk_migtest_oto_child primary key (id)
);
create column table migtest_oto_master (
id bigint generated by default as identity not null,
name nvarchar(255),
constraint pk_migtest_oto_master primary key (id)
);
-- explicit index "ix_migtest_e_basic_indextest1" for single column "indextest1" of table "migtest_e_basic" is not necessary;
-- explicit index "ix_migtest_e_basic_indextest5" for single column "indextest5" of table "migtest_e_basic" is not necessary;
-- explicit index "ix_migtest_fk_cascade_one_id" for single column "one_id" of table "migtest_fk_cascade" is not necessary;
alter table migtest_fk_cascade add constraint fk_migtest_fk_cascade_one_id foreign key (one_id) references migtest_fk_cascade_one (id) on delete cascade on update cascade;
-- explicit index "ix_migtest_fk_set_null_one_id" for single column "one_id" of table "migtest_fk_set_null" is not necessary;
alter table migtest_fk_set_null add constraint fk_migtest_fk_set_null_one_id foreign key (one_id) references migtest_fk_one (id) on delete set null on update set null;
-- explicit index "ix_migtest_e_basic_eref_id" for single column "eref_id" of table "migtest_e_basic" is not necessary;
alter table migtest_e_basic add constraint fk_migtest_e_basic_eref_id foreign key (eref_id) references migtest_e_ref (id) on delete restrict on update restrict;
create column table migtest_e_history2_history (
id integer,
test_string nvarchar(255),
obsolete_string1 nvarchar(255),
obsolete_string2 nvarchar(255),
sys_period_start timestamp,
sys_period_end timestamp
);
alter table migtest_e_history2 add (
sys_period_start TIMESTAMP NOT NULL GENERATED ALWAYS AS ROW START,
sys_period_end TIMESTAMP NOT NULL GENERATED ALWAYS AS ROW END
);
alter table migtest_e_history2 add period for system_time(sys_period_start,sys_period_end);
alter table migtest_e_history2 add system versioning history table migtest_e_history2_history;
create column table migtest_e_history3_history (
id integer,
test_string nvarchar(255),
sys_period_start timestamp,
sys_period_end timestamp
);
alter table migtest_e_history3 add (
sys_period_start TIMESTAMP NOT NULL GENERATED ALWAYS AS ROW START,
sys_period_end TIMESTAMP NOT NULL GENERATED ALWAYS AS ROW END
);
alter table migtest_e_history3 add period for system_time(sys_period_start,sys_period_end);
alter table migtest_e_history3 add system versioning history table migtest_e_history3_history;
create column table migtest_e_history4_history (
id integer,
test_number integer,
sys_period_start timestamp,
sys_period_end timestamp
);
alter table migtest_e_history4 add (
sys_period_start TIMESTAMP NOT NULL GENERATED ALWAYS AS ROW START,
sys_period_end TIMESTAMP NOT NULL GENERATED ALWAYS AS ROW END
);
alter table migtest_e_history4 add period for system_time(sys_period_start,sys_period_end);
alter table migtest_e_history4 add system versioning history table migtest_e_history4_history;
create column table migtest_e_history5_history (
id integer,
test_number integer,
sys_period_start timestamp,
sys_period_end timestamp
);
alter table migtest_e_history5 add (
sys_period_start TIMESTAMP NOT NULL GENERATED ALWAYS AS ROW START,
sys_period_end TIMESTAMP NOT NULL GENERATED ALWAYS AS ROW END
);
alter table migtest_e_history5 add period for system_time(sys_period_start,sys_period_end);
alter table migtest_e_history5 add system versioning history table migtest_e_history5_history;
create column table migtest_e_history6_history (
id integer,
test_number1 integer,
test_number2 integer not null,
sys_period_start timestamp,
sys_period_end timestamp
);
alter table migtest_e_history6 add (
sys_period_start TIMESTAMP NOT NULL GENERATED ALWAYS AS ROW START,
sys_period_end TIMESTAMP NOT NULL GENERATED ALWAYS AS ROW END
);
alter table migtest_e_history6 add period for system_time(sys_period_start,sys_period_end);
alter table migtest_e_history6 add system versioning history table migtest_e_history6_history;
@@ -1,181 +0,0 @@
-- Migrationscripts for ebean unittest
-- apply changes
create column table migtest_e_user (
id integer generated by default as identity not null,
constraint pk_migtest_e_user primary key (id)
);
create column table migtest_mtm_c_migtest_mtm_m (
migtest_mtm_c_id integer not null,
migtest_mtm_m_id bigint not null,
constraint pk_migtest_mtm_c_migtest_mtm_m primary key (migtest_mtm_c_id,migtest_mtm_m_id)
);
create column table migtest_mtm_m_migtest_mtm_c (
migtest_mtm_m_id bigint not null,
migtest_mtm_c_id integer not null,
constraint pk_migtest_mtm_m_migtest_mtm_c primary key (migtest_mtm_m_id,migtest_mtm_c_id)
);
alter table migtest_ckey_detail add ( one_key integer);
alter table migtest_ckey_detail add ( two_key nvarchar(127));
alter table migtest_ckey_detail add constraint fk_migtest_ckey_detail_parent foreign key (one_key,two_key) references migtest_ckey_parent (one_key,two_key) on delete restrict on update restrict;
alter table migtest_ckey_parent add ( assoc_id integer);
alter table migtest_fk_cascade drop constraint fk_migtest_fk_cascade_one_id;
alter table migtest_fk_cascade add constraint fk_migtest_fk_cascade_one_id foreign key (one_id) references migtest_fk_cascade_one (id) on delete restrict on update restrict;
alter table migtest_fk_none add constraint fk_migtest_fk_none_one_id foreign key (one_id) references migtest_fk_one (id) on delete restrict on update restrict;
alter table migtest_fk_none_via_join add constraint fk_migtest_fk_none_via_join_one_id foreign key (one_id) references migtest_fk_one (id) on delete restrict on update restrict;
alter table migtest_fk_set_null drop constraint fk_migtest_fk_set_null_one_id;
alter table migtest_fk_set_null add constraint fk_migtest_fk_set_null_one_id foreign key (one_id) references migtest_fk_one (id) on delete restrict on update restrict;
update migtest_e_basic set status = 'A' where status is null;
delimiter $$
do
begin
declare exit handler for sql_error_code 397 begin end;
exec 'alter table migtest_e_basic drop constraint ck_migtest_e_basic_status';
end;
$$;
alter table migtest_e_basic alter ( status nvarchar(1) default 'A' not null);
alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I','?'));
delimiter $$
do
begin
declare exit handler for sql_error_code 397 begin end;
exec 'alter table migtest_e_basic drop constraint ck_migtest_e_basic_status2';
end;
$$;
alter table migtest_e_basic alter ( status2 nvarchar(127) default null);
-- rename all collisions;
-- cannot create unique index "uq_migtest_e_basic_description" on table "migtest_e_basic" with nullable columns;
insert into migtest_e_user (id) select distinct user_id from migtest_e_basic;
alter table migtest_e_basic add constraint fk_migtest_e_basic_user_id foreign key (user_id) references migtest_e_user (id) on delete restrict on update restrict;
alter table migtest_e_basic alter ( user_id integer);
alter table migtest_e_basic add ( new_string_field nvarchar(255) default 'foo''bar' not null);
alter table migtest_e_basic add ( new_boolean_field boolean default true not null);
update migtest_e_basic set new_boolean_field = old_boolean;
alter table migtest_e_basic add ( new_boolean_field2 boolean default true not null);
alter table migtest_e_basic add ( progress integer default 0 not null);
alter table migtest_e_basic add constraint ck_migtest_e_basic_progress check ( progress in (0,1,2));
alter table migtest_e_basic add ( new_integer integer default 42 not null);
delimiter $$
do
begin
declare exit handler for sql_error_code 397 begin end;
exec 'alter table migtest_e_basic drop constraint uq_migtest_e_basic_indextest2';
end;
$$;
delimiter $$
do
begin
declare exit handler for sql_error_code 397 begin end;
exec 'alter table migtest_e_basic drop constraint uq_migtest_e_basic_indextest6';
end;
$$;
-- cannot create unique index "uq_migtest_e_basic_status_indextest1" on table "migtest_e_basic" with nullable columns;
-- cannot create unique index "uq_migtest_e_basic_name" on table "migtest_e_basic" with nullable columns;
-- cannot create unique index "uq_migtest_e_basic_indextest4" on table "migtest_e_basic" with nullable columns;
-- cannot create unique index "uq_migtest_e_basic_indextest5" on table "migtest_e_basic" with nullable columns;
delimiter $$
do
begin
declare exit handler for sql_error_code 397 begin end;
exec 'alter table migtest_e_enum drop constraint ck_migtest_e_enum_test_status';
end;
$$;
comment on column migtest_e_history.test_string is 'Column altered to long now';
alter table migtest_e_history alter ( test_string bigint);
comment on table migtest_e_history is 'We have history now';
alter table migtest_e_history2 drop system versioning /* 0 */;
-- NOTE: table has @History - special migration may be necessary
update migtest_e_history2 set test_string = 'unknown' where test_string is null;
alter table migtest_e_history2 alter ( test_string nvarchar(255) default 'unknown' not null);
alter table migtest_e_history2_history alter ( test_string nvarchar(255) default 'unknown' not null);
alter table migtest_e_history2 add system versioning history table migtest_e_history2_history not validated /* 1 */;
alter table migtest_e_history2 drop system versioning /* 2 */;
alter table migtest_e_history2 add ( test_string2 nvarchar(255));
alter table migtest_e_history2 add ( test_string3 nvarchar(255) default 'unknown' not null);
alter table migtest_e_history2 add ( new_column nvarchar(20));
alter table migtest_e_history2_history add ( test_string2 nvarchar(255));
alter table migtest_e_history2_history add ( test_string3 nvarchar(255) default 'unknown');
alter table migtest_e_history2_history add ( new_column nvarchar(20));
alter table migtest_e_history2 add system versioning history table migtest_e_history2_history not validated /* 3 */;
alter table migtest_e_history3 drop system versioning /* 4 */;
alter table migtest_e_history3 add system versioning history table migtest_e_history3_history not validated /* 5 */;
alter table migtest_e_history4 drop system versioning /* 6 */;
alter table migtest_e_history4 alter ( test_number bigint);
alter table migtest_e_history4_history alter ( test_number bigint);
alter table migtest_e_history4 add system versioning history table migtest_e_history4_history not validated /* 7 */;
alter table migtest_e_history5 drop system versioning /* 8 */;
alter table migtest_e_history5 add ( test_boolean boolean default false not null);
alter table migtest_e_history5_history add ( test_boolean boolean default false);
alter table migtest_e_history5 add system versioning history table migtest_e_history5_history not validated /* 9 */;
alter table migtest_e_history6 drop system versioning /* 10 */;
-- NOTE: table has @History - special migration may be necessary
update migtest_e_history6 set test_number1 = 42 where test_number1 is null;
alter table migtest_e_history6 alter ( test_number1 integer default 42 not null);
alter table migtest_e_history6_history alter ( test_number1 integer default 42 not null);
alter table migtest_e_history6 add system versioning history table migtest_e_history6_history not validated /* 11 */;
alter table migtest_e_history6 drop system versioning /* 12 */;
alter table migtest_e_history6 alter ( test_number2 integer);
alter table migtest_e_history6_history alter ( test_number2 integer);
alter table migtest_e_history6 add system versioning history table migtest_e_history6_history not validated /* 13 */;
alter table migtest_e_softdelete add ( deleted boolean default false not null);
alter table migtest_oto_child add ( master_id bigint);
-- explicit index "ix_migtest_e_basic_indextest3" for single column "indextest3" of table "migtest_e_basic" is not necessary;
-- explicit index "ix_migtest_e_basic_indextest6" for single column "indextest6" of table "migtest_e_basic" is not necessary;
delimiter $$
do
begin
declare exit handler for sql_error_code 261 begin end;
exec 'drop index ix_migtest_e_basic_indextest1';
end;
$$;
delimiter $$
do
begin
declare exit handler for sql_error_code 261 begin end;
exec 'drop index ix_migtest_e_basic_indextest5';
end;
$$;
-- explicit index "ix_migtest_mtm_c_migtest_mtm_m_migtest_mtm_c" for single column "migtest_mtm_c_id" of table "migtest_mtm_c_migtest_mtm_m" is not necessary;
alter table migtest_mtm_c_migtest_mtm_m add constraint fk_migtest_mtm_c_migtest_mtm_m_migtest_mtm_c foreign key (migtest_mtm_c_id) references migtest_mtm_c (id) on delete restrict on update restrict;
-- explicit index "ix_migtest_mtm_c_migtest_mtm_m_migtest_mtm_m" for single column "migtest_mtm_m_id" of table "migtest_mtm_c_migtest_mtm_m" is not necessary;
alter table migtest_mtm_c_migtest_mtm_m add constraint fk_migtest_mtm_c_migtest_mtm_m_migtest_mtm_m foreign key (migtest_mtm_m_id) references migtest_mtm_m (id) on delete restrict on update restrict;
-- explicit index "ix_migtest_mtm_m_migtest_mtm_c_migtest_mtm_m" for single column "migtest_mtm_m_id" of table "migtest_mtm_m_migtest_mtm_c" is not necessary;
alter table migtest_mtm_m_migtest_mtm_c add constraint fk_migtest_mtm_m_migtest_mtm_c_migtest_mtm_m foreign key (migtest_mtm_m_id) references migtest_mtm_m (id) on delete restrict on update restrict;
-- explicit index "ix_migtest_mtm_m_migtest_mtm_c_migtest_mtm_c" for single column "migtest_mtm_c_id" of table "migtest_mtm_m_migtest_mtm_c" is not necessary;
alter table migtest_mtm_m_migtest_mtm_c add constraint fk_migtest_mtm_m_migtest_mtm_c_migtest_mtm_c foreign key (migtest_mtm_c_id) references migtest_mtm_c (id) on delete restrict on update restrict;
-- explicit index "ix_migtest_ckey_parent_assoc_id" for single column "assoc_id" of table "migtest_ckey_parent" is not necessary;
alter table migtest_ckey_parent add constraint fk_migtest_ckey_parent_assoc_id foreign key (assoc_id) references migtest_ckey_assoc (id) on delete restrict on update restrict;
alter table migtest_oto_child add constraint fk_migtest_oto_child_master_id foreign key (master_id) references migtest_oto_master (id) on delete restrict on update restrict;
create column table migtest_e_history_history (
id integer,
test_string bigint,
sys_period_start timestamp,
sys_period_end timestamp
);
alter table migtest_e_history add (
sys_period_start TIMESTAMP NOT NULL GENERATED ALWAYS AS ROW START,
sys_period_end TIMESTAMP NOT NULL GENERATED ALWAYS AS ROW END
);
alter table migtest_e_history add period for system_time(sys_period_start,sys_period_end);
alter table migtest_e_history add system versioning history table migtest_e_history_history;
@@ -1,19 +0,0 @@
-- Migrationscripts for ebean unittest
-- apply changes
CALL usp_ebean_drop_column('migtest_e_basic', 'old_boolean');
CALL usp_ebean_drop_column('migtest_e_basic', 'old_boolean2');
CALL usp_ebean_drop_column('migtest_e_basic', 'eref_id');
alter table migtest_e_history2 drop system versioning /* 0 */;
CALL usp_ebean_drop_column('migtest_e_history2', 'obsolete_string1');
CALL usp_ebean_drop_column('migtest_e_history2_history', 'obsolete_string1');
alter table migtest_e_history2 add system versioning history table migtest_e_history2_history not validated /* 1 */;
alter table migtest_e_history2 drop system versioning /* 2 */;
CALL usp_ebean_drop_column('migtest_e_history2', 'obsolete_string2');
CALL usp_ebean_drop_column('migtest_e_history2_history', 'obsolete_string2');
alter table migtest_e_history2 add system versioning history table migtest_e_history2_history not validated /* 3 */;
drop table migtest_e_ref cascade;
@@ -1,141 +0,0 @@
-- Migrationscripts for ebean unittest
-- apply changes
create column table migtest_e_ref (
id integer generated by default as identity not null,
name nvarchar(127) not null,
constraint uq_migtest_e_ref_name unique (name),
constraint pk_migtest_e_ref primary key (id)
);
alter table migtest_ckey_detail drop constraint fk_migtest_ckey_detail_parent;
alter table migtest_fk_cascade drop constraint fk_migtest_fk_cascade_one_id;
alter table migtest_fk_cascade add constraint fk_migtest_fk_cascade_one_id foreign key (one_id) references migtest_fk_cascade_one (id) on delete cascade on update 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 on update set 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 null);
alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I'));
update migtest_e_basic set status2 = 'N' where status2 is null;
delimiter $$
do
begin
declare exit handler for sql_error_code 397 begin end;
exec 'alter table migtest_e_basic drop constraint ck_migtest_e_basic_status2';
end;
$$;
alter table migtest_e_basic alter ( status2 nclob default 'N' not null);
alter table migtest_e_basic alter ( status2 nvarchar(1) default 'N' not null);
alter table migtest_e_basic add constraint ck_migtest_e_basic_status2 check ( status2 in ('N','A','I'));
delimiter $$
do
begin
declare exit handler for sql_error_code 397 begin end;
exec 'alter table migtest_e_basic drop constraint uq_migtest_e_basic_description';
end;
$$;
update migtest_e_basic set user_id = 23 where user_id is null;
alter table migtest_e_basic drop constraint fk_migtest_e_basic_user_id;
alter table migtest_e_basic alter ( user_id integer default 23 not null);
alter table migtest_e_basic add ( old_boolean boolean default false not null);
alter table migtest_e_basic add ( old_boolean2 boolean);
alter table migtest_e_basic add ( eref_id integer);
delimiter $$
do
begin
declare exit handler for sql_error_code 397 begin end;
exec 'alter table migtest_e_basic drop constraint uq_migtest_e_basic_status_indextest1';
end;
$$;
delimiter $$
do
begin
declare exit handler for sql_error_code 397 begin end;
exec 'alter table migtest_e_basic drop constraint uq_migtest_e_basic_name';
end;
$$;
delimiter $$
do
begin
declare exit handler for sql_error_code 397 begin end;
exec 'alter table migtest_e_basic drop constraint uq_migtest_e_basic_indextest4';
end;
$$;
delimiter $$
do
begin
declare exit handler for sql_error_code 397 begin end;
exec 'alter table migtest_e_basic drop constraint uq_migtest_e_basic_indextest5';
end;
$$;
-- cannot create unique index "uq_migtest_e_basic_indextest2" on table "migtest_e_basic" with nullable columns;
-- cannot create unique index "uq_migtest_e_basic_indextest6" on table "migtest_e_basic" with nullable columns;
delimiter $$
do
begin
declare exit handler for sql_error_code 397 begin end;
exec 'alter table migtest_e_enum drop constraint ck_migtest_e_enum_test_status';
end;
$$;
alter table migtest_e_enum add constraint ck_migtest_e_enum_test_status check ( test_status in ('N','A','I'));
comment on column migtest_e_history.test_string is '';
comment on table migtest_e_history is '';
alter table migtest_e_history2 drop system versioning /* 0 */;
alter table migtest_e_history2 alter ( test_string nvarchar(255) default null);
alter table migtest_e_history2_history alter ( test_string nvarchar(255) default null);
alter table migtest_e_history2 add system versioning history table migtest_e_history2_history not validated /* 1 */;
alter table migtest_e_history2 drop system versioning /* 2 */;
alter table migtest_e_history2 add ( obsolete_string1 nvarchar(255));
alter table migtest_e_history2 add ( obsolete_string2 nvarchar(255));
alter table migtest_e_history2_history add ( obsolete_string1 nvarchar(255));
alter table migtest_e_history2_history add ( obsolete_string2 nvarchar(255));
alter table migtest_e_history2 add system versioning history table migtest_e_history2_history not validated /* 3 */;
alter table migtest_e_history3 drop system versioning /* 4 */;
alter table migtest_e_history3 add system versioning history table migtest_e_history3_history not validated /* 5 */;
alter table migtest_e_history4 drop system versioning /* 6 */;
alter table migtest_e_history4 alter ( test_number decimal );
alter table migtest_e_history4 alter ( test_number integer);
alter table migtest_e_history4_history alter ( test_number decimal );
alter table migtest_e_history4_history alter ( test_number integer);
alter table migtest_e_history4 add system versioning history table migtest_e_history4_history not validated /* 7 */;
alter table migtest_e_history6 drop system versioning /* 8 */;
alter table migtest_e_history6 alter ( test_number1 integer default null);
alter table migtest_e_history6_history alter ( test_number1 integer default null);
alter table migtest_e_history6 add system versioning history table migtest_e_history6_history not validated /* 9 */;
alter table migtest_e_history6 drop system versioning /* 10 */;
-- NOTE: table has @History - special migration may be necessary
update migtest_e_history6 set test_number2 = 7 where test_number2 is null;
alter table migtest_e_history6 alter ( test_number2 integer default 7 not null);
alter table migtest_e_history6_history alter ( test_number2 integer default 7 not null);
alter table migtest_e_history6 add system versioning history table migtest_e_history6_history not validated /* 11 */;
-- explicit index "ix_migtest_e_basic_indextest1" for single column "indextest1" of table "migtest_e_basic" is not necessary;
-- explicit index "ix_migtest_e_basic_indextest5" for single column "indextest5" of table "migtest_e_basic" is not necessary;
delimiter $$
do
begin
declare exit handler for sql_error_code 261 begin end;
exec 'drop index ix_migtest_e_basic_indextest3';
end;
$$;
delimiter $$
do
begin
declare exit handler for sql_error_code 261 begin end;
exec 'drop index ix_migtest_e_basic_indextest6';
end;
$$;
-- explicit index "ix_migtest_e_basic_eref_id" for single column "eref_id" of table "migtest_e_basic" is not necessary;
alter table migtest_e_basic add constraint fk_migtest_e_basic_eref_id foreign key (eref_id) references migtest_e_ref (id) on delete restrict on update restrict;
@@ -1,51 +0,0 @@
-- Migrationscripts for ebean unittest
-- drop dependencies
alter table migtest_e_history drop system versioning;
alter table migtest_e_history drop period for system_time;
alter table migtest_e_history drop (sys_period_start,sys_period_end);
drop table migtest_e_history_history cascade;
-- apply changes
CALL usp_ebean_drop_column('migtest_ckey_detail', 'one_key');
CALL usp_ebean_drop_column('migtest_ckey_detail', 'two_key');
CALL usp_ebean_drop_column('migtest_ckey_parent', 'assoc_id');
CALL usp_ebean_drop_column('migtest_e_basic', 'new_string_field');
CALL usp_ebean_drop_column('migtest_e_basic', 'new_boolean_field');
CALL usp_ebean_drop_column('migtest_e_basic', 'new_boolean_field2');
CALL usp_ebean_drop_column('migtest_e_basic', 'progress');
CALL usp_ebean_drop_column('migtest_e_basic', 'new_integer');
alter table migtest_e_history2 drop system versioning /* 0 */;
CALL usp_ebean_drop_column('migtest_e_history2', 'test_string2');
CALL usp_ebean_drop_column('migtest_e_history2_history', 'test_string2');
alter table migtest_e_history2 add system versioning history table migtest_e_history2_history not validated /* 1 */;
alter table migtest_e_history2 drop system versioning /* 2 */;
CALL usp_ebean_drop_column('migtest_e_history2', 'test_string3');
CALL usp_ebean_drop_column('migtest_e_history2_history', 'test_string3');
alter table migtest_e_history2 add system versioning history table migtest_e_history2_history not validated /* 3 */;
alter table migtest_e_history2 drop system versioning /* 4 */;
CALL usp_ebean_drop_column('migtest_e_history2', 'new_column');
CALL usp_ebean_drop_column('migtest_e_history2_history', 'new_column');
alter table migtest_e_history2 add system versioning history table migtest_e_history2_history not validated /* 5 */;
alter table migtest_e_history5 drop system versioning /* 6 */;
CALL usp_ebean_drop_column('migtest_e_history5', 'test_boolean');
CALL usp_ebean_drop_column('migtest_e_history5_history', 'test_boolean');
alter table migtest_e_history5 add system versioning history table migtest_e_history5_history not validated /* 7 */;
CALL usp_ebean_drop_column('migtest_e_softdelete', 'deleted');
CALL usp_ebean_drop_column('migtest_oto_child', 'master_id');
drop table migtest_e_user cascade;
drop table migtest_mtm_c_migtest_mtm_m cascade;
drop table migtest_mtm_m_migtest_mtm_c cascade;
@@ -1,7 +0,0 @@
create view order_agg_vw as
select d.order_id, sum(d.order_qty * d.unit_price) as order_total,
sum(d.ship_qty * d.unit_price) as ship_total
from o_order_detail d
group by d.order_id;
@@ -1,174 +0,0 @@
-- Migrationscripts for ebean unittest
-- apply changes
create table migtest_ckey_assoc (
id integer generated by default as identity (start with 1) not null,
assoc_one varchar(255),
constraint pk_migtest_ckey_assoc primary key (id)
);
create table migtest_ckey_detail (
id integer generated by default as identity (start with 1) not null,
something varchar(255),
constraint pk_migtest_ckey_detail primary key (id)
);
create table migtest_ckey_parent (
one_key integer not null,
two_key varchar(127) not null,
name varchar(255),
version integer not null,
constraint pk_migtest_ckey_parent primary key (one_key,two_key)
);
create table migtest_fk_cascade (
id bigint generated by default as identity (start with 1) not null,
one_id bigint,
constraint pk_migtest_fk_cascade primary key (id)
);
create table migtest_fk_cascade_one (
id bigint generated by default as identity (start with 1) not null,
constraint pk_migtest_fk_cascade_one primary key (id)
);
create table migtest_fk_none (
id bigint generated by default as identity (start with 1) not null,
one_id bigint,
constraint pk_migtest_fk_none primary key (id)
);
create table migtest_fk_none_via_join (
id bigint generated by default as identity (start with 1) not null,
one_id bigint,
constraint pk_migtest_fk_none_via_join primary key (id)
);
create table migtest_fk_one (
id bigint generated by default as identity (start with 1) not null,
constraint pk_migtest_fk_one primary key (id)
);
create table migtest_fk_set_null (
id bigint generated by default as identity (start with 1) not null,
one_id bigint,
constraint pk_migtest_fk_set_null primary key (id)
);
create table migtest_e_basic (
id integer generated by default as identity (start with 1) not null,
status varchar(1),
status2 varchar(1) default 'N' not null,
name varchar(127),
description varchar(127),
some_date timestamp,
old_boolean boolean default false not null,
old_boolean2 boolean,
eref_id integer,
indextest1 varchar(127),
indextest2 varchar(127),
indextest3 varchar(127),
indextest4 varchar(127),
indextest5 varchar(127),
indextest6 varchar(127),
user_id integer not null,
constraint ck_migtest_e_basic_status check ( status in ('N','A','I')),
constraint ck_migtest_e_basic_status2 check ( status2 in ('N','A','I')),
constraint uq_migtest_e_basic_indextest2 unique (indextest2),
constraint uq_migtest_e_basic_indextest6 unique (indextest6),
constraint pk_migtest_e_basic primary key (id)
);
create table migtest_e_enum (
id integer generated by default as identity (start with 1) not null,
test_status varchar(1),
constraint ck_migtest_e_enum_test_status check ( test_status in ('N','A','I')),
constraint pk_migtest_e_enum primary key (id)
);
create table migtest_e_history (
id integer generated by default as identity (start with 1) not null,
test_string varchar(255),
constraint pk_migtest_e_history primary key (id)
);
create table migtest_e_history2 (
id integer generated by default as identity (start with 1) not null,
test_string varchar(255),
obsolete_string1 varchar(255),
obsolete_string2 varchar(255),
constraint pk_migtest_e_history2 primary key (id)
);
create table migtest_e_history3 (
id integer generated by default as identity (start with 1) not null,
test_string varchar(255),
constraint pk_migtest_e_history3 primary key (id)
);
create table migtest_e_history4 (
id integer generated by default as identity (start with 1) not null,
test_number integer,
constraint pk_migtest_e_history4 primary key (id)
);
create table migtest_e_history5 (
id integer generated by default as identity (start with 1) not null,
test_number integer,
constraint pk_migtest_e_history5 primary key (id)
);
create table migtest_e_history6 (
id integer generated by default as identity (start with 1) not null,
test_number1 integer,
test_number2 integer not null,
constraint pk_migtest_e_history6 primary key (id)
);
create table migtest_e_ref (
id integer generated by default as identity (start with 1) not null,
name varchar(127) not null,
constraint uq_migtest_e_ref_name unique (name),
constraint pk_migtest_e_ref primary key (id)
);
create table migtest_e_softdelete (
id integer generated by default as identity (start with 1) not null,
test_string varchar(255),
constraint pk_migtest_e_softdelete primary key (id)
);
create table migtest_mtm_c (
id integer generated by default as identity (start with 1) not null,
name varchar(255),
constraint pk_migtest_mtm_c primary key (id)
);
create table migtest_mtm_m (
id bigint generated by default as identity (start with 1) not null,
name varchar(255),
constraint pk_migtest_mtm_m primary key (id)
);
create table migtest_oto_child (
id integer generated by default as identity (start with 1) not null,
name varchar(255),
constraint pk_migtest_oto_child primary key (id)
);
create table migtest_oto_master (
id bigint generated by default as identity (start with 1) not null,
name varchar(255),
constraint pk_migtest_oto_master primary key (id)
);
create index ix_migtest_e_basic_indextest1 on migtest_e_basic (indextest1);
create index ix_migtest_e_basic_indextest5 on migtest_e_basic (indextest5);
create index ix_migtest_fk_cascade_one_id on migtest_fk_cascade (one_id);
alter table migtest_fk_cascade add constraint fk_migtest_fk_cascade_one_id foreign key (one_id) references migtest_fk_cascade_one (id) on delete cascade on update cascade;
create index ix_migtest_fk_set_null_one_id on migtest_fk_set_null (one_id);
alter table migtest_fk_set_null add constraint fk_migtest_fk_set_null_one_id foreign key (one_id) references migtest_fk_one (id) on delete set null on update 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 on update restrict;
@@ -1,110 +0,0 @@
-- Migrationscripts for ebean unittest
-- apply changes
create table migtest_e_user (
id integer generated by default as identity (start with 1) not null,
constraint pk_migtest_e_user primary key (id)
);
create table migtest_mtm_c_migtest_mtm_m (
migtest_mtm_c_id integer not null,
migtest_mtm_m_id bigint not null,
constraint pk_migtest_mtm_c_migtest_mtm_m primary key (migtest_mtm_c_id,migtest_mtm_m_id)
);
create table migtest_mtm_m_migtest_mtm_c (
migtest_mtm_m_id bigint not null,
migtest_mtm_c_id integer not null,
constraint pk_migtest_mtm_m_migtest_mtm_c primary key (migtest_mtm_m_id,migtest_mtm_c_id)
);
alter table migtest_ckey_detail add column one_key integer;
alter table migtest_ckey_detail add column two_key varchar(127);
alter table migtest_ckey_detail add constraint fk_migtest_ckey_detail_parent foreign key (one_key,two_key) references migtest_ckey_parent (one_key,two_key) on delete restrict on update restrict;
alter table migtest_ckey_parent add column assoc_id integer;
alter table migtest_fk_cascade drop constraint if exists fk_migtest_fk_cascade_one_id;
alter table migtest_fk_cascade add constraint fk_migtest_fk_cascade_one_id foreign key (one_id) references migtest_fk_cascade_one (id) on delete restrict on update restrict;
alter table migtest_fk_none add constraint fk_migtest_fk_none_one_id foreign key (one_id) references migtest_fk_one (id) on delete restrict on update restrict;
alter table migtest_fk_none_via_join add constraint fk_migtest_fk_none_via_join_one_id foreign key (one_id) references migtest_fk_one (id) on delete restrict on update restrict;
alter table migtest_fk_set_null drop constraint if exists fk_migtest_fk_set_null_one_id;
alter table migtest_fk_set_null add constraint fk_migtest_fk_set_null_one_id foreign key (one_id) references migtest_fk_one (id) on delete restrict on update restrict;
update migtest_e_basic set status = 'A' where status is null;
alter table migtest_e_basic drop constraint if exists ck_migtest_e_basic_status;
alter table migtest_e_basic alter column status set default 'A';
alter table migtest_e_basic alter column status set not null;
alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I','?'));
alter table migtest_e_basic drop constraint if exists ck_migtest_e_basic_status2;
alter table migtest_e_basic alter column status2 varchar(127);
alter table migtest_e_basic alter column status2 drop default;
alter table migtest_e_basic alter column status2 set null;
-- rename all collisions;
alter table migtest_e_basic add constraint uq_migtest_e_basic_description unique (description);
insert into migtest_e_user (id) select distinct user_id from migtest_e_basic;
alter table migtest_e_basic add constraint fk_migtest_e_basic_user_id foreign key (user_id) references migtest_e_user (id) on delete restrict on update restrict;
alter table migtest_e_basic alter column user_id set null;
alter table migtest_e_basic add column new_string_field varchar(255) default 'foo''bar' not null;
alter table migtest_e_basic add column new_boolean_field boolean default true not null;
update migtest_e_basic set new_boolean_field = old_boolean;
alter table migtest_e_basic add column new_boolean_field2 boolean default true not null;
alter table migtest_e_basic add column progress integer default 0 not null;
alter table migtest_e_basic add constraint ck_migtest_e_basic_progress check ( progress in (0,1,2));
alter table migtest_e_basic add column new_integer integer default 42 not null;
alter table migtest_e_basic drop constraint uq_migtest_e_basic_indextest2;
alter table migtest_e_basic drop constraint uq_migtest_e_basic_indextest6;
alter table migtest_e_basic add constraint uq_migtest_e_basic_status_indextest1 unique (status,indextest1);
alter table migtest_e_basic add constraint uq_migtest_e_basic_name unique (name);
alter table migtest_e_basic add constraint uq_migtest_e_basic_indextest4 unique (indextest4);
alter table migtest_e_basic add constraint uq_migtest_e_basic_indextest5 unique (indextest5);
alter table migtest_e_enum drop constraint if exists ck_migtest_e_enum_test_status;
comment on column migtest_e_history.test_string is 'Column altered to long now';
alter table migtest_e_history alter column test_string bigint;
comment on table migtest_e_history is 'We have history now';
-- NOTE: table has @History - special migration may be necessary
update migtest_e_history2 set test_string = 'unknown' where test_string is null;
alter table migtest_e_history2 alter column test_string set default 'unknown';
alter table migtest_e_history2 alter column test_string set not null;
alter table migtest_e_history2 add column test_string2 varchar(255);
alter table migtest_e_history2 add column test_string3 varchar(255) default 'unknown' not null;
alter table migtest_e_history2 add column new_column varchar(20);
alter table migtest_e_history4 alter column test_number bigint;
alter table migtest_e_history5 add column test_boolean boolean default false not null;
-- NOTE: table has @History - special migration may be necessary
update migtest_e_history6 set test_number1 = 42 where test_number1 is null;
alter table migtest_e_history6 alter column test_number1 set default 42;
alter table migtest_e_history6 alter column test_number1 set not null;
alter table migtest_e_history6 alter column test_number2 set null;
alter table migtest_e_softdelete add column deleted boolean default false not null;
alter table migtest_oto_child add column master_id bigint;
create index ix_migtest_e_basic_indextest3 on migtest_e_basic (indextest3);
create index ix_migtest_e_basic_indextest6 on migtest_e_basic (indextest6);
drop index if exists ix_migtest_e_basic_indextest1;
drop index if exists ix_migtest_e_basic_indextest5;
create index ix_migtest_mtm_c_migtest_mtm_m_migtest_mtm_c on migtest_mtm_c_migtest_mtm_m (migtest_mtm_c_id);
alter table migtest_mtm_c_migtest_mtm_m add constraint fk_migtest_mtm_c_migtest_mtm_m_migtest_mtm_c foreign key (migtest_mtm_c_id) references migtest_mtm_c (id) on delete restrict on update restrict;
create index ix_migtest_mtm_c_migtest_mtm_m_migtest_mtm_m on migtest_mtm_c_migtest_mtm_m (migtest_mtm_m_id);
alter table migtest_mtm_c_migtest_mtm_m add constraint fk_migtest_mtm_c_migtest_mtm_m_migtest_mtm_m foreign key (migtest_mtm_m_id) references migtest_mtm_m (id) on delete restrict on update restrict;
create index ix_migtest_mtm_m_migtest_mtm_c_migtest_mtm_m on migtest_mtm_m_migtest_mtm_c (migtest_mtm_m_id);
alter table migtest_mtm_m_migtest_mtm_c add constraint fk_migtest_mtm_m_migtest_mtm_c_migtest_mtm_m foreign key (migtest_mtm_m_id) references migtest_mtm_m (id) on delete restrict on update restrict;
create index ix_migtest_mtm_m_migtest_mtm_c_migtest_mtm_c on migtest_mtm_m_migtest_mtm_c (migtest_mtm_c_id);
alter table migtest_mtm_m_migtest_mtm_c add constraint fk_migtest_mtm_m_migtest_mtm_c_migtest_mtm_c foreign key (migtest_mtm_c_id) references migtest_mtm_c (id) on delete restrict on update restrict;
create index ix_migtest_ckey_parent_assoc_id on migtest_ckey_parent (assoc_id);
alter table migtest_ckey_parent add constraint fk_migtest_ckey_parent_assoc_id foreign key (assoc_id) references migtest_ckey_assoc (id) on delete restrict on update restrict;
alter table migtest_oto_child add constraint fk_migtest_oto_child_master_id foreign key (master_id) references migtest_oto_master (id) on delete restrict on update restrict;
@@ -1,14 +0,0 @@
-- Migrationscripts for ebean unittest
-- apply changes
alter table migtest_e_basic drop column old_boolean;
alter table migtest_e_basic drop column old_boolean2;
alter table migtest_e_basic drop column eref_id;
alter table migtest_e_history2 drop column obsolete_string1;
alter table migtest_e_history2 drop column obsolete_string2;
drop table if exists migtest_e_ref;
drop sequence if exists migtest_e_ref_seq;
@@ -1,67 +0,0 @@
-- Migrationscripts for ebean unittest
-- apply changes
create table migtest_e_ref (
id integer generated by default as identity (start with 1) not null,
name varchar(127) not null,
constraint uq_migtest_e_ref_name unique (name),
constraint pk_migtest_e_ref primary key (id)
);
alter table migtest_ckey_detail drop constraint if exists fk_migtest_ckey_detail_parent;
alter table migtest_fk_cascade drop constraint if exists fk_migtest_fk_cascade_one_id;
alter table migtest_fk_cascade add constraint fk_migtest_fk_cascade_one_id foreign key (one_id) references migtest_fk_cascade_one (id) on delete cascade on update cascade;
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 set null;
alter table migtest_e_basic drop constraint if exists ck_migtest_e_basic_status;
alter table migtest_e_basic alter column status drop default;
alter table migtest_e_basic alter column status set null;
alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I'));
update migtest_e_basic set status2 = 'N' where status2 is null;
alter table migtest_e_basic drop constraint if exists ck_migtest_e_basic_status2;
alter table migtest_e_basic alter column status2 varchar(1);
alter table migtest_e_basic alter column status2 set default 'N';
alter table migtest_e_basic alter column status2 set not null;
alter table migtest_e_basic add constraint ck_migtest_e_basic_status2 check ( status2 in ('N','A','I'));
alter table migtest_e_basic drop constraint uq_migtest_e_basic_description;
update migtest_e_basic set user_id = 23 where user_id is null;
alter table migtest_e_basic drop constraint if exists fk_migtest_e_basic_user_id;
alter table migtest_e_basic alter column user_id set default 23;
alter table migtest_e_basic alter column user_id set not null;
alter table migtest_e_basic add column old_boolean boolean default false not null;
alter table migtest_e_basic add column old_boolean2 boolean;
alter table migtest_e_basic add column eref_id integer;
alter table migtest_e_basic drop constraint uq_migtest_e_basic_status_indextest1;
alter table migtest_e_basic drop constraint uq_migtest_e_basic_name;
alter table migtest_e_basic drop constraint uq_migtest_e_basic_indextest4;
alter table migtest_e_basic drop constraint uq_migtest_e_basic_indextest5;
alter table migtest_e_basic add constraint uq_migtest_e_basic_indextest2 unique (indextest2);
alter table migtest_e_basic add constraint uq_migtest_e_basic_indextest6 unique (indextest6);
alter table migtest_e_enum drop constraint if exists ck_migtest_e_enum_test_status;
alter table migtest_e_enum add constraint ck_migtest_e_enum_test_status check ( test_status in ('N','A','I'));
comment on column migtest_e_history.test_string is '';
comment on table migtest_e_history is '';
alter table migtest_e_history2 alter column test_string drop default;
alter table migtest_e_history2 alter column test_string set null;
alter table migtest_e_history2 add column obsolete_string1 varchar(255);
alter table migtest_e_history2 add column obsolete_string2 varchar(255);
alter table migtest_e_history4 alter column test_number integer;
alter table migtest_e_history6 alter column test_number1 drop default;
alter table migtest_e_history6 alter column test_number1 set null;
-- NOTE: table has @History - special migration may be necessary
update migtest_e_history6 set test_number2 = 7 where test_number2 is null;
alter table migtest_e_history6 alter column test_number2 set default 7;
alter table migtest_e_history6 alter column test_number2 set not null;
create index ix_migtest_e_basic_indextest1 on migtest_e_basic (indextest1);
create index ix_migtest_e_basic_indextest5 on migtest_e_basic (indextest5);
drop index if exists ix_migtest_e_basic_indextest3;
drop index if exists ix_migtest_e_basic_indextest6;
create index ix_migtest_e_basic_eref_id on migtest_e_basic (eref_id);
alter table migtest_e_basic add constraint fk_migtest_e_basic_eref_id foreign key (eref_id) references migtest_e_ref (id) on delete restrict on update restrict;
Loaded 100 of 426 files, more files were not shown because too many files have changed in this diff. Show more