Database Storage - Agnostic Scheme

We have a set of applications that work with several database engines, including Sql Server and Access. Schemes for each of them are supported separately and are not saved in text form, which makes it difficult to manage the source. We are interested in moving to a system in which the scheme is stored in some text format (for example, XML or YAML) with descriptions of field data types, foreign key relationships, etc.

When all is said and done, we want to have one text file in the source control, which can be used to create a clean database that works with both SQL Server and Access, although it can work with Oracle, DB2 and other engines) .

I am sure that there are tools or libraries that can get at least part of the way from us. Firstly, I found Altova MapForce , it seems that this can do the trick, but I'm interested in learning about any alternative tools or libraries or even completely different solutions for those in the same predicament.

Note. Applications are written in C ++, and ORM solutions are not always available in C ++ and will be integrated into our aging products for too long.

+4
source share
3 answers

If you don’t use the relational mapmaker object that does this (and much more for you), the easiest way can be to hack several structures to define your tables and attributes in some kind of (static) code and write small generators to create real databases from this description.

This simplifies source management, and if you are careful when designing these structures, you can easily reuse them for other databases if necessary.

+1
source

Consensus, when I asked a similar (albeit more naive) question , it seems like I should use raw SQL and manage RDMS dependencies with an extra layer. Good luck.

+1
source

The tool you are looking for is liquibase . No access support though ...

0
source

All Articles