Hello Sebastian,
Recently, due to the high cost of MongoDB, our customers who have on-premise setups are looking to move away from MongoDB. They have asked us to offer alternative database solutions. What can we do in this regard? What approach should we take? Generally, the requests are centered around Oracle, MSSQL, MySQL, and PostgreSQL. PostgreSQL, for example, has support for storing JSON data, among other features. Could you assist me with this matter?
The customers cannot use cloud services.
What can we do?
Nothing at the moment.
Squidex was designed to be database agnostic but it is a lot of work and I don’t want to build it without someone who actually invests with that. The point is that I use MongoDB for the Squidex Cloud as well and therefore I am really confident that it works and because I would not use these databases, I cannot provide the same level of confidency.
I am talking with a customer who might want to sponsor it, but I cannot really promise anything yet.
How much cost and time are we talking about for sponsorship? Maybe I can afford it?
I dont know. A few months of work and also the time for extensive testing.
This is an important issue, you can write me about it in detail. In the future, it would be good to explain this kind of support in terms of the product. I would like you to discuss how much we can afford in terms of cost. Also, since you know the product well, what kind of path should be followed, what kind of changes do you foresee in which cs projects, what should be done in terms of infrastructure development and performance, what should be chosen, is it possible to give some detailed information under this article, maybe we can undertake some of the development in addition to financial support
This class is actually good starting point:
As you can see, all Mongo Services are registered here. For each of the services we need an entity framework equivalent.
Some of the services are in external libraries though, e.g.
So I would start with the libs and implement classes in a way that makes in easy to use a single DbContext. Then just go over them one by one.
There are probably 2 challenges, that are solveable:
So we need…
- A little bit of infrastructure for context management and migration
- Implementation for all these classes.
- Improved integration tests, e.g. with Testcontainers
- Improved api tests to run them against other databases as well: postgresql, mysql, sql server, oracle.
1 Like
There are very detailed changes. Thank you for sharing all this. We will start working on it at the first opportunity. First we need to investigate the databases with common features and the constraints of these features. then we need to progress starting from the library and implemented classes as you said. We would love to make it a solution that will work on different databases next year.
Thanks for everything.
1 Like