情境:
我目前正致力于基于桌面的应用程序,该应用程序涉及多个独立的生产站点,每个站点都有自己的服务器,数据库和本地客户端。
软件经历持续的自动更新,作为这些更新的一部分,每个生产站点的数据库(postgresql)将需要进行模式迁移(同时在迁移期间维护现有数据的持久性/转换)。
手动访问客户端计算机(例如SSH /远程桌面)以运行脚本/执行更新不是一种选择。客户端需要在检查,下载和安装更新时自给自足。
问题:
除了编写SQL脚本并使用单独的服务逐个运行或使用更新的应用程序运行它之外,我一直在寻找几个月并且还没有合适的选择。
问题:
您建议哪些工具适合此方案以简化迁移过程?
答案 0 :(得分:0)
在进行数据库迁移时,运行SQL脚本通常是一种公认的做法。像ActiveRecord这样的工具(在ruby世界中)提供了一个中间层(DSL),但实质上是围绕SQL的包装。
有一个很好的理由 - 迁移是在SQL服务器上进行的操作,而在SQL服务器中操作表的唯一严格定义的接口是特定RDBMS服务器正在使用的PL / SQL语言语言。
这意味着,如果SQL脚本是可接受的迁移选项(在团队知道的情况下可以接受,没有人反对此等等),您应该使用它们。
为了让任务更容易(ruby的方式)你可以看看:http://migrate4j.sourceforge.net/
他们将工具描述为bool.Parse(null)
但这不是一项基本要求。