diff --git a/src/main/java/cz/startnet/utils/pgdiff/schema/PgDatabase.java b/src/main/java/cz/startnet/utils/pgdiff/schema/PgDatabase.java index 593816b9..0f58a075 100644 --- a/src/main/java/cz/startnet/utils/pgdiff/schema/PgDatabase.java +++ b/src/main/java/cz/startnet/utils/pgdiff/schema/PgDatabase.java @@ -137,14 +137,12 @@ public List getSchemas() { * Adds {@code schema} to the lists of schemas. * * @param schema schema - * @throws ParserException Thrown if schema was already added to the database. */ public void addSchema(final PgSchema schema) { - if (Objects.nonNull(schemas) && !schemas.isEmpty()) { - if (!schemas.contains(schema)) { - schemas.add(schema); - } - } else { + + if (schemas.isEmpty()) { + schemas.add(schema); + } else if (!schemas.stream().filter(o -> o.getName().equals(schema.getName())).findFirst().isPresent()) { schemas.add(schema); } } diff --git a/src/test/java/cz/startnet/utils/pgdiff/PgDiffTest.java b/src/test/java/cz/startnet/utils/pgdiff/PgDiffTest.java index 91f1274c..aa05650f 100755 --- a/src/test/java/cz/startnet/utils/pgdiff/PgDiffTest.java +++ b/src/test/java/cz/startnet/utils/pgdiff/PgDiffTest.java @@ -275,6 +275,7 @@ public static Collection parameters() { , {"alter_view_owner", false, false, false, false} , {"grant_on_table_cols_mixed", false, false, false, false} , {"grant_on_view_cols_mixed", false, false, false, false} + , {"create_schema_no_change_table", false, false, false, false} }); } /** diff --git a/src/test/resources/cz/startnet/utils/pgdiff/create_schema_no_change_table_diff.sql b/src/test/resources/cz/startnet/utils/pgdiff/create_schema_no_change_table_diff.sql new file mode 100644 index 00000000..139597f9 --- /dev/null +++ b/src/test/resources/cz/startnet/utils/pgdiff/create_schema_no_change_table_diff.sql @@ -0,0 +1,2 @@ + + diff --git a/src/test/resources/cz/startnet/utils/pgdiff/create_schema_no_change_table_new.sql b/src/test/resources/cz/startnet/utils/pgdiff/create_schema_no_change_table_new.sql new file mode 100644 index 00000000..e1f0dcaa --- /dev/null +++ b/src/test/resources/cz/startnet/utils/pgdiff/create_schema_no_change_table_new.sql @@ -0,0 +1,3 @@ +CREATE SCHEMA public; +CREATE TABLE public.node (instance_id text); + diff --git a/src/test/resources/cz/startnet/utils/pgdiff/create_schema_no_change_table_original.sql b/src/test/resources/cz/startnet/utils/pgdiff/create_schema_no_change_table_original.sql new file mode 100644 index 00000000..e1f0dcaa --- /dev/null +++ b/src/test/resources/cz/startnet/utils/pgdiff/create_schema_no_change_table_original.sql @@ -0,0 +1,3 @@ +CREATE SCHEMA public; +CREATE TABLE public.node (instance_id text); +