我们有一组适用于多个数据库引擎的应用程序,包括Sql Server和Access.每个模式都是单独维护的,不以文本形式存储,使源控制变得困难.我们感兴趣的是转移到一个系统,其中模式以某种基于文本的格式(例如
XML或YAML)存储,其中包含字段数据类型,外键关系密码等的描述.
完成所有操作后,我们希望在源代码管理中有一个文本文件可用于生成一个干净的数据库,该数据库至少可以与SQL Server,Access一起使用(并且最好能够与Oracle,DB2和其他服务器一起使用)引擎).
我确信那里有工具或库可以让我们至少部分地在那里.首先,我发现Altova MapForce看起来似乎可以做到这一点,但我有兴趣听到任何替代工具或库,甚至是那些处于同样困境的完全不同的解决方案.
注意:这些应用程序是用C语言编写的,ORM解决方案在C语言中都不容易获得,并且需要很长时间才能集成到我们的老化产品中.
最佳答案 如果您不使用执行此操作的
object relational mapper(以及许多其他适合您),最简单的方法可能是创建一些结构,以某种形式(静态)代码定义表和属性,并编写少量生成器来创建该描述中的实际数据库.
这使得源代码控制变得简单,如果在设计这些结构时要小心,如果需要,可以轻松地将它们重新用于其他数据库.