diff --git a/buildSrc/src/main/groovy/docker-common.gradle b/buildSrc/src/main/groovy/docker-common.gradle index 6ca16771..db8b91cb 100644 --- a/buildSrc/src/main/groovy/docker-common.gradle +++ b/buildSrc/src/main/groovy/docker-common.gradle @@ -57,7 +57,7 @@ ext { if (config.useDatabaseDB2 || config.useDatabaseSQLServer) { List results = waitForCommand("${getDatabaseAccessCommand(schema)} \"${sql}\"").split("\n").minus("") - if (results.size() <= 1) { + if (results.size() <= 1 || results.join("").contains("SQL0100W")) { return Collections.emptyMap() } @@ -354,6 +354,10 @@ ext { } } + if (config.useDatabaseDB2 && (stdout.toString().contains("SQL0100W") || stdout.toString().contains("0 record(s) selected"))) { + return stdout.toString().trim() + } + execResult.assertNormalExitValue() return stdout.toString().trim() diff --git a/buildSrc/src/main/groovy/docker-database-saas.gradle b/buildSrc/src/main/groovy/docker-database-saas.gradle index d037afbd..afcc4556 100644 --- a/buildSrc/src/main/groovy/docker-database-saas.gradle +++ b/buildSrc/src/main/groovy/docker-database-saas.gradle @@ -9,6 +9,7 @@ import java.util.regex.Matcher import java.util.regex.Pattern ext { + FALSE_SQL_VALUE = config.useDatabaseSQLServer ? "'false'" : "false" SSO_CONFIGS = [".ldap.", ".multi.factor.authentication.", ".saml.", ".openid."] PROD_ONLY_CONFIGS = [".liferay.analytics.", ".captcha.", ".content.security.policy.", ".elasticsearch7.", ".k8s."] @@ -175,7 +176,7 @@ ext { disableUserObjectValidations = { String schema -> - executeSQLQuery("update ObjectValidationRule set active_ = 'false' where objectDefinitionId in (select objectDefinitionId from ObjectDefinition where externalReferenceCode = 'L_USER')", schema) + executeSQLQuery("update ObjectValidationRule set active_ = ${FALSE_SQL_VALUE} where objectDefinitionId in (select objectDefinitionId from ObjectDefinition where externalReferenceCode = 'L_USER')", schema) println "Disabled object validation users for User system object in schema ${schema}" } @@ -253,7 +254,7 @@ ext { sanitizePortalPreferenceValues(schema, sanitizedPreferences) - executeSQLQuery("update MBMailingList set inServerName = 'fake-pop3-host', outServerName = 'fake-smtp-host', inPassword = 'fake-pop3-password', outPassword = 'fake-smtp-password', active_ = 'false'", schema) + executeSQLQuery("update MBMailingList set inServerName = 'fake-pop3-host', outServerName = 'fake-smtp-host', inPassword = 'fake-pop3-password', outPassword = 'fake-smtp-password', active_ = ${FALSE_SQL_VALUE}", schema) println "Sanitized known POP and SMTP configurations in schema ${schema}" } @@ -271,7 +272,14 @@ ext { truncateTables = { String tableNamePattern, String schema -> - List> tableNames = executeSQLQuery("select TABLE_NAME from information_schema.TABLES WHERE TABLE_SCHEMA = '${schema}' and TABLE_NAME like '${tableNamePattern}' OR TABLE_NAME like '${tableNamePattern.toLowerCase()}'", schema) + List> tableNames + + if (config.useDatabaseDB2) { + tableNames = executeSQLQuery("select TABLE_NAME from sysibm.tables WHERE TABLE_CATALOG = '" + schema.toUpperCase() + "' and TABLE_NAME like '${tableNamePattern}' OR TABLE_NAME like '${tableNamePattern.toLowerCase()}'", schema) + } + else { + tableNames = executeSQLQuery("select TABLE_NAME from information_schema.TABLES WHERE TABLE_SCHEMA = '${schema}' and TABLE_NAME like '${tableNamePattern}' OR TABLE_NAME like '${tableNamePattern.toLowerCase()}'", schema) + } tableNames.each { Map resultRow -> @@ -457,28 +465,28 @@ tasks.register("copyDatabaseDumpsToDumpsVolume") { waitForCommand("docker compose create database") fileTree("dumps") { - include "**/*.bak" - include "**/*.sql" - include "**/*.sql.gz" - include "**/*.gz" + include "**/*" + exclude "**/.gitkeep" }.forEach { File dumpFile -> println dumpFile - String oldPath = dumpFile.absolutePath - String newPath = null - - if (dumpFile.name.endsWith(".gz") && !dumpFile.name.endsWith(".sql.gz")) { - newPath = "${oldPath.substring(0, oldPath.length() - 3)}.sql.gz" - } - else if (!dumpFile.name.contains(".")) { - newPath = "${dumpFile.absolutePath}.sql" - } - - if (newPath != null) { - dumpFile.renameTo(newPath) - dumpFile = file(newPath) + if (config.useDatabaseMariaDB || config.useDatabaseMySQL || config.useDatabasePostgreSQL) { + String oldPath = dumpFile.absolutePath + String newPath = null + + if (dumpFile.name.endsWith(".gz") && !dumpFile.name.endsWith(".sql.gz")) { + newPath = "${oldPath.substring(0, oldPath.length() - 3)}.sql.gz" + } + else if (!dumpFile.name.contains(".")) { + newPath = "${dumpFile.absolutePath}.sql" + } + + if (newPath != null) { + dumpFile.renameTo(newPath) + dumpFile = file(newPath) + } } addToVolume(dumpsVolumeName, dumpFile)