Hi Isaac,

Sorry abou the delay in my response. I did test out your code now and found
some issues.

Here is what I did:
I pulled the newest code from your forks.
I'm running PostgreSQL and Cassandra inside Docker, so I cleaned the
containers to loose any previous state.

Then I ran:

java -Ddemoserver.persistent=true -Ddemoserver.provision=true
-Dcustom.cassandra.contactPoints=127.0.0.1:9042
-Dcassandra.cluster.user=cassandra -Dcassandra.cluster.pwd=password
-Ddemoserver.lite=true -jar demo-server-0.1.0-BUILD-SNAPSHOT.jar

In the logs I see that the migrations to database get applied without
errors and the applications get started.
There was however an error by Provisioner that database "seshat" didn't
exist but it seems that the service
managed to recover fromt his and create the database itself. Or should I
have created database "seshat" myself?

Then I started fims-web-app and I managed to log in.
What I didn't manage to do was to create an headquarter office

I filled in the details in fims-web-app and from developer console under
Networking I see
that the request is sent to http://localhost:4200/api/office/v1/offices and
it gets 202 (Accepted) as response:
Payload:
{ "identifier": "OF123", "name": "Office name", "description": null,
"address": { "street": "Street", "city": "City", "postalCode": "",
"region": null } }

But when the app makes a request:

http://localhost:4200/api/office/v1/offices/OF123
it gets 404 (not found).

In the logs I see:

10:06:11.670 [async-processor-4] WARN  o.h.e.jdbc.spi.SqlExceptionHelper -
SQL Error: 0, SQLState: 23502
10:06:11.671 [async-processor-4] ERROR o.h.e.jdbc.spi.SqlExceptionHelper -
ERROR: null value in column "id" violates not-null constraint
  Detail: Failing row contains (null, null, OF123, Office name, null,
operator, 2019-05-03 10:06:11.663, null, null).

If I compare the new Postgre DB scripts with old MariaDB scripts then I see
that in MariaDB/MySQL the ID fields are AUTO_INCREMENT:

  id               BIGINT        NOT NULL AUTO_INCREMENT,

but in your postgresql flyway *.sql scripts you don't create any sequences
and you don't use serial type. You have just:

id BIGINT NOT NULL,

So there is nothing to create ID-s for new records. So I changed in
fineract-cn-office/*.sql files all "id BIGINT NOT NULL" into:

id SERIAL,

this is basically Postgres version of AUTO_INCREMENT (and you don't have to
specify data type), you can read more abut it here:
http://www.postgresqltutorial.com/postgresql-serial/
Now I cleaned Posgre database, rebuilt fineract-cn-office and restarted the
server and then I managed to create offices
in fims-web-app.

So what you need to do is everywhere where there was AUTO_INCREMENT in
*.sql files you need to use SERIAL.

So almost there! Please let me know if you have gone over all the *sql
files and I will test again.

Kind regards
Juhan

Kontakt Isaac Kamga (<[email protected]>) kirjutas kuupƤeval N, 27.
detsember 2018 kell 03:26:

> Hey Juhan,
>
> Yes, I've been following the updates to the How-To-Build page.
>
> I'm happy the clarification was helpful and you've improved Step 3. I also
> updated the demo-server and service-starter repositories to enable the
> Fineract CN build happen in less time. Kindly update your respective
> repositories and build once more to provide more feedback.
>
> Keep up the good work.
>
> Cheers,
> Isaac Kamga.
>
> On Wed, Dec 26, 2018 at 11:14 PM Juhan Aasaru <[email protected]> wrote:
>
> > Thanks, Isaac for clearing up the confusion.
> > Based on your explanations I also restructured Step 3 to make it easier
> to
> > follow.
> > Please review if you have a moment.
> >
> > Kind regards
> > Juhan Aasaru
> >
>

Reply via email to