diff --git a/liquibase-core/src/main/java/liquibase/change/core/CreateProcedureChange.java b/liquibase-core/src/main/java/liquibase/change/core/CreateProcedureChange.java index fcce81ea1d..a0c0d84edb 100644 --- a/liquibase-core/src/main/java/liquibase/change/core/CreateProcedureChange.java +++ b/liquibase-core/src/main/java/liquibase/change/core/CreateProcedureChange.java @@ -6,10 +6,7 @@ import liquibase.configuration.LiquibaseConfiguration; import liquibase.database.Database; import liquibase.database.DatabaseList; -import liquibase.database.core.AbstractDb2Database; -import liquibase.database.core.HsqlDatabase; -import liquibase.database.core.MSSQLDatabase; -import liquibase.database.core.OracleDatabase; +import liquibase.database.core.*; import liquibase.exception.UnexpectedLiquibaseException; import liquibase.exception.ValidationErrors; import liquibase.parser.core.ParsedNode; @@ -172,7 +169,7 @@ public ValidationErrors validate(Database database) { } if (this.getReplaceIfExists() != null && (DatabaseList.definitionMatches(getDbms(), database, true))) { - if (database instanceof MSSQLDatabase) { + if (database instanceof MSSQLDatabase || database instanceof PostgresDatabase) { if (this.getReplaceIfExists() && this.getProcedureName() == null) { validate.addError("procedureName is required if replaceIfExists = true"); } diff --git a/liquibase-core/src/main/java/liquibase/database/core/PostgresDatabase.java b/liquibase-core/src/main/java/liquibase/database/core/PostgresDatabase.java index fe4ddbaeca..80c1438535 100644 --- a/liquibase-core/src/main/java/liquibase/database/core/PostgresDatabase.java +++ b/liquibase-core/src/main/java/liquibase/database/core/PostgresDatabase.java @@ -28,6 +28,7 @@ */ public class PostgresDatabase extends AbstractJdbcDatabase { public static final String PRODUCT_NAME = "PostgreSQL"; + public static final String EDB_PRODUCT_NAME = "EnterpriseDB"; private Set systemTablesAndViews = new HashSet(); @@ -88,7 +89,12 @@ public boolean supportsInitiallyDeferrableColumns() { @Override public boolean isCorrectDatabaseImplementation(DatabaseConnection conn) throws DatabaseException { - return PRODUCT_NAME.equalsIgnoreCase(conn.getDatabaseProductName()); + boolean matches = PRODUCT_NAME.equalsIgnoreCase(conn.getDatabaseProductName()); + if (matches) { + return true; + } + matches = EDB_PRODUCT_NAME.equals(conn.getDatabaseProductName()); + return matches; } @Override @@ -96,6 +102,9 @@ public String getDefaultDriver(String url) { if (url.startsWith("jdbc:postgresql:")) { return "org.postgresql.Driver"; } + else if (url.startsWith("jdbc:edb")) { + return "com.edb.Driver"; + } return null; }