更新期间更新/迁移远程客户机独立数据库模式的选项

时间:2018-01-02 11:14:07

标签: javascript node.js postgresql

情境:

我目前正致力于基于桌面的应用程序,该应用程序涉及多个独立的生产站点,每个站点都有自己的服务器,数据库和本地客户端。

软件经历持续的自动更新,作为这些更新的一部分,每个生产站点的数据库(postgresql)将需要进行模式迁移(同时在迁移期间维护现有数据的持久性/转换)。

手动访问客户端计算机(例如SSH /远程桌面)以运行脚本/执行更新不是一种选择。客户端需要在检查,下载和安装更新时自给自足。

问题:

除了编写SQL脚本并使用单独的服务逐个运行或使用更新的应用程序运行它之外,我一直在寻找几个月并且还没有合适的选择。

问题:

您建议哪些工具适合此方案以简化迁移过程?

1 个答案:

答案 0 :(得分:0)

在进行数据库迁移时,运行SQL脚本通常是一种公认​​的做法。像ActiveRecord这样的工具(在ruby世界中)提供了一个中间层(DSL),但实质上是围绕SQL的包装。

有一个很好的理由 - 迁移是在SQL服务器上进行的操作,而在SQL服务器中操作表的唯一严格定义的接口是特定RDBMS服务器正在使用的PL / SQL语言语言。

这意味着,如果SQL脚本是可接受的迁移选项(在团队知道的情况下可以接受,没有人反对此等等),您应该使用它们。

为了让任务更容易(ruby的方式)你可以看看:http://migrate4j.sourceforge.net/

他们将工具描述为bool.Parse(null)但这不是一项基本要求。