There exists a group of programs that actually work with multiple database engines including Sql Server and Access. The schemas for every are maintained individually and therefore are not saved in text form making source control difficult. We are curious about moving to some system in which the schema is saved in certain text-based format (for example XML or YAML) with explanations of area data types, foreign key relationhsips, etc.

When all is stated and done, you want to possess a single text file in source control you can use to develop a clean database that actually works with both SQL Server, Access a minimum of (and ideally is capable of doing dealing with Oracle, DB2 along with other engines).

I am sure that you will find tools or libraries available that may get us a minimum of area of the way there. For just one, I have found Altova MapForce that appears enjoy it may have the desired effect but I am thinking about listening to what other tools or libraries as well as entirely different solutions for individuals within the same predicament.

Note: The programs are designed in C++ and ORM solutions are generally not easily available in C++ and would take way too lengthy to integrate into our aging items.

If you do not make use of a object relational mapper that performs this (and several other activities for you personally) the simplest way may be cooking up a couple of structures to define your tables and characteristics in some type of (static) code and write little machines to produce actual databases from that description.

That causes it to be simple for source control, and when you are careful when creating individuals structures, it is simple to re-utilize them for other DBs if need arises.

The consensus after i requested a similar (if rather more naive) question appear to become to make use of raw SQL, and also to manage the RDMS dependencies by having an additional layer. Best of luck.

Tool you are searching for is liquibase. No support for Access though...