设想:
我目前正在开发一个基于桌面的应用程序,涉及多个独立的生产站点,每个站点都有自己的服务器、数据库和本地客户端。
该软件会持续进行自动更新,作为这些更新的一部分,每个生产站点的数据库 (postgresql) 都需要进行模式迁移(同时在迁移过程中保持现有数据的持久性/转换)。
手动访问客户端机器(例如 SSH/远程桌面)来运行脚本/执行更新不是一种选择。客户端需要在检查、下载和安装更新方面自给自足。
问题:
我已经环顾了几个月,除了编写 SQL 脚本并使用单独的服务逐个运行它或使用更新的应用程序运行它之外,还没有合适的选择。
问题:
您会建议哪些工具适合这种情况以简化迁移过程?
在进行数据库迁移时运行 SQL 脚本是一种普遍接受的做法。像 ActiveRecord(在 ruby 世界中)这样的工具提供了一个中间层(DSL),但本质上是 SQL 的包装器。
这样做是有充分理由的 - 迁移是在 SQL 服务器上进行的操作,并且在 SQL 服务器中操作表的唯一严格定义的接口是特定 RDBMS 服务器正在使用的 PL/SQL 语言语言风格。
这意味着,如果 SQL 脚本是可接受的迁移选项(在团队知道它的意义上是可接受的,没有人反对,等等),您应该使用它们。
为了使任务更容易(红宝石的方式),你可以看看:http : //migrate4j.sourceforge.net/
他们将该工具描述为The initial intent of migrate4j was to make a Java version of Ruby's db:migrate.
但这不是基本要求。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句