代码之家  ›  专栏  ›  技术社区  ›  Karim

存储数据库不可知模式

  •  4
  • Karim  · 技术社区  · 16 年前

    我们有一组应用程序可以与多个数据库引擎一起工作,包括sql server和access。每个模式都是单独维护的,并且不以文本形式存储,这使得源代码控制变得困难。我们感兴趣的是转移到这样一个系统:模式以某种基于文本的格式(如xml或yaml)存储,其中包含字段数据类型、外键关系等的描述。

    说到做到,我们希望在源代码管理中有一个单独的文本文件,可以用来生成一个干净的数据库,该数据库至少可以与sql server和access一起工作(最好能够与oracle、db2和其他引擎一起工作)。

    我确信有一些工具或库可以让我们至少在一部分时间内到达那里。首先,我发现 Altova MapForce 这看起来可能起到了作用,但我有兴趣听到任何替代工具或库,甚至完全不同的解决方案,为那些处于相同困境。

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

    3 回复  |  直到 13 年前
        1
  •  1
  •   David Schmitt    16 年前

    如果你不使用 object relational mapper 这样做(对您来说还有很多其他事情)最简单的方法可能是创建一些结构,以某种形式(静态)代码定义表和属性,并编写一些生成器来根据该描述创建实际的数据库。

    这使得源代码控制变得容易,如果您在设计这些结构时很小心,那么如果需要,您可以很容易地将它们重新用于其他dbs。

        2
  •  1
  •   Community rohancragg    7 年前

    当我问起 a similar (if rather more naive) question 似乎是使用原始sql,并使用一个附加层来管理rdms依赖项。祝你好运。

        3
  •  0
  •   Mark O'Connor    13 年前

    你要找的工具是 liquibase . 但不支持访问…