Skip to content

Commit

Permalink
Templating for PostgresDDLGenerator (#187)
Browse files Browse the repository at this point in the history
* Added: Templating for PostgresDDLGenerator

* fixed: tests
added: conditional sql template generators

---------

Co-authored-by: nbesimi <nuhi@adaptivescale.com>
  • Loading branch information
Femi3211 and nbesimi authored Jul 6, 2023
1 parent 7ac03e0 commit 3467818
Show file tree
Hide file tree
Showing 13 changed files with 241 additions and 152 deletions.

Large diffs are not rendered by default.

6 changes: 6 additions & 0 deletions ddl/src/main/resources/templates/postgres/column/add.sqlt
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
[# th:if="${schemaName} == null or ${schemaName} == ''"]
ALTER TABLE "[(${tableName})]" ADD COLUMN [(${columnDefinition})];
[/]
[# th:if="${schemaName} != null and ${schemaName} != ''"]
ALTER TABLE "[(${schemaName})]"."[(${tableName})]" ADD COLUMN [(${columnDefinition})];
[/]
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
[# th:if="${schemaName} == null or ${schemaName} == ''"]
ALTER TABLE "[(${tableName})]" ALTER COLUMN "[(${columnName})]" [(${nullDefinition})];
[/]
[# th:if="${schemaName} != null and ${schemaName} != ''"]
ALTER TABLE "[(${schemaName})]"."[(${tableName})]" ALTER COLUMN "[(${columnName})]" [(${nullDefinition})];
[/]
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
[# th:if="${schemaName} == null or ${schemaName} == ''"]
ALTER TABLE "[(${tableName})]" ALTER COLUMN "[(${columnName})]" SET DATA TYPE [(${dataType})];
[/]
[# th:if="${schemaName} != null and ${schemaName} != ''"]
ALTER TABLE "[(${schemaName})]"."[(${tableName})]" ALTER COLUMN "[(${columnName})]" SET DATA TYPE [(${dataType})];
[/]
6 changes: 6 additions & 0 deletions ddl/src/main/resources/templates/postgres/column/drop.sqlt
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
[# th:if="${schemaName} == null or ${schemaName} == ''"]
ALTER TABLE "[(${tableName})]" DROP COLUMN "[(${columnName})]";
[/]
[# th:if="${schemaName} != null and ${schemaName} != ''"]
ALTER TABLE "[(${schemaName})]"."[(${tableName})]" DROP COLUMN "[(${columnName})]";
[/]
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
[# th:if="${schemaName} != null and ${schemaName} != ''"]
ALTER TABLE "[(${schemaName})]"."[(${tableName})]" ADD CONSTRAINT [(${foreignkeyName})] FOREIGN KEY ("[(${foreignkeyColumn})]") REFERENCES "[(${schemaName})]"."[(${primaryTableName})]"("[(${foreignKeyPrimaryColumnName})]") [(${deleteRule})];
[/]
[# th:if="${schemaName} == null or ${schemaName} == ''"]
ALTER TABLE "[(${tableName})]" ADD CONSTRAINT [(${foreignkeyName})] FOREIGN KEY ("[(${foreignkeyColumn})]") REFERENCES "[(${primaryTableName})]"("[(${foreignKeyPrimaryColumnName})]") [(${deleteRule})];
[/]
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
[# th:if="${schemaName} != null and ${schemaName} != ''"]
ALTER TABLE "[(${schemaName})]"."[(${tableName})]" DROP CONSTRAINT "[(${foreignkeyName})]";
[/]
[# th:if="${schemaName} == null or ${schemaName} == ''"]
ALTER TABLE "[(${tableName})]" DROP CONSTRAINT "[(${foreignkeyName})]";
[/]
3 changes: 3 additions & 0 deletions ddl/src/main/resources/templates/postgres/schema/create.sqlt
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[# th:if="${schemaName} != null and ${schemaName} != ''"]
CREATE SCHEMA IF NOT EXISTS "[[(${schemaName})]]";
[/]
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
[# th:if="${schemaName} == null or ${schemaName} == ''"]
ALTER TABLE "[(${tableName})]" ADD [(${primaryKeyDefinition})];
[/]
[# th:if="${schemaName} != null and ${schemaName} != ''"]
ALTER TABLE "[(${schemaName})]"."[(${tableName})]" ADD [(${primaryKeyDefinition})];
[/]
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
[# th:if="${schemaName} == null or ${schemaName} == ''"]
ALTER TABLE "[(${tableName})]" DROP CONSTRAINT "[(${tableName})]_pkey";
[/]
[# th:if="${schemaName} != null and ${schemaName} != ''"]
ALTER TABLE "[(${schemaName})]"."[(${tableName})]" DROP CONSTRAINT "[(${tableName})]_pkey";
[/]
6 changes: 6 additions & 0 deletions ddl/src/main/resources/templates/postgres/table/create.sqlt
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
[# th:if="${schemaName} == null or ${schemaName} == ''"]
CREATE TABLE "[(${tableName})]"([(${tableCode})]);
[/]
[# th:if="${schemaName} != null and ${schemaName} != ''"]
CREATE TABLE "[(${schemaName})]"."[(${tableName})]"([(${tableCode})]);
[/]
6 changes: 6 additions & 0 deletions ddl/src/main/resources/templates/postgres/table/drop.sqlt
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
[# th:if="${schemaName} == null or ${schemaName} == ''"]
DROP TABLE IF EXISTS "[(${tableName})]";
[/]
[# th:if="${schemaName} != null and ${schemaName} != ''"]
DROP TABLE IF EXISTS "[(${schemaName})]"."[(${tableName})]";
[/]
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,8 @@

import com.adaptivescale.rosetta.common.models.Database;
import com.adaptivescale.rosetta.ddl.change.*;
import com.adaptivescale.rosetta.ddl.change.comparator.MysqlForeignKeyChangeComparator;
import com.adaptivescale.rosetta.ddl.change.comparator.PostgresForeignKeyChangeComparator;
import com.adaptivescale.rosetta.ddl.change.model.Change;
import com.adaptivescale.rosetta.ddl.targets.mysql.MySqlDDLGenerator;
import com.adaptivescale.rosetta.ddl.targets.postgres.PostgresDDLGenerator;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
Expand All @@ -22,163 +20,161 @@ public class PostgresDDLTest {
@Test
public void createDB() throws IOException {
String ddl = generateDDL("clean_database");
Assertions.assertEquals("CREATE SCHEMA IF NOT EXISTS \"ROSETTA\";\r" +
"CREATE TABLE \"ROSETTA\".\"PLAYER\"(\"Name\" VARCHAR(100), \"Position\" VARCHAR(100), \"Number\" NUMBER NOT NULL );\r" +
Assertions.assertEquals("CREATE SCHEMA IF NOT EXISTS \"ROSETTA\";\n" +
"CREATE TABLE \"ROSETTA\".\"PLAYER\"(\"Name\" VARCHAR(100), \"Position\" VARCHAR(100), \"Number\" NUMBER NOT NULL );\n" +
"\r" +
"CREATE TABLE \"ROSETTA\".\"USER\"(\"USER_ID\" NUMBER NOT NULL , PRIMARY KEY (\"USER_ID\"));", ddl);
"CREATE TABLE \"ROSETTA\".\"USER\"(\"USER_ID\" NUMBER NOT NULL , PRIMARY KEY (\"USER_ID\"));\n" +
"\r", ddl.replaceAll("(?m)^[ \t]*\r?\n", ""));
}

@Test
public void addTable() throws IOException {
String ddl = generateDDL("add_table");
Assertions.assertEquals("\rCREATE TABLE \"Position\"(\"ID\" DECIMAL(10) NOT NULL , \"DESCRIPTION\" VARCHAR, \"Name\" VARCHAR, \"TEAMID\" DECIMAL(10), PRIMARY KEY (\"ID\"));\r" +
"\rCREATE TABLE \"Position2\"(\"ID\" DECIMAL(10) NOT NULL , \"DESCRIPTION\" VARCHAR, \"Name\" VARCHAR, \"TEAMID\" DECIMAL(10), PRIMARY KEY (\"ID\"));\r" +
"ALTER TABLE \"Position\" ADD CONSTRAINT Position_FK_TEAM FOREIGN KEY (\"TEAMID\") REFERENCES \"TEAM\"(\"ID\");\r" +
"\r" +
"ALTER TABLE \"Position2\" ADD CONSTRAINT Position2_FK_TEAM FOREIGN KEY (\"TEAMID\") REFERENCES \"TEAM\"(\"ID\");\r", ddl);
Assertions.assertEquals("CREATE TABLE \"Position\"(\"ID\" DECIMAL(10) NOT NULL , \"DESCRIPTION\" VARCHAR, \"Name\" VARCHAR, \"TEAMID\" DECIMAL(10), PRIMARY KEY (\"ID\"));\n" +
"\rCREATE TABLE \"Position2\"(\"ID\" DECIMAL(10) NOT NULL , \"DESCRIPTION\" VARCHAR, \"Name\" VARCHAR, \"TEAMID\" DECIMAL(10), PRIMARY KEY (\"ID\"));\n" +
"ALTER TABLE \"Position\" ADD CONSTRAINT Position_FK_TEAM FOREIGN KEY (\"TEAMID\") REFERENCES \"TEAM\"(\"ID\") ;\n" +
"ALTER TABLE \"Position2\" ADD CONSTRAINT Position2_FK_TEAM FOREIGN KEY (\"TEAMID\") REFERENCES \"TEAM\"(\"ID\") ;\n", ddl.replaceAll("(?m)^[ \t]*\r?\n", ""));
}

@Test
public void addTable2() throws IOException {
String ddl = generateDDL("add_table2");
Assertions.assertEquals("CREATE SCHEMA IF NOT EXISTS \"new\";\r" +
"CREATE TABLE \"new\".\"Position\"(\"ID\" DECIMAL(10) NOT NULL , \"DESCRIPTION\" VARCHAR," +
" \"Name\" VARCHAR, PRIMARY KEY (\"ID\"));", ddl);
Assertions.assertEquals("CREATE SCHEMA IF NOT EXISTS \"new\";\n" +
"CREATE TABLE \"new\".\"Position\"(\"ID\" DECIMAL(10) NOT NULL , \"DESCRIPTION\" VARCHAR, \"Name\" VARCHAR, PRIMARY KEY (\"ID\"));\n", ddl.replaceAll("(?m)^[ \t]*\r?\n", ""));
}

@Test
public void dropTable() throws IOException {
String ddl = generateDDL("drop_table");
Assertions.assertEquals("DROP TABLE \"TEAMPLAYERS\";", ddl);
Assertions.assertEquals("DROP TABLE IF EXISTS \"TEAMPLAYERS\";\n", ddl.replaceAll("(?m)^[ \t]*\r?\n", ""));
}

@Test
public void addColumn() throws IOException {
String ddl = generateDDL("add_column");
Assertions.assertEquals("ALTER TABLE \"Position\" ADD COLUMN \"DESCRIPTION\" varchar(100);", ddl);
Assertions.assertEquals("ALTER TABLE \"Position\" ADD COLUMN \"DESCRIPTION\" varchar(100);\n", ddl.replaceAll("(?m)^[ \t]*\r?\n", ""));
}

@Test
public void addColumnWithForeignKey() throws IOException {
String ddl = generateDDL("add_column_with_foreign_key");
Assertions.assertEquals("ALTER TABLE \"PLAYER\" ADD COLUMN \"POSITION_ID\" numeric;\r" +
"ALTER TABLE \"FBAL\".\"PLAYER\" ADD CONSTRAINT PLAYER_FK FOREIGN KEY (\"POSITION_ID\") REFERENCES \"FBAL\".\"Position\"(\"ID\") ON DELETE NO ACTION ;\r", ddl);
Assertions.assertEquals("ALTER TABLE \"PLAYER\" ADD COLUMN \"POSITION_ID\" numeric;\n" +
"ALTER TABLE \"FBAL\".\"PLAYER\" ADD CONSTRAINT PLAYER_FK FOREIGN KEY (\"POSITION_ID\") REFERENCES \"FBAL\".\"Position\"(\"ID\") ON DELETE NO ACTION;\n", ddl.replaceAll("(?m)^[ \t]*\r?\n", ""));
}

@Test
public void addColumnAsPrimaryKey() throws IOException {
String ddl = generateDDL("add_column_as_primary_key");
Assertions.assertEquals("ALTER TABLE \"PLAYER\" ADD COLUMN \"ID\" numeric NOT NULL ;\r" +
"ALTER TABLE \"PLAYER\" ADD PRIMARY KEY (\"ID\");", ddl);
Assertions.assertEquals("ALTER TABLE \"PLAYER\" ADD COLUMN \"ID\" numeric NOT NULL ;\n" +
"ALTER TABLE \"PLAYER\" ADD PRIMARY KEY (\"ID\");\n", ddl.replaceAll("(?m)^[ \t]*\r?\n", ""));
}

@Test
public void dropColumn() throws IOException {
String ddl = generateDDL("drop_column");
Assertions.assertEquals("ALTER TABLE \"Position\" DROP COLUMN \"DESCRIPTION\";", ddl);
Assertions.assertEquals("ALTER TABLE \"Position\" DROP COLUMN \"DESCRIPTION\";\n", ddl.replaceAll("(?m)^[ \t]*\r?\n", ""));
}

@Test
public void alterColumnDataType() throws IOException {
String ddl = generateDDL("alter_column_data_type");
Assertions.assertEquals("ALTER TABLE \"PLAYER\" ALTER COLUMN \"name\" TYPE INTEGER, ALTER COLUMN name DROP NOT NULL;", ddl);
Assertions.assertEquals("ALTER TABLE \"PLAYER\" ALTER COLUMN \"name\" SET DATA TYPE INTEGER;\n", ddl.replaceAll("(?m)^[ \t]*\r?\n", ""));
}

@Test
public void alterColumnToNullable() throws IOException {
String ddl = generateDDL("alter_column_to_nullable");
Assertions.assertEquals("ALTER TABLE \"PLAYER\" ALTER COLUMN \"ID\" TYPE numeric, ALTER COLUMN ID DROP NOT NULL;", ddl);
Assertions.assertEquals("ALTER TABLE \"PLAYER\" ALTER COLUMN \"ID\" DROP NOT NULL;\n", ddl.replaceAll("(?m)^[ \t]*\r?\n", ""));
}

@Test
public void alterColumnToNotNullable() throws IOException {
String ddl = generateDDL("alter_column_to_not_nullable");
Assertions.assertEquals("ALTER TABLE \"PLAYER\" ALTER COLUMN \"ID\" TYPE numeric;", ddl);
Assertions.assertEquals("ALTER TABLE \"PLAYER\" ALTER COLUMN \"ID\" SET NOT NULL;\n", ddl.replaceAll("(?m)^[ \t]*\r?\n", ""));
}

@Test
public void dropColumnWithForeignKey() throws IOException {
String ddl = generateDDL("drop_column_with_foreign_key");
Assertions.assertEquals("ALTER TABLE \"FBAL\".\"PLAYER\" DROP CONSTRAINT \"PLAYER_FK\";\r" +
"ALTER TABLE \"FBAL\".\"PLAYER\" DROP COLUMN \"POSITION_ID\";", ddl);
Assertions.assertEquals("ALTER TABLE \"FBAL\".\"PLAYER\" DROP CONSTRAINT \"PLAYER_FK\";\n" +
"ALTER TABLE \"FBAL\".\"PLAYER\" DROP COLUMN \"POSITION_ID\";\n", ddl.replaceAll("(?m)^[ \t]*\r?\n", ""));
}

@Test
public void dropColumnWithPrimaryKeyReferenced() throws IOException {
String ddl = generateDDL("drop_column_with_primary_key_referenced");
Assertions.assertEquals("ALTER TABLE \"TEAMPLAYERS\" DROP CONSTRAINT \"TEAMPLAYERS_FK\";\r" +
"ALTER TABLE \"PLAYER\" DROP COLUMN \"ID\";", ddl);
Assertions.assertEquals("ALTER TABLE \"TEAMPLAYERS\" DROP CONSTRAINT \"TEAMPLAYERS_FK\";\n" +
"ALTER TABLE \"PLAYER\" DROP COLUMN \"ID\";\n", ddl.replaceAll("(?m)^[ \t]*\r?\n", ""));
}

@Test
public void dropTableWhereColumnIsReferenced() throws IOException {
String ddl = generateDDL("drop_table_where_column_is_referenced");
Assertions.assertEquals("ALTER TABLE \"TEAMPLAYERS\" DROP CONSTRAINT \"TEAMPLAYERS_FK_TEAM\";\r" +
"DROP TABLE \"TEAM\";", ddl);
Assertions.assertEquals("ALTER TABLE \"TEAMPLAYERS\" DROP CONSTRAINT \"TEAMPLAYERS_FK_TEAM\";\n" +
"DROP TABLE IF EXISTS \"TEAM\";\n", ddl.replaceAll("(?m)^[ \t]*\r?\n", ""));
}

@Test
public void addForeignKey() throws IOException {
String ddl = generateDDL("add_foreign_key");
Assertions.assertEquals("ALTER TABLE \"PLAYER\" ADD CONSTRAINT PLAYER_FK FOREIGN KEY (\"POSITION_ID\") " +
"REFERENCES \"Position\"(\"ID\") ON DELETE NO ACTION ;\r", ddl);
Assertions.assertEquals("ALTER TABLE \"PLAYER\" ADD CONSTRAINT PLAYER_FK FOREIGN KEY (\"POSITION_ID\") REFERENCES \"Position\"(\"ID\") ON DELETE NO ACTION;\n", ddl.replaceAll("(?m)^[ \t]*\r?\n", ""));
}

@Test
public void dropForeignKey() throws IOException {
String ddl = generateDDL("drop_foreign_key");
Assertions.assertEquals("ALTER TABLE \"TEAMPLAYERS\" DROP CONSTRAINT \"TEAMPLAYERS_FK\";", ddl);
Assertions.assertEquals("ALTER TABLE \"TEAMPLAYERS\" DROP CONSTRAINT \"TEAMPLAYERS_FK\";\n", ddl.replaceAll("(?m)^[ \t]*\r?\n", ""));
}

@Test
public void dropPrimaryKey() throws IOException {
String ddl = generateDDL("drop_primary_key");
Assertions.assertEquals("ALTER TABLE \"TEAMPLAYERS\" DROP CONSTRAINT \"TEAMPLAYERS_FK\";\r" +
"ALTER TABLE \"PLAYER\" DROP PRIMARY KEY;", ddl);
Assertions.assertEquals("ALTER TABLE \"TEAMPLAYERS\" DROP CONSTRAINT \"TEAMPLAYERS_FK\";\n" +
"ALTER TABLE \"PLAYER\" DROP CONSTRAINT \"PLAYER_pkey\";\n", ddl.replaceAll("(?m)^[ \t]*\r?\n", ""));
}

@Test
public void addPrimaryKey() throws IOException {
String ddl = generateDDL("add_primary_key");
Assertions.assertEquals("ALTER TABLE \"PLAYER\" ADD PRIMARY KEY (\"ID\");", ddl);
Assertions.assertEquals("ALTER TABLE \"PLAYER\" ADD PRIMARY KEY (\"ID\");\n", ddl.replaceAll("(?m)^[ \t]*\r?\n", ""));
}

@Test
public void alterPrimaryKey() throws IOException {
String ddl = generateDDL("alter_primary_key");
Assertions.assertEquals("\r" +
"ALTER TABLE \"PLAYER\" DROP PRIMARY KEY, ADD PRIMARY KEY (\"ID\", \"POSITION_ID\");\r", ddl);
Assertions.assertEquals("ALTER TABLE \"PLAYER\" DROP CONSTRAINT \"PLAYER_pkey\";\n" +
"ALTER TABLE \"PLAYER\" ADD PRIMARY KEY (\"ID\", \"POSITION_ID\");\n" +
"\r", ddl.replaceAll("(?m)^[ \t]*\r?\n", ""));
}

@Test
public void alterForeignKeyName() throws IOException {
String ddl = generateDDL("alter_foreign_key_name");
Assertions.assertEquals("ALTER TABLE \"TEAMPLAYERS\" DROP CONSTRAINT \"TEAMPLAYERS_FK\";\r" +
"ALTER TABLE \"TEAMPLAYERS\" ADD CONSTRAINT TEAMPLAYERS_CHANGED_FK FOREIGN KEY (\"PLAYERID\") REFERENCES " +
"\"PLAYER\"(\"ID\") ON DELETE NO ACTION ;\r", ddl);
Assertions.assertEquals("ALTER TABLE \"TEAMPLAYERS\" DROP CONSTRAINT \"TEAMPLAYERS_FK\";\n" +
"ALTER TABLE \"TEAMPLAYERS\" ADD CONSTRAINT TEAMPLAYERS_CHANGED_FK FOREIGN KEY (\"PLAYERID\") REFERENCES \"PLAYER\"(\"ID\") ON DELETE NO ACTION;\n", ddl.replaceAll("(?m)^[ \t]*\r?\n", ""));
}

@Test
public void alterForeignKey() throws IOException {
String ddl = generateDDL("alter_foreign_key");
Assertions.assertEquals("ALTER TABLE \"TEAMPLAYERS\" DROP CONSTRAINT \"TEAMPLAYERS_FK\";\r" +
"ALTER TABLE \"TEAMPLAYERS\" ADD CONSTRAINT TEAMPLAYERS_FK FOREIGN KEY (\"PLAYERID\") REFERENCES \"PLAYER\"(\"ID\") ON DELETE SET NULL ;\r", ddl);
Assertions.assertEquals("ALTER TABLE \"TEAMPLAYERS\" DROP CONSTRAINT \"TEAMPLAYERS_FK\";\n" +
"ALTER TABLE \"TEAMPLAYERS\" ADD CONSTRAINT TEAMPLAYERS_FK FOREIGN KEY (\"PLAYERID\") REFERENCES \"PLAYER\"(\"ID\") ON DELETE SET NULL;\n", ddl.replaceAll("(?m)^[ \t]*\r?\n", ""));
}

@Test
public void dropPrimaryKeyColumnAndAlterForeignKey() throws IOException {
String ddl = generateDDL("drop_pk_column_and_alter_fk");
Assertions.assertEquals("ALTER TABLE \"TEAMPLAYERS\" DROP CONSTRAINT \"TEAMPLAYERS_FK\";\r" +
"ALTER TABLE \"PLAYER\" DROP COLUMN \"ID\";\r" +
"ALTER TABLE \"TEAMPLAYERS\" ADD CONSTRAINT TEAMPLAYERS_FK FOREIGN KEY (\"PLAYERID\") REFERENCES \"POSITION\"(\"ID\");\r", ddl);
Assertions.assertEquals("ALTER TABLE \"TEAMPLAYERS\" DROP CONSTRAINT \"TEAMPLAYERS_FK\";\n" +
"ALTER TABLE \"PLAYER\" DROP COLUMN \"ID\";\n" +
"ALTER TABLE \"TEAMPLAYERS\" ADD CONSTRAINT TEAMPLAYERS_FK FOREIGN KEY (\"PLAYERID\") REFERENCES \"POSITION\"(\"ID\") ;\n", ddl.replaceAll("(?m)^[ \t]*\r?\n", ""));
}

@Test
public void dropTableWithPrimaryKeyColumnAndAlterForeignKey() throws IOException {
String ddl = generateDDL("drop_table_with_pk_column_and_alter_fk");
Assertions.assertEquals("ALTER TABLE \"TEAMPLAYERS\" DROP CONSTRAINT \"TEAMPLAYERS_FK\";\r" +
"DROP TABLE \"PLAYER\";\r" +
"ALTER TABLE \"TEAMPLAYERS\" ADD CONSTRAINT TEAMPLAYERS_FK FOREIGN KEY (\"PLAYERID\") REFERENCES \"POSITION\"(\"ID\");\r", ddl);
Assertions.assertEquals("ALTER TABLE \"TEAMPLAYERS\" DROP CONSTRAINT \"TEAMPLAYERS_FK\";\n" +
"DROP TABLE IF EXISTS \"PLAYER\";\n" +
"ALTER TABLE \"TEAMPLAYERS\" ADD CONSTRAINT TEAMPLAYERS_FK FOREIGN KEY (\"PLAYERID\") REFERENCES \"POSITION\"(\"ID\") ;\n", ddl.replaceAll("(?m)^[ \t]*\r?\n", ""));
}

private String generateDDL(String testType) throws IOException {
Expand Down

0 comments on commit 3467818

Please sign in to comment.