我正在重写一个网站,它有一个后端数据库,用于包含当用户输入文本代码时显示给用户的元数据。
旧的/现有的系统使用一个主索引XML文件将这些数据存储在XML文件中,该文件基于GUID指向正确的数据文件。目前处理发布到生产的方法是,所有更改都是在“暂存”环境中完成的,文件存储在Cloudfront的“暂存”文件夹下。当他们想要将更改推送到生产时,他们只需将文件从“暂存”复制到“生产”。
我已经更新了系统,以使用RDB (Postgres本地和它将是Aurora上的AWS生产)。我将Java用于带有JPA注释和Spring的API。我有一个独立的Java应用程序来管理元数据和一个独立的面向用户的应用程序,这是一个角度的网站。产品所有者仍然希望能够在较低的环境中测试更改,然后再将它们发布到生产中。
我试图为发布找到一个解决方案,并在想,我可能只有一个暂存env和一个生产env。这里的一位同事说,可能让暂存管理应用程序通常指向暂存API,但在发布时,让它指向生产API而不是生产管理应用程序。我遇到的问题是主键。您不能在JPA中指定主键,如果它不存在,就让它自动生成。我尝试了几种不同的方法来做到这一点,如果我尝试插入1,3,2,它就会中断。
有没有人对如何处理这种情况有任何建议?在不同的env中将数据从一个RDB传输到另一个RDB,同时保持所有关系的完整。
发布于 2016-01-05 03:24:49
你能用DevOps解决方案而不是代码来解决这个问题吗?如果将内容从存储的其他数据中分离出来,则可以使用云的功能来获取内容数据库的快照,然后使用AWS将其提供给生产实例。然后,您可以让它为其内容DB更新生产应用程序中的连接字符串。这也将使前滚和后滚变得容易,因为如果有什么原因出错,您可以返回到旧的content。
https://softwareengineering.stackexchange.com/questions/306506
复制相似问题