测试原始网站与新网站
Posted
技术标签:
【中文标题】测试原始网站与新网站【英文标题】:Testing an original site vs new site 【发布时间】:2012-08-27 01:20:43 【问题描述】:我们有一个现有的网站,它是在一个特定的框架上编写的,我们正在开发这个网站的新版本,它是在一个不同的框架上编写的。
这意味着我们的表结构现在完全不同了。我们已经编写了将旧数据迁移到新数据的代码,因此成员和内容可以顺利迁移。但是,我们希望在旧网站上有 x 人,在新网站上有 y 人。
通过这种方式,我们可以测试人们是否喜欢这个新网站、他们如何使用它等,然后再将其设为“直播”。新站点将位于不同的子域中。但真正的问题是,我们如何才能让数据库协同工作,所以如果用户在新网站上,并在论坛上发帖,它会在旧网站上显示,反之亦然。
作为不同的框架和表格,这似乎是一项非常艰巨的工作。我们可能必须为两个系统上的每个模型编写一个接口,以处理更新另一个数据库上的数据。一位开发人员到处使用触发器,因此当此表上的数据发生更改时,触发器将在另一个上更新它。
两者似乎都很啰嗦。我说的是相当多的代码、成员、购买、订单、博客文章、cmets、论坛主题 + cmets,以及十几个其他表(+cms!)。
ps,解决方案需要数周而不是数月!
关于如何以某种方式实现这一点,有没有人有任何建议。
【问题讨论】:
我会创建一个时间表,使用来自新代码库上的用户的数据更新旧数据库以定期运行,您可以轻松地执行此操作 - 尽管转换可能很讨厌,或者去与触发器的建议。您是否考虑过不将它们并排测试,而是像 beta 一样进行测试? IE,在迁移完成之前数据不会匹配?这样,在新站点上启动的线程将不可用,但新站点上的用户可以使用所有功能。开心的时候,迁移旧数据完成一切。 像 beta 一样进行测试并不能提供足够的控制,所以他们确实希望它们并排。我的反对建议,每隔几天从旧站点同步数据到新站点,人们可以随心所欲地玩...... 您甚至可以每小时(或更频繁地)运行一次 cron,这可能不会太糟糕。我正在考虑的另一个建议是迁移网站的一部分 - 比如说一个论坛类别类型的东西?因此,对于所有用户,一个特定的论坛使用新代码,其余的则使用旧代码。 【参考方案1】:我认为对于您要完成的工作没有直接的解决方案。在某种程度上,您正在做的是数据复制,而不是数据库复制。如果是数据库复制,您可能刚刚完成了数据库服务器复制。
虽然您可以为系统中的每个模型编写一个界面,但您还需要处理一些情况,例如有人在新站点的论坛中发布,当您正在更新旧站点时,其他人已经在旧站点中获得了论坛更新。 .so如果您使用任何类型的关键字段依赖项,它们对于旧站点和新站点等都会有所不同。
如果你问我,这将是一个冗长的解决方案。由于我上面给出的示例,即使可以使用您的接口复制数据,依赖关系和关系在两个数据库中也可能具有不同的键 ID,当您最终决定将它们合并在一起时,您需要考虑到这一点嗯..
如果我要这样做,我会走很长的路,编写详细的更新界面,在那里我可以看到哪些数据、何时以及如何跨数据库进行更新。可能需要更多时间来写,但我认为这样会更安全,并且会节省很多痛苦和时间,否则会搞砸。
【讨论】:
以上是关于测试原始网站与新网站的主要内容,如果未能解决你的问题,请参考以下文章