bump flyway from 2.1.1 to 6.4.1

This commit is contained in:
xurror
2020-05-11 12:21:40 +02:00
committed by Michael Vorburger ⛑️
parent 3226b63383
commit 2285797eff
4 changed files with 27 additions and 18 deletions
+2 -2
View File
@@ -94,7 +94,7 @@ dependencyManagement {
dependency 'com.lowagie:itext:2.1.7' dependency 'com.lowagie:itext:2.1.7'
dependency 'com.lowagie:itext-rtf:2.1.7' dependency 'com.lowagie:itext-rtf:2.1.7'
dependency 'org.mnode.ical4j:ical4j:1.0.7' dependency 'org.mnode.ical4j:ical4j:1.0.7'
dependency 'com.googlecode.flyway:flyway-core:2.1.1' dependency 'org.flywaydb:flyway-core:6.4.1'
dependency 'org.quartz-scheduler:quartz:+' dependency 'org.quartz-scheduler:quartz:+'
dependency 'com.amazonaws:aws-java-sdk-s3:1.11.779' dependency 'com.amazonaws:aws-java-sdk-s3:1.11.779'
dependency 'net.sf.ehcache:ehcache:+' dependency 'net.sf.ehcache:ehcache:+'
@@ -105,7 +105,7 @@ dependencyManagement {
dependency 'io.swagger:swagger-jersey-jaxrs:1.6.1' dependency 'io.swagger:swagger-jersey-jaxrs:1.6.1'
dependency 'jakarta.management.j2ee:jakarta.management.j2ee-api:1.1.4' dependency 'jakarta.management.j2ee:jakarta.management.j2ee-api:1.1.4'
dependency 'jakarta.jms:jakarta.jms-api:2.0.3' dependency 'jakarta.jms:jakarta.jms-api:2.0.3'
dependency 'jakarta.xml.bind:jakarta.xml.bind-api:2.3.3' dependency 'jakarta.xml.bind:jakarta.xml.bind-api:2.3.3'
dependency 'org.apache.activemq:activemq-broker:+' dependency 'org.apache.activemq:activemq-broker:+'
dependency 'org.apache.bval:org.apache.bval.bundle:2.0.3' dependency 'org.apache.bval:org.apache.bval.bundle:2.0.3'
dependency 'junit:junit:+' dependency 'junit:junit:+'
+1 -1
View File
@@ -63,7 +63,7 @@ dependencies {
'org.apache.tika:tika-core', 'org.apache.tika:tika-core',
'org.drizzle.jdbc:drizzle-jdbc', 'org.drizzle.jdbc:drizzle-jdbc',
'com.googlecode.flyway:flyway-core', 'org.flywaydb:flyway-core',
'net.sf.ehcache:ehcache', 'net.sf.ehcache:ehcache',
'com.lowagie:itext', 'com.lowagie:itext',
@@ -18,9 +18,6 @@
*/ */
package org.apache.fineract.infrastructure.core.service; package org.apache.fineract.infrastructure.core.service;
import com.googlecode.flyway.core.Flyway;
import com.googlecode.flyway.core.api.FlywayException;
import com.googlecode.flyway.core.util.jdbc.DriverDataSource;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import javax.annotation.PostConstruct; import javax.annotation.PostConstruct;
@@ -29,6 +26,9 @@ import org.apache.fineract.infrastructure.core.boot.JDBCDriverConfig;
import org.apache.fineract.infrastructure.core.domain.FineractPlatformTenant; import org.apache.fineract.infrastructure.core.domain.FineractPlatformTenant;
import org.apache.fineract.infrastructure.core.domain.FineractPlatformTenantConnection; import org.apache.fineract.infrastructure.core.domain.FineractPlatformTenantConnection;
import org.apache.fineract.infrastructure.security.service.TenantDetailsService; import org.apache.fineract.infrastructure.security.service.TenantDetailsService;
import org.flywaydb.core.Flyway;
import org.flywaydb.core.api.FlywayException;
import org.flywaydb.core.internal.jdbc.DriverDataSource;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@@ -62,13 +62,19 @@ public class TenantDatabaseUpgradeService {
for (final FineractPlatformTenant tenant : tenants) { for (final FineractPlatformTenant tenant : tenants) {
final FineractPlatformTenantConnection connection = tenant.getConnection(); final FineractPlatformTenantConnection connection = tenant.getConnection();
if (connection.isAutoUpdateEnabled()) { if (connection.isAutoUpdateEnabled()) {
final Flyway flyway = new Flyway();
String connectionProtocol = driverConfig.constructProtocol(connection.getSchemaServer(), connection.getSchemaServerPort(), connection.getSchemaName()) ; String connectionProtocol = driverConfig.constructProtocol(connection.getSchemaServer(), connection.getSchemaServerPort(), connection.getSchemaName()) ;
DriverDataSource source = new DriverDataSource(driverConfig.getDriverClassName(), connectionProtocol, connection.getSchemaUsername(), connection.getSchemaPassword()) ; DriverDataSource source = new DriverDataSource(Thread.currentThread().getContextClassLoader(), driverConfig.getDriverClassName(), connectionProtocol, connection.getSchemaUsername(), connection.getSchemaPassword());
flyway.setDataSource(source);
flyway.setLocations("sql/migrations/core_db"); final Flyway flyway = Flyway.configure()
flyway.setOutOfOrder(true); .dataSource(source)
.locations("sql/migrations/core_db")
.outOfOrder(true)
.placeholderReplacement(false)
.load();
try { try {
flyway.repair();
flyway.migrate(); flyway.migrate();
} catch (FlywayException e) { } catch (FlywayException e) {
String betterMessage = e.getMessage() + "; for Tenant DB URL: " + connectionProtocol + ", username: " String betterMessage = e.getMessage() + "; for Tenant DB URL: " + connectionProtocol + ", username: "
@@ -90,15 +96,18 @@ public class TenantDatabaseUpgradeService {
String dbPwd = getEnvVar("FINERACT_DEFAULT_TENANTDB_PWD", "mysql"); String dbPwd = getEnvVar("FINERACT_DEFAULT_TENANTDB_PWD", "mysql");
LOG.info("upgradeTenantDB: FINERACT_DEFAULT_TENANTDB_HOSTNAME = {}, FINERACT_DEFAULT_TENANTDB_PORT = {}", dbHostname, dbPort); LOG.info("upgradeTenantDB: FINERACT_DEFAULT_TENANTDB_HOSTNAME = {}, FINERACT_DEFAULT_TENANTDB_PORT = {}", dbHostname, dbPort);
final Flyway flyway = new Flyway(); final Flyway flyway = Flyway.configure()
flyway.setDataSource(tenantDataSource); .dataSource(tenantDataSource)
flyway.setLocations("sql/migrations/list_db"); .locations("sql/migrations/list_db")
flyway.setOutOfOrder(true); .outOfOrder(true)
flyway.setPlaceholders(Map.of( // FINERACT-773 .placeholders(Map.of( // FINERACT-773
"fineract_default_tenantdb_hostname", dbHostname, "fineract_default_tenantdb_hostname", dbHostname,
"fineract_default_tenantdb_port", dbPort, "fineract_default_tenantdb_port", dbPort,
"fineract_default_tenantdb_uid", dbUid, "fineract_default_tenantdb_uid", dbUid,
"fineract_default_tenantdb_pwd", dbPwd)); "fineract_default_tenantdb_pwd", dbPwd))
.load();
flyway.repair();
flyway.migrate(); flyway.migrate();
} }
@@ -17,4 +17,4 @@
-- under the License. -- under the License.
-- --
insert into m_loan_charge_paid_by (`loan_transaction_id`,`loan_charge_id`,`amount`) select lt.id, lc.id, if(lic.amount is null,lc.amount,lic.amount) from m_loan_transaction lt join m_loan_repayment_schedule rs on rs.loan_id = lt.loan_id and rs.duedate = lt.transaction_date join m_loan_charge lc on lc.loan_id = rs.loan_id and ((lc.due_for_collection_as_of_date > rs.fromdate and lc.due_for_collection_as_of_date <= rs.duedate) or lc.charge_time_enum = 8) and lc.is_active=1 join m_loan loan on loan.id = lt.loan_id join m_product_loan lp on lp.id = loan.product_id and lp.accounting_type =3 left join m_loan_installment_charge lic on lic.loan_charge_id = lc.id and lic.loan_schedule_id = rs.id where lt.transaction_type_enum = 10 and (lt.fee_charges_portion_derived is not null or lt.penalty_charges_portion_derived is not null) and lt.is_reversed = 0 insert into m_loan_charge_paid_by (`loan_transaction_id`,`loan_charge_id`,`amount`) select lt.id, lc.id, if(lic.amount is null,lc.amount,lic.amount) from m_loan_transaction lt join m_loan_repayment_schedule rs on rs.loan_id = lt.loan_id and rs.duedate = lt.transaction_date join m_loan_charge lc on lc.loan_id = rs.loan_id and ((lc.due_for_collection_as_of_date > rs.fromdate and lc.due_for_collection_as_of_date <= rs.duedate) or lc.charge_time_enum = 8) and lc.is_active=1 join m_loan loan on loan.id = lt.loan_id join m_product_loan lp on lp.id = loan.product_id and lp.accounting_type =3 left join m_loan_installment_charge lic on lic.loan_charge_id = lc.id and lic.loan_schedule_id = rs.id where lt.transaction_type_enum = 10 and (lt.fee_charges_portion_derived is not null or lt.penalty_charges_portion_derived is not null) and lt.is_reversed = 0;