Merge pull request #15 from Izakey/FINCN-124

Migrate portfolio service from MariaDB to PostgreSQL
diff --git a/.gitignore b/.gitignore
index 499b6de..5b0038d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -2,6 +2,7 @@
 .idea
 build/
 target/
+
 api/out/
 component-test/out/
 service/out
diff --git a/NOTICE.txt b/NOTICE.txt
index e8768eb..9d7d8f4 100644
--- a/NOTICE.txt
+++ b/NOTICE.txt
@@ -1,5 +1,5 @@
 Apache Fineract CN Portfolio
-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/portfolio/AbstractPortfolioTest.java b/component-test/src/main/java/org/apache/fineract/cn/portfolio/AbstractPortfolioTest.java
index d237f64..5b4e472 100644
--- a/component-test/src/main/java/org/apache/fineract/cn/portfolio/AbstractPortfolioTest.java
+++ b/component-test/src/main/java/org/apache/fineract/cn/portfolio/AbstractPortfolioTest.java
@@ -118,7 +118,7 @@
 
   @ClassRule
   public final static TenantDataStoreContextTestRule tenantDataStoreContext
-      = TenantDataStoreContextTestRule.forRandomTenantName(cassandraInitializer, mariaDBInitializer);
+      = TenantDataStoreContextTestRule.forRandomTenantName(cassandraInitializer, postgreSQLInitializer);
 
   @Rule
   public final TenantApplicationSecurityEnvironmentTestRule tenantApplicationSecurityEnvironment
diff --git a/component-test/src/main/java/org/apache/fineract/cn/portfolio/SuiteTestEnvironment.java b/component-test/src/main/java/org/apache/fineract/cn/portfolio/SuiteTestEnvironment.java
index ecd7f99..d54772c 100644
--- a/component-test/src/main/java/org/apache/fineract/cn/portfolio/SuiteTestEnvironment.java
+++ b/component-test/src/main/java/org/apache/fineract/cn/portfolio/SuiteTestEnvironment.java
@@ -20,7 +20,7 @@
 
 import org.apache.fineract.cn.test.env.TestEnvironment;
 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.RunExternalResourceOnce;
@@ -33,11 +33,11 @@
   static final String APP_NAME = "portfolio-v1";
   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();
 
   @ClassRule
   public static TestRule orderClassRules = RuleChain
       .outerRule(new RunExternalResourceOnce(testEnvironment))
       .around(new RunExternalResourceOnce(cassandraInitializer))
-      .around(new RunExternalResourceOnce(mariaDBInitializer));
+      .around(new RunExternalResourceOnce(postgreSQLInitializer));
 }
diff --git a/service/build.gradle b/service/build.gradle
index da17ef8..de6e948 100644
--- a/service/build.gradle
+++ b/service/build.gradle
@@ -61,7 +61,8 @@
             [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],
             [group: 'net.jodah', name: 'expiringmap', version: versions.expiringmap],
diff --git a/service/src/main/java/org/apache/fineract/cn/individuallending/internal/repository/LateCaseEntity.java b/service/src/main/java/org/apache/fineract/cn/individuallending/internal/repository/LateCaseEntity.java
index 415704f..f5c0ff4 100644
--- a/service/src/main/java/org/apache/fineract/cn/individuallending/internal/repository/LateCaseEntity.java
+++ b/service/src/main/java/org/apache/fineract/cn/individuallending/internal/repository/LateCaseEntity.java
@@ -27,7 +27,7 @@
 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;
 
 /**
  * @author Myrle Krantz
diff --git a/service/src/main/java/org/apache/fineract/cn/portfolio/service/config/PortfolioServiceConfiguration.java b/service/src/main/java/org/apache/fineract/cn/portfolio/service/config/PortfolioServiceConfiguration.java
index 5ac8938..1620ab8 100644
--- a/service/src/main/java/org/apache/fineract/cn/portfolio/service/config/PortfolioServiceConfiguration.java
+++ b/service/src/main/java/org/apache/fineract/cn/portfolio/service/config/PortfolioServiceConfiguration.java
@@ -30,7 +30,7 @@
 import org.apache.fineract.cn.lang.config.EnableApplicationName;
 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.apache.fineract.cn.rhythm.api.v1.client.RhythmManager;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -52,7 +52,7 @@
 @EnableDiscoveryClient
 @EnableAsync
 @EnableTenantContext
-@EnableMariaDB
+@EnablePostgreSQL
 @EnableCassandra
 @EnableCommandProcessing
 @EnableAnubis
diff --git a/service/src/main/java/org/apache/fineract/cn/portfolio/service/internal/command/handler/InitializeCommandHandler.java b/service/src/main/java/org/apache/fineract/cn/portfolio/service/internal/command/handler/InitializeCommandHandler.java
index c143aab..bc04a59 100644
--- a/service/src/main/java/org/apache/fineract/cn/portfolio/service/internal/command/handler/InitializeCommandHandler.java
+++ b/service/src/main/java/org/apache/fineract/cn/portfolio/service/internal/command/handler/InitializeCommandHandler.java
@@ -26,7 +26,7 @@
 import org.apache.fineract.cn.command.annotation.CommandHandler;
 import org.apache.fineract.cn.command.annotation.CommandLogLevel;
 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.flywaydb.core.Flyway;
 import org.springframework.beans.factory.annotation.Autowired;
 
diff --git a/service/src/main/java/org/apache/fineract/cn/portfolio/service/internal/repository/CaseCommandEntity.java b/service/src/main/java/org/apache/fineract/cn/portfolio/service/internal/repository/CaseCommandEntity.java
index 61b8f12..9213578 100644
--- a/service/src/main/java/org/apache/fineract/cn/portfolio/service/internal/repository/CaseCommandEntity.java
+++ b/service/src/main/java/org/apache/fineract/cn/portfolio/service/internal/repository/CaseCommandEntity.java
@@ -27,7 +27,7 @@
 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;
 
 /**
  * @author Myrle Krantz
diff --git a/service/src/main/java/org/apache/fineract/cn/portfolio/service/internal/repository/CaseEntity.java b/service/src/main/java/org/apache/fineract/cn/portfolio/service/internal/repository/CaseEntity.java
index 03d0969..c481886 100644
--- a/service/src/main/java/org/apache/fineract/cn/portfolio/service/internal/repository/CaseEntity.java
+++ b/service/src/main/java/org/apache/fineract/cn/portfolio/service/internal/repository/CaseEntity.java
@@ -32,7 +32,7 @@
 import javax.persistence.Id;
 import javax.persistence.OneToMany;
 import javax.persistence.Table;
-import org.apache.fineract.cn.mariadb.util.LocalDateTimeConverter;
+import org.apache.fineract.cn.postgresql.util.LocalDateTimeConverter;
 
 /**
  * @author Myrle Krantz
diff --git a/service/src/main/java/org/apache/fineract/cn/portfolio/service/internal/repository/CaseRepository.java b/service/src/main/java/org/apache/fineract/cn/portfolio/service/internal/repository/CaseRepository.java
index a036d62..623f4fc 100644
--- a/service/src/main/java/org/apache/fineract/cn/portfolio/service/internal/repository/CaseRepository.java
+++ b/service/src/main/java/org/apache/fineract/cn/portfolio/service/internal/repository/CaseRepository.java
@@ -38,7 +38,7 @@
   Page<CaseEntity> findByProductIdentifierAndCurrentStateIn(String productIdentifier, Collection<String> currentStates, Pageable pageRequest);
 
   //TODO: It should be possible to delete the @Query once we've updated to spring-data-release train ingalls.
-  @Query("SELECT COUNT(t) > 0  FROM CaseEntity t WHERE t.productIdentifier = :productIdentifier")
+  @Query("SELECT CASE WHEN COUNT(t) > 0 THEN true ELSE false END FROM CaseEntity t WHERE t.productIdentifier = :productIdentifier")
   boolean existsByProductIdentifier(@Param("productIdentifier") String productIdentifier);
 
   Stream<CaseEntity> findByCurrentStateIn(Collection<String> currentStates);
diff --git a/service/src/main/java/org/apache/fineract/cn/portfolio/service/internal/repository/ProductEntity.java b/service/src/main/java/org/apache/fineract/cn/portfolio/service/internal/repository/ProductEntity.java
index 61b2f03..32bf068 100644
--- a/service/src/main/java/org/apache/fineract/cn/portfolio/service/internal/repository/ProductEntity.java
+++ b/service/src/main/java/org/apache/fineract/cn/portfolio/service/internal/repository/ProductEntity.java
@@ -35,7 +35,7 @@
 import javax.persistence.Id;
 import javax.persistence.OneToMany;
 import javax.persistence.Table;
-import org.apache.fineract.cn.mariadb.util.LocalDateTimeConverter;
+import org.apache.fineract.cn.postgresql.util.LocalDateTimeConverter;
 
 /**
  * @author Myrle Krantz
diff --git a/service/src/main/java/org/apache/fineract/cn/portfolio/service/internal/repository/TaskInstanceEntity.java b/service/src/main/java/org/apache/fineract/cn/portfolio/service/internal/repository/TaskInstanceEntity.java
index 82e6b70..1ab5489 100644
--- a/service/src/main/java/org/apache/fineract/cn/portfolio/service/internal/repository/TaskInstanceEntity.java
+++ b/service/src/main/java/org/apache/fineract/cn/portfolio/service/internal/repository/TaskInstanceEntity.java
@@ -30,7 +30,7 @@
 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;
 
 /**
  * @author Myrle Krantz
diff --git a/service/src/main/resources/application.yml b/service/src/main/resources/application.yml
index 412aa8d..ba5f8d7 100644
--- a/service/src/main/resources/application.yml
+++ b/service/src/main/resources/application.yml
@@ -34,6 +34,18 @@
 # limitations under the License.
 #
 
+spring:
+  cloud:
+    discovery:
+      enabled: false
+    config:
+      enabled: false
+  datasource:
+    driver-class-name: org.postgresql.Driver
+    url: jdbc:postgresql://localhost:5432/playground
+    username: postgres
+    password: postgres
+
 eureka:
   client:
     serviceUrl:
@@ -54,13 +66,13 @@
     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/V10__arrears_determination2.sql b/service/src/main/resources/db/migrations/postgresql/V10__arrears_determination2.sql
similarity index 96%
rename from service/src/main/resources/db/migrations/mariadb/V10__arrears_determination2.sql
rename to service/src/main/resources/db/migrations/postgresql/V10__arrears_determination2.sql
index 1dce6e3..876689b 100644
--- a/service/src/main/resources/db/migrations/mariadb/V10__arrears_determination2.sql
+++ b/service/src/main/resources/db/migrations/postgresql/V10__arrears_determination2.sql
@@ -18,7 +18,7 @@
 --
 
 CREATE TABLE bastet_il_late_cases (
-  id BIGINT NOT NULL AUTO_INCREMENT,
+  id BIGSERIAL NOT NULL,
   case_id                  BIGINT         NOT NULL,
   late_since               TIMESTAMP(3)   NOT NULL,
 
diff --git a/service/src/main/resources/db/migrations/mariadb/V11__case_documents.sql b/service/src/main/resources/db/migrations/postgresql/V11__case_documents.sql
similarity index 96%
rename from service/src/main/resources/db/migrations/mariadb/V11__case_documents.sql
rename to service/src/main/resources/db/migrations/postgresql/V11__case_documents.sql
index 0bf140e..77aeab1 100644
--- a/service/src/main/resources/db/migrations/mariadb/V11__case_documents.sql
+++ b/service/src/main/resources/db/migrations/postgresql/V11__case_documents.sql
@@ -18,7 +18,7 @@
 --
 
 CREATE TABLE bastet_il_c_docs (
-  id BIGINT NOT NULL AUTO_INCREMENT,
+  id BIGSERIAL NOT NULL,
   case_id                  BIGINT         NOT NULL,
   customer_identifier      VARCHAR(32)    NOT NULL,
   document_identifier      VARCHAR(32)    NOT NULL,
diff --git a/service/src/main/resources/db/migrations/mariadb/V12__persist_start_of_term_locally.sql b/service/src/main/resources/db/migrations/postgresql/V12__persist_start_of_term_locally.sql
similarity index 100%
rename from service/src/main/resources/db/migrations/mariadb/V12__persist_start_of_term_locally.sql
rename to service/src/main/resources/db/migrations/postgresql/V12__persist_start_of_term_locally.sql
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 94%
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 b6087fc..10fc5f9 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
@@ -17,10 +17,10 @@
 -- under the License.
 --
 
-# noinspection SqlNoDataSourceInspectionForFile
+/*# noinspection SqlNoDataSourceInspectionForFile*/
 
 CREATE TABLE bastet_products (
-  id BIGINT NOT NULL AUTO_INCREMENT,
+  id BIGSERIAL NOT NULL,
   identifier               VARCHAR(32)    NOT NULL,
   a_name                   VARCHAR(256)   NOT NULL,
   term_range_temporal_unit VARCHAR(128)   NOT NULL,
@@ -46,7 +46,7 @@
 );
 
 CREATE TABLE bastet_p_acct_assigns (
-  id BIGINT NOT NULL AUTO_INCREMENT,
+  id BIGSERIAL NOT NULL,
   designator               VARCHAR(32)    NOT NULL,
   identifier               VARCHAR(34)    NOT NULL,
   product_id               BIGINT         NOT NULL,
@@ -57,7 +57,7 @@
 );
 
 CREATE TABLE bastet_p_task_defs (
-  id BIGINT NOT NULL AUTO_INCREMENT,
+  id BIGSERIAL NOT NULL,
   identifier               VARCHAR(32)    NOT NULL,
   product_id               BIGINT         NOT NULL,
   a_name                   VARCHAR(256)   NOT NULL,
@@ -71,7 +71,7 @@
 );
 
 CREATE TABLE bastet_p_chrg_defs (
-  id BIGINT NOT NULL AUTO_INCREMENT,
+  id BIGSERIAL NOT NULL,
   identifier               VARCHAR(32)    NOT NULL,
   product_id               BIGINT         NOT NULL,
   a_name                   VARCHAR(256)   NOT NULL,
@@ -90,7 +90,7 @@
 );
 
 CREATE TABLE bastet_cases (
-  id BIGINT NOT NULL AUTO_INCREMENT,
+  id BIGSERIAL NOT NULL,
   identifier               VARCHAR(32) NOT NULL,
   product_identifier       VARCHAR(32) NOT NULL,
   current_state            VARCHAR(32)   NOT NULL,
@@ -103,7 +103,7 @@
 );
 
 CREATE TABLE bastet_c_acct_assigns (
-  id BIGINT NOT NULL AUTO_INCREMENT,
+  id BIGSERIAL NOT NULL,
   designator               VARCHAR(32)    NOT NULL,
   identifier               VARCHAR(34)    NOT NULL,
   case_id                  BIGINT         NOT NULL,
@@ -113,7 +113,7 @@
 );
 
 CREATE TABLE bastet_il_cases (
-  id BIGINT NOT NULL AUTO_INCREMENT,
+  id BIGSERIAL NOT NULL,
   case_id                  BIGINT         NOT NULL,
   customer_identifier      VARCHAR(32)    NOT NULL,
   term_range_temporal_unit VARCHAR(128)   NOT NULL,
@@ -131,7 +131,7 @@
 );
 
 CREATE TABLE bastet_il_c_credit_facts (
-  id BIGINT NOT NULL AUTO_INCREMENT,
+  id BIGSERIAL NOT NULL,
   case_id                  BIGINT         NOT NULL,
   customer_identifier      VARCHAR(32)    NOT NULL,
   position_in_factor       INT            NOT NULL,
diff --git a/service/src/main/resources/db/migrations/mariadb/V2__in_motion.sql b/service/src/main/resources/db/migrations/postgresql/V2__in_motion.sql
similarity index 94%
rename from service/src/main/resources/db/migrations/mariadb/V2__in_motion.sql
rename to service/src/main/resources/db/migrations/postgresql/V2__in_motion.sql
index 0f27ee7..01f16f9 100644
--- a/service/src/main/resources/db/migrations/mariadb/V2__in_motion.sql
+++ b/service/src/main/resources/db/migrations/postgresql/V2__in_motion.sql
@@ -17,6 +17,6 @@
 -- under the License.
 --
 
-# noinspection SqlNoDataSourceInspectionForFile
+/*# noinspection SqlNoDataSourceInspectionForFile*/
 
 ALTER TABLE bastet_p_chrg_defs ADD COLUMN proportional_to VARCHAR(32) NULL DEFAULT NULL;
\ No newline at end of file
diff --git a/service/src/main/resources/db/migrations/mariadb/V3__task_instances.sql b/service/src/main/resources/db/migrations/postgresql/V3__task_instances.sql
similarity index 97%
rename from service/src/main/resources/db/migrations/mariadb/V3__task_instances.sql
rename to service/src/main/resources/db/migrations/postgresql/V3__task_instances.sql
index 26b2842..3eb0c2e 100644
--- a/service/src/main/resources/db/migrations/mariadb/V3__task_instances.sql
+++ b/service/src/main/resources/db/migrations/postgresql/V3__task_instances.sql
@@ -18,7 +18,7 @@
 --
 
 CREATE TABLE bastet_c_task_insts (
-  id BIGINT NOT NULL AUTO_INCREMENT,
+  id BIGSERIAL NOT NULL,
   case_id                  BIGINT         NOT NULL,
   task_def_id              BIGINT         NOT NULL,
   a_comment                VARCHAR(4096)  NOT NULL,
diff --git a/service/src/main/resources/db/migrations/mariadb/V4__fixing_in_motion_migration.sql b/service/src/main/resources/db/migrations/postgresql/V4__fixing_in_motion_migration.sql
similarity index 100%
rename from service/src/main/resources/db/migrations/mariadb/V4__fixing_in_motion_migration.sql
rename to service/src/main/resources/db/migrations/postgresql/V4__fixing_in_motion_migration.sql
diff --git a/service/src/main/resources/db/migrations/mariadb/V5__readonly_charges.sql b/service/src/main/resources/db/migrations/postgresql/V5__readonly_charges.sql
similarity index 100%
rename from service/src/main/resources/db/migrations/mariadb/V5__readonly_charges.sql
rename to service/src/main/resources/db/migrations/postgresql/V5__readonly_charges.sql
diff --git a/service/src/main/resources/db/migrations/mariadb/V6__interest_and_charges.sql b/service/src/main/resources/db/migrations/postgresql/V6__interest_and_charges.sql
similarity index 100%
rename from service/src/main/resources/db/migrations/mariadb/V6__interest_and_charges.sql
rename to service/src/main/resources/db/migrations/postgresql/V6__interest_and_charges.sql
diff --git a/service/src/main/resources/db/migrations/mariadb/V7__balance_segment_sets.sql b/service/src/main/resources/db/migrations/postgresql/V7__balance_segment_sets.sql
similarity index 97%
rename from service/src/main/resources/db/migrations/mariadb/V7__balance_segment_sets.sql
rename to service/src/main/resources/db/migrations/postgresql/V7__balance_segment_sets.sql
index f6bf095..43c9cb0 100644
--- a/service/src/main/resources/db/migrations/mariadb/V7__balance_segment_sets.sql
+++ b/service/src/main/resources/db/migrations/postgresql/V7__balance_segment_sets.sql
@@ -18,7 +18,7 @@
 --
 
 CREATE TABLE bastet_p_balance_segs (
-  id BIGINT NOT NULL AUTO_INCREMENT,
+  id BIGSERIAL NOT NULL,
   seg_set_identifier       VARCHAR(32)    NOT NULL,
   segment_identifier       VARCHAR(32)    NOT NULL,
   product_id               BIGINT         NOT NULL,
diff --git a/service/src/main/resources/db/migrations/mariadb/V8__late_payment_determination.sql b/service/src/main/resources/db/migrations/postgresql/V8__late_payment_determination.sql
similarity index 100%
rename from service/src/main/resources/db/migrations/mariadb/V8__late_payment_determination.sql
rename to service/src/main/resources/db/migrations/postgresql/V8__late_payment_determination.sql
diff --git a/service/src/main/resources/db/migrations/mariadb/V9__arrears_determination.sql b/service/src/main/resources/db/migrations/postgresql/V9__arrears_determination.sql
similarity index 95%
rename from service/src/main/resources/db/migrations/mariadb/V9__arrears_determination.sql
rename to service/src/main/resources/db/migrations/postgresql/V9__arrears_determination.sql
index fd4751c..ebb0438 100644
--- a/service/src/main/resources/db/migrations/mariadb/V9__arrears_determination.sql
+++ b/service/src/main/resources/db/migrations/postgresql/V9__arrears_determination.sql
@@ -18,7 +18,7 @@
 --
 
 CREATE TABLE bastet_case_commands (
-  id BIGINT NOT NULL AUTO_INCREMENT,
+  id BIGSERIAL NOT NULL,
   case_id                  BIGINT         NOT NULL,
   action_name              VARCHAR(32)    NOT NULL,
   created_on               TIMESTAMP(3)   NOT NULL,
@@ -31,7 +31,7 @@
 );
 
 CREATE TABLE bastet_p_arrears_config (
-  id BIGINT NOT NULL AUTO_INCREMENT,
+  id BIGSERIAL NOT NULL,
   product_id               BIGINT         NOT NULL,
   days_late                INT            NOT NULL,
   percent_provision        DECIMAL(5,2)   NOT NULL,
diff --git a/shared.gradle b/shared.gradle
index c3a0ab6..68dde5b 100644
--- a/shared.gradle
+++ b/shared.gradle
@@ -66,7 +66,8 @@
 
 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(