You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@fineract.apache.org by ik...@apache.org on 2019/09/02 21:58:11 UTC
[fineract-cn-group] branch develop updated: Migrate group service
from MariaDB to PostgreSQL
This is an automated email from the ASF dual-hosted git repository.
ikamga pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/fineract-cn-group.git
The following commit(s) were added to refs/heads/develop by this push:
new e49c4cb Migrate group service from MariaDB to PostgreSQL
new 62100a4 Merge pull request #11 from Izakey/FINCN-118
e49c4cb is described below
commit e49c4cb560d0a0ade770dea6700e599c8e9dc6e0
Author: Isaac Kamga <u2...@gmail.com>
AuthorDate: Thu May 9 04:17:51 2019 +0100
Migrate group service from MariaDB to PostgreSQL
---
NOTICE.txt | 2 +-
.../apache/fineract/cn/group/SuiteTestEnvironment.java | 8 ++++----
.../main/java/org/apache/fineract/cn/group/TestGroup.java | 2 +-
.../org/apache/fineract/cn/group/TestGroupDefinition.java | 2 +-
service/build.gradle | 3 ++-
.../org/apache/fineract/cn/group/GroupConfiguration.java | 4 ++--
.../internal/command/handler/MigrationAggregate.java | 2 +-
.../cn/group/internal/repository/GroupCommandEntity.java | 2 +-
.../group/internal/repository/GroupDefinitionEntity.java | 2 +-
.../cn/group/internal/repository/GroupEntity.java | 2 +-
.../cn/group/internal/repository/MeetingEntity.java | 4 ++--
.../cn/group/internal/repository/MeetingRepository.java | 2 +-
service/src/main/resources/application.yml | 15 ++++++++++-----
.../{mariadb => postgresql}/V1__initial_setup.sql | 12 ++++++------
shared.gradle | 3 ++-
15 files changed, 36 insertions(+), 29 deletions(-)
diff --git a/NOTICE.txt b/NOTICE.txt
index 5f2a7ce..a572ee5 100644
--- a/NOTICE.txt
+++ b/NOTICE.txt
@@ -1,5 +1,5 @@
Apache Fineract CN Group
-Copyright [2017-2018] The Apache Software Foundation
+Copyright [2017-2019] The Apache Software Foundation
This product includes software developed at
The Apache Software Foundation (http://www.apache.org/).
\ No newline at end of file
diff --git a/component-test/src/main/java/org/apache/fineract/cn/group/SuiteTestEnvironment.java b/component-test/src/main/java/org/apache/fineract/cn/group/SuiteTestEnvironment.java
index 8cd3a8e..720e949 100644
--- a/component-test/src/main/java/org/apache/fineract/cn/group/SuiteTestEnvironment.java
+++ b/component-test/src/main/java/org/apache/fineract/cn/group/SuiteTestEnvironment.java
@@ -21,7 +21,7 @@ package org.apache.fineract.cn.group;
import org.apache.fineract.cn.test.env.TestEnvironment;
import org.apache.fineract.cn.test.fixture.TenantDataStoreContextTestRule;
import org.apache.fineract.cn.test.fixture.cassandra.CassandraInitializer;
-import org.apache.fineract.cn.test.fixture.mariadb.MariaDBInitializer;
+import org.apache.fineract.cn.test.fixture.postgresql.PostgreSQLInitializer;
import org.junit.ClassRule;
import org.junit.rules.RuleChain;
import org.junit.rules.TestRule;
@@ -32,14 +32,14 @@ public class SuiteTestEnvironment {
static final TestEnvironment testEnvironment = new TestEnvironment(APP_NAME);
static final CassandraInitializer cassandraInitializer = new CassandraInitializer();
- static final MariaDBInitializer mariaDBInitializer = new MariaDBInitializer();
+ static final PostgreSQLInitializer postgreSQLInitializer = new PostgreSQLInitializer();
static final TenantDataStoreContextTestRule tenantDataStoreContext =
- TenantDataStoreContextTestRule.forRandomTenantName(cassandraInitializer, mariaDBInitializer);
+ TenantDataStoreContextTestRule.forRandomTenantName(cassandraInitializer, postgreSQLInitializer);
@ClassRule
public static TestRule orderClassRules = RuleChain
.outerRule(testEnvironment)
.around(cassandraInitializer)
- .around(mariaDBInitializer)
+ .around(postgreSQLInitializer)
.around(tenantDataStoreContext);
}
\ No newline at end of file
diff --git a/component-test/src/main/java/org/apache/fineract/cn/group/TestGroup.java b/component-test/src/main/java/org/apache/fineract/cn/group/TestGroup.java
index a78017a..4cd2ae8 100644
--- a/component-test/src/main/java/org/apache/fineract/cn/group/TestGroup.java
+++ b/component-test/src/main/java/org/apache/fineract/cn/group/TestGroup.java
@@ -43,7 +43,7 @@ import org.apache.fineract.cn.api.context.AutoUserContext;
import org.apache.fineract.cn.test.env.TestEnvironment;
import org.apache.fineract.cn.test.fixture.TenantDataStoreContextTestRule;
import org.apache.fineract.cn.test.fixture.cassandra.CassandraInitializer;
-import org.apache.fineract.cn.test.fixture.mariadb.MariaDBInitializer;
+import org.apache.fineract.cn.test.fixture.postgresql.PostgreSQLInitializer;
import org.apache.fineract.cn.test.listener.EnableEventRecording;
import org.apache.fineract.cn.test.listener.EventRecorder;
import org.junit.After;
diff --git a/component-test/src/main/java/org/apache/fineract/cn/group/TestGroupDefinition.java b/component-test/src/main/java/org/apache/fineract/cn/group/TestGroupDefinition.java
index 3a4b652..d7b4f48 100644
--- a/component-test/src/main/java/org/apache/fineract/cn/group/TestGroupDefinition.java
+++ b/component-test/src/main/java/org/apache/fineract/cn/group/TestGroupDefinition.java
@@ -28,7 +28,7 @@ import org.apache.fineract.cn.lang.TenantContextHolder;
import org.apache.fineract.cn.test.env.TestEnvironment;
import org.apache.fineract.cn.test.fixture.TenantDataStoreContextTestRule;
import org.apache.fineract.cn.test.fixture.cassandra.CassandraInitializer;
-import org.apache.fineract.cn.test.fixture.mariadb.MariaDBInitializer;
+import org.apache.fineract.cn.test.fixture.postgresql.PostgreSQLInitializer;
import org.apache.fineract.cn.test.listener.EnableEventRecording;
import org.apache.fineract.cn.test.listener.EventRecorder;
import org.junit.After;
diff --git a/service/build.gradle b/service/build.gradle
index 11b1a51..d3cabf8 100644
--- a/service/build.gradle
+++ b/service/build.gradle
@@ -54,7 +54,8 @@ dependencies {
[group: 'org.apache.fineract.cn', name: 'lang', version: versions.frameworklang],
[group: 'org.apache.fineract.cn', name: 'async', version: versions.frameworkasync],
[group: 'org.apache.fineract.cn', name: 'cassandra', version: versions.frameworkcassandra],
- [group: 'org.apache.fineract.cn', name: 'mariadb', version: versions.frameworkmariadb],
+ [group: 'org.apache.fineract.cn', name: 'postgresql', version: versions.frameworkmariadb],
+ [group: 'org.apache.fineract.cn', name: 'postgresql', version: '0.1.0-BUILD-SNAPSHOT'],
[group: 'org.apache.fineract.cn', name: 'command', version: versions.frameworkcommand],
[group: 'org.hibernate', name: 'hibernate-validator', version: versions.validator]
)
diff --git a/service/src/main/java/org/apache/fineract/cn/group/GroupConfiguration.java b/service/src/main/java/org/apache/fineract/cn/group/GroupConfiguration.java
index f2f0642..3f16aa7 100644
--- a/service/src/main/java/org/apache/fineract/cn/group/GroupConfiguration.java
+++ b/service/src/main/java/org/apache/fineract/cn/group/GroupConfiguration.java
@@ -24,7 +24,7 @@ import org.apache.fineract.cn.cassandra.config.EnableCassandra;
import org.apache.fineract.cn.command.config.EnableCommandProcessing;
import org.apache.fineract.cn.lang.config.EnableServiceException;
import org.apache.fineract.cn.lang.config.EnableTenantContext;
-import org.apache.fineract.cn.mariadb.config.EnableMariaDB;
+import org.apache.fineract.cn.postgresql.config.EnablePostgreSQL;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
@@ -43,7 +43,7 @@ import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter
@EnableAsync
@EnableTenantContext
@EnableCassandra
-@EnableMariaDB
+@EnablePostgreSQL
@EnableCommandProcessing
@EnableAnubis
@EnableServiceException
diff --git a/service/src/main/java/org/apache/fineract/cn/group/internal/command/handler/MigrationAggregate.java b/service/src/main/java/org/apache/fineract/cn/group/internal/command/handler/MigrationAggregate.java
index 3ea23ff..e2b4262 100644
--- a/service/src/main/java/org/apache/fineract/cn/group/internal/command/handler/MigrationAggregate.java
+++ b/service/src/main/java/org/apache/fineract/cn/group/internal/command/handler/MigrationAggregate.java
@@ -25,7 +25,7 @@ import javax.sql.DataSource;
import org.apache.fineract.cn.command.annotation.Aggregate;
import org.apache.fineract.cn.command.annotation.CommandHandler;
import org.apache.fineract.cn.command.annotation.EventEmitter;
-import org.apache.fineract.cn.mariadb.domain.FlywayFactoryBean;
+import org.apache.fineract.cn.postgresql.domain.FlywayFactoryBean;
import org.slf4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
diff --git a/service/src/main/java/org/apache/fineract/cn/group/internal/repository/GroupCommandEntity.java b/service/src/main/java/org/apache/fineract/cn/group/internal/repository/GroupCommandEntity.java
index 67c8286..41ff56c 100644
--- a/service/src/main/java/org/apache/fineract/cn/group/internal/repository/GroupCommandEntity.java
+++ b/service/src/main/java/org/apache/fineract/cn/group/internal/repository/GroupCommandEntity.java
@@ -29,7 +29,7 @@ import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
-import org.apache.fineract.cn.mariadb.util.LocalDateTimeConverter;
+import org.apache.fineract.cn.postgresql.util.LocalDateTimeConverter;
@Entity
@Table(name = "ptah_group_commands")
diff --git a/service/src/main/java/org/apache/fineract/cn/group/internal/repository/GroupDefinitionEntity.java b/service/src/main/java/org/apache/fineract/cn/group/internal/repository/GroupDefinitionEntity.java
index 5b4c856..bf8e8d8 100644
--- a/service/src/main/java/org/apache/fineract/cn/group/internal/repository/GroupDefinitionEntity.java
+++ b/service/src/main/java/org/apache/fineract/cn/group/internal/repository/GroupDefinitionEntity.java
@@ -26,7 +26,7 @@ import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
-import org.apache.fineract.cn.mariadb.util.LocalDateTimeConverter;
+import org.apache.fineract.cn.postgresql.util.LocalDateTimeConverter;
@Entity
@Table(name = "ptah_group_definitions")
diff --git a/service/src/main/java/org/apache/fineract/cn/group/internal/repository/GroupEntity.java b/service/src/main/java/org/apache/fineract/cn/group/internal/repository/GroupEntity.java
index 10e8a57..658962b 100644
--- a/service/src/main/java/org/apache/fineract/cn/group/internal/repository/GroupEntity.java
+++ b/service/src/main/java/org/apache/fineract/cn/group/internal/repository/GroupEntity.java
@@ -30,7 +30,7 @@ import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToOne;
import javax.persistence.Table;
-import org.apache.fineract.cn.mariadb.util.LocalDateTimeConverter;
+import org.apache.fineract.cn.postgresql.util.LocalDateTimeConverter;
@Entity
@Table(name = "ptah_groups")
diff --git a/service/src/main/java/org/apache/fineract/cn/group/internal/repository/MeetingEntity.java b/service/src/main/java/org/apache/fineract/cn/group/internal/repository/MeetingEntity.java
index dc9fef9..4788455 100644
--- a/service/src/main/java/org/apache/fineract/cn/group/internal/repository/MeetingEntity.java
+++ b/service/src/main/java/org/apache/fineract/cn/group/internal/repository/MeetingEntity.java
@@ -30,8 +30,8 @@ import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
-import org.apache.fineract.cn.mariadb.util.LocalDateConverter;
-import org.apache.fineract.cn.mariadb.util.LocalDateTimeConverter;
+import org.apache.fineract.cn.postgresql.util.LocalDateConverter;
+import org.apache.fineract.cn.postgresql.util.LocalDateTimeConverter;
@Entity
@Table(name = "ptah_meetings")
diff --git a/service/src/main/java/org/apache/fineract/cn/group/internal/repository/MeetingRepository.java b/service/src/main/java/org/apache/fineract/cn/group/internal/repository/MeetingRepository.java
index c094de0..b470945 100644
--- a/service/src/main/java/org/apache/fineract/cn/group/internal/repository/MeetingRepository.java
+++ b/service/src/main/java/org/apache/fineract/cn/group/internal/repository/MeetingRepository.java
@@ -22,7 +22,7 @@ import java.time.LocalDate;
import java.util.List;
import java.util.Optional;
import javax.persistence.Convert;
-import org.apache.fineract.cn.mariadb.util.LocalDateConverter;
+import org.apache.fineract.cn.postgresql.util.LocalDateConverter;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
diff --git a/service/src/main/resources/application.yml b/service/src/main/resources/application.yml
index f9b2ce0..e95b85a 100644
--- a/service/src/main/resources/application.yml
+++ b/service/src/main/resources/application.yml
@@ -40,6 +40,11 @@ spring:
enabled: false
config:
enabled: false
+ datasource:
+ driver-class-name: org.postgresql.Driver
+ url: jdbc:postgresql://localhost:5432/playground
+ username: postgres
+ password: postgres
eureka:
client:
@@ -59,13 +64,13 @@ cassandra:
write: LOCAL_QUORUM
delete: LOCAL_QUORUM
-mariadb:
- driverClass: org.mariadb.jdbc.Driver
+postgresql:
+ driverClass: org.postgresql.Driver
database: seshat
host: localhost
- port: 3306
- user: root
- password: mysql
+ port: 5432
+ user: postgres
+ password: postgres
bonecp:
idleMaxAgeInMinutes: 240
diff --git a/service/src/main/resources/db/migrations/mariadb/V1__initial_setup.sql b/service/src/main/resources/db/migrations/postgresql/V1__initial_setup.sql
similarity index 92%
rename from service/src/main/resources/db/migrations/mariadb/V1__initial_setup.sql
rename to service/src/main/resources/db/migrations/postgresql/V1__initial_setup.sql
index 4460330..e004b01 100644
--- a/service/src/main/resources/db/migrations/mariadb/V1__initial_setup.sql
+++ b/service/src/main/resources/db/migrations/postgresql/V1__initial_setup.sql
@@ -18,7 +18,7 @@
--
CREATE TABLE ptah_addresses (
- id BIGINT NOT NULL AUTO_INCREMENT,
+ id BIGSERIAL NOT NULL,
street VARCHAR(256) NOT NULL,
city VARCHAR(256) NOT NULL,
postal_code VARCHAR(32) NULL,
@@ -29,7 +29,7 @@ CREATE TABLE ptah_addresses (
);
CREATE TABLE ptah_group_definitions (
- id BIGINT NOT NULL AUTO_INCREMENT,
+ id BIGSERIAL NOT NULL,
identifier VARCHAR(32) NOT NULL,
description VARCHAR(2048) NULL,
minimal_size INTEGER NOT NULL,
@@ -46,7 +46,7 @@ CREATE TABLE ptah_group_definitions (
);
CREATE TABLE ptah_groups (
- id BIGINT NOT NULL AUTO_INCREMENT,
+ id BIGSERIAL NOT NULL,
identifier VARCHAR(32) NOT NULL,
group_definition_id BIGINT NOT NULL,
a_name VARCHAR(256) NOT NULL,
@@ -69,7 +69,7 @@ CREATE TABLE ptah_groups (
);
CREATE TABLE ptah_group_commands (
- id BIGINT NOT NULL AUTO_INCREMENT,
+ id BIGSERIAL NOT NULL,
group_id BIGINT NOT NULL,
a_action VARCHAR(32) NOT NULL,
note VARCHAR(256) NOT NULL,
@@ -80,7 +80,7 @@ CREATE TABLE ptah_group_commands (
);
CREATE TABLE ptah_meetings (
- id BIGINT NOT NULL AUTO_INCREMENT,
+ id BIGSERIAL NOT NULL,
group_id BIGINT NOT NULL,
meeting_sequence BIGINT NOT NULL,
current_cycle BIGINT NOT NULL,
@@ -94,7 +94,7 @@ CREATE TABLE ptah_meetings (
);
CREATE TABLE ptah_attendees (
- id BIGINT NOT NULL AUTO_INCREMENT,
+ id BIGSERIAL NOT NULL,
meeting_id BIGINT NOT NULL,
customer_identifier VARCHAR(32) NOT NULL,
a_status VARCHAR(256) NOT NULL,
diff --git a/shared.gradle b/shared.gradle
index 91ec124..8b5c249 100644
--- a/shared.gradle
+++ b/shared.gradle
@@ -60,7 +60,8 @@ ext['spring-data-releasetrain.version'] = 'Gosling-SR2A'
dependencies {
compile(
- [group: 'com.google.code.findbugs', name: 'jsr305']
+ [group: 'com.google.code.findbugs', name: 'jsr305'],
+ [group: 'org.apache.fineract.cn', name: 'postgresql', version: '0.1.0-BUILD-SNAPSHOT']
)
testCompile(