存储数据库不可知模式

时间:2009-01-27 13:08:23

标签: sql-server database ms-access schema xsd

我们有一组适用于多个数据库引擎的应用程序,包括Sql Server和Access。每个模式都是单独维护的,不以文本形式存储,使源控制变得困难。我们感兴趣的是转移到一个系统,其中模式以某种基于文本的格式(例如XML或YAML)存储,并带有字段数据类型,外键关系密码等的描述。

当完成所有操作后,我们希望在源代码管理中有一个文本文件,可用于生成一个干净的数据库,该数据库至少可以与SQL Server,Access一起使用(最好能够与Oracle一起使用, DB2和其他引擎)。

我确信那里有工具或库可以让我们至少部分地在那里。首先,我发现Altova MapForce看起来似乎可以解决这个问题,但我有兴趣听到任何替代工具或库,甚至是处于相同困境的人的完全不同的解决方案。

注意:应用程序是用C ++编写的,ORM解决方案在C ++中都不易提供,并且需要很长时间才能集成到老化的产品中。

3 个答案:

答案 0 :(得分:1)

如果您不使用执行此操作的object relational mapper(以及许多其他事情),最简单的方法可能是创建一些结构以某种形式(静态)定义表和属性代码并编写小生成器以根据该描述创建实际数据库。

这使得源代码控制变得简单,如果在设计这些结构时要小心,如果需要,可以轻松地将它们重新用于其他数据库。

答案 1 :(得分:1)

我问a similar (if rather more naive) question时的共识似乎是使用原始SQL,并使用附加层管理RDMS依赖项。祝你好运。

答案 2 :(得分:0)

您正在寻找的工具是liquibase。通过...不支持Access;