gpt4 book ai didi

java - 用户友好的应用程序实例之间的数据迁移

转载 作者:行者123 更新时间:2023-11-30 05:47:57 24 4
gpt4 key购买 nike

我们有一个基于网络的系统,本质上是一个调查应用程序。到目前为止,我们一直将新调查直接加载到数据库中(作为飞行路线迁移)。这显然无法长期维持,我们需要将创建新调查的权力交给管理员用户。其中一个方面是添加 UI,以便管理员用户可以创建新的调查。

但是,我们希望管理员用户首先在测试环境中创建和测试任何新调查,然后再将其投入生产。由于这些调查很复杂,因此存在一个真正的风险,即在测试环境中设置的调查与在生产环境中设置的方式略有不同。我的目标是消除这种风险。

我的问题涉及我们可以实现的技术机制,以便管理员用户可以在自助服务的基础上从他们的测试环境(他们已经完成了所有测试和验证)“迁移”调查) 到生产环境 - 这样我们就有很高的信心迁移的调查将以相同的方式设置。像 Moodle 这样的应用程序已经内置了此类功能。

我考虑过:

  • 允许用户创建调查的校验和(可能基于所有元素的哈希码),以便他们知道两个环境中的调查是相同的。那么问题是,尝试找出两个实例的调查之间的确切差异会很烦人。
  • 编写一个 UI,将原始 SQL 转储为导出,并允许这些用户将其直接写入生产数据库,但从很多角度来看,这都非常糟糕
  • 构建我们自己的领域特定语言来描述这些调查 - 但编写输入/输出解析器似乎非常复杂
  • 将数据转储到 JSON(鉴于它是一个 RESTful Web 应用程序,大部分工作已经完成)并将其吸回

在这个阶段,我倾向于 JSON 方法,但很想听到任何其他想法或库,我们可以轻松地将其集成到 Spring Boot 应用程序中,以帮助完成此过程。

最佳答案

说实话,通过引入独立实例来解决此类问题听起来是一个糟糕的主意:不仅迁移部分很棘手。您必须始终确保兼容性。想象一下管理员使用过时的版本或没有正确配置他的实例(每个管理员的梦想)。即使迁移本身没有产生错误,最终结果也可能会有所不同(这正是您真正想要避免的)。

据我了解,您目前将调查视为大量原始信息,这些信息以某种方式出现在您的数据库中,然后由应用程序显示。从这个角度来看,您显然无法区分测试调查和生产调查之间的区别。

这就是为什么你真的应该扩展你的模型!

不仅仅是一项调查。有一个调查草稿和/或调查预览区域、用户经历的调查创建过程、一个生产的过程草稿调查等。

如果您将这些概念添加到您的应用程序中,您所描述的用例应该很容易实现(您已经提到了计划的 UI,对吧?)。

希望能帮到你。抱歉,我知道这并不能完全回答您的问题。

关于java - 用户友好的应用程序实例之间的数据迁移,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54526008/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com