Moving to an open source relational database (PostgreSQL ?)

In the path to going full open source, it makes senses to move all components to open source technology.

The same way we are moving from .NET standard to .NET Core, we should move from SQL Server to an open source RDBMS.

And by the way should we keep using a RDBMS or switch to a nosql database ? My 5 cents here is to have both. Since Generative Objects can handle different datasource types, it makes sense to have a RDBM data source and a nosql datasource. So integrating a nosql datasource will be the subject of another post.

For an open source RDBMS, I can think of MariaDB or PostgreSQL. My preference intuitively goes to PostgreSQL. If anyone has input on this, please you are welcome to share.

@velulev , since you know pretty well PostgreSQL, this could be your first contribution to Generative Objects ! What do you think ?

Architecturally speaking, we are using NHibernate as the ORM. So integrating PostgreSQL at this level should be pretty straightforward. However there will custom work to do at the level of the database live update service.

The database live update service is the engine we have to generate database update scripts when the application data model has changed. This allows for automatic update of the database schema in all environments (dev, recette, production…) with no data loss. It is therefore essential. The work here will be to make sure the SQL code generated is compatible with PostgreSQL. I don’t remember for sure, but we must have already make it evolutive and ready to plug another SQL code generator. If not, this point of extension will have to be added. This way it will be straightforward to add full support for others RDBMS

Hi @walteralmeida, My preference will be PostgresSQL, which is an Open source project, and cannot be sold to anyone like MySQL. Moreover it is constantly improved with quarterly releases with interesting features. I am more than happy to start on the database live update service support for Postgres, with a view to bring other RDBMS later.

1 Like

Great @velulev ! So let’s do this, we can have a online meeting, and I will give you all the information about how the current engine is working

Hi @walteralmeida, please let me know a suitable time for you in the next few days, and we can arrange for a session. Feel free to include others if anyone else has also expressed interest in this area, else, I will start asap. Thanks.

1 Like

Yes @velulev, I am now finalizing the git repo, and will give you, and @Garth, access later today or this weekend max. I will include a documentation explaining how to setup a developer computer, so that you can try by yourself, and then we can have a call during the week !

Excited to have you in :slight_smile:

Hi @walteralmeida, I have accepted your invite to the Github repo, and now can access the repos. Please let me know when the documentation is ready, so that I can try building the existing system, and give it a test run. Thanks.

1 Like

Hey @walteralmeida, I haven’t received an invite email re access to repos; should I have? Cheers

1 Like

@velulev, @Garth I have now given access to both of you to both github repos but also the confluence wiki site, with documentation for onboarding.

Please note that the access given to you is for your private contribution for now, until we go fully public. No source code is to be made public until we are ready to publically open, later this year. Thank you !

Hi @walteralmeida ,

I am in confluence now. I do not see any documentation related to the setup, as all the documentation that I can see are all in French, can you please let me know the title of the page / document about the setup.

I understand, and will not share any info on the source code or documentation, with anyone else.

Thanks & Regards,
Velu

Hi @Velu,
these are the wiki links Walter sent re setup - thankfully for me, all in English! :wink:

and he mentioned that the following are the repos to start:

https://github.com/generative-objects-org/go-application
https://github.com/generative-objects-org/go-framework
https://github.com/generative-objects-org/go-codegenerator
https://github.com/generative-objects-org/go-features
https://github.com/generative-objects-org/go-tools
https://github.com/generative-objects-org/go-dsl

I’ve used Github Desktop to access them, rather than fiddling around with ssh keys etc, and downloaded Visual Studio 2019 community edition to open the ‘GenerativeObjects’ solution. I’ve not yet got a successful build however - I’m getting a number of broken project & nuget library references, which I’m working through…

Actually @walteralmeida, I’m stuck on this error:

Nuget doesn’t list a version of Antlr.Runtime, Version=4.5.0.0 - the closest version is 4.5.3. Suggestions?

@walteralmeida - forget this error; I fixed the reference to point to the files in the go-framework/ExternalReferences folder - all good now.

1 Like

Well done @garth for having succeed in a first build !

I will also answer on the issue you had on references on the Call : setting up Generative Objects on a developer computer post, to keep all about setup on the same place for future reference

Thank you very much for the update @Garth, I have several planned activities for today, and I am not sure if I will have enough time to have the setup done and built tomorrow morning, but will try my best.

@walteralmeida, can you please approve some of the access requests that my Git Client SourceTree may ask on the repositories, please ignore or deny any permissions you deem unnecessary at the moment.

Ok @velulev , I will check on the permission asked for git.

If too short for tomorrow, what about postponing the call to thrusday same time ? if it fits everyone

Walter

I have been trying Github Desktop as @Garth suggested, but no luck, as I was getting the following error, I can now see that you have given me access, and sourcetree lists the repositories, let me try cloning through Source Tree, and see what happens. If it is convenient for everyone, Thursday will be Ok with me too, but I do not want to alter others’ plans. Thanks.

Similar error, even with SourceTree unexpectedly, when I tried to clone the go-framework.

git -c filter.lfs.smudge= -c filter.lfs.required=false -c diff.mnemonicprefix=false -c core.quotepath=false --no-optional-locks clone --branch develop https://github.com/generative-objects-org/go-framework.git D:\Code\GO\go-framework
Cloning into ‘D:\Code\GO\go-framework’…
error: RPC failed; curl 18 transfer closed with outstanding read data remaining
fatal: the remote end hung up unexpectedly
fatal: early EOF
fatal: index-pack failed
Completed with errors, see above.

The safest way to clone the 2 large repositories with all the history is to use git clone in the following way,

$ git clone git@github.com:generative-objects-org/go-framework.git

$ git clone git@github.com:generative-objects-org/go-application.git

The alternate is to clone with depth = 1 and then unshallow, but this has the same issue sometimes.

Reference :

@velulev I’ve never used source tree or SourceTree, just git bash and git extension, doing mostly command line. Working fine. Cloning should be pretty straightforward, as described here :
https://help.github.com/en/github/creating-cloning-and-archiving-repositories/cloning-a-repository

I always clone with full history, it takes a bit longer the first time, but then all is good, and indeed using $ git clone git@github.com:generative-objects-org/go-framework.git

I would recommend using ssh, you can register your public key on the github repository so that you can connect using ssh