我们的客户有一个完全自定义的CMS,它是在ASP 1.1中构建的,后来升级到2.0。该数据库有200多个表,遗憾的是,ASP代码或数据库都没有文档。原始开发人员无法接受提问,我公司的任何人都不熟悉该设置。
大多数数据库表都没有时间戳列,因此很难从单独的检查中确定哪些表正在使用哪些表,哪些表没有。增加任务的复杂性的是,对于CMS中的每个门户网站,已经开发了使用单个数据库表的自定义功能,有时还使用存储过程来处理单个客户端站点的数据。
从事这个项目的原始开发人员已经不见了,而且它已被意外地放在我的盘子上。我的任务是将现有CMS中的所有数据(包括每个模块和每个客户端站点的数据)移动到带有我们正在开发的自定义模块的DotNetNuke安装中。我已经拿到的估计是三个星期。
如果有人之前尝试过这样的任务:这可以在三周内完成吗?我之前从未尝试过如此大规模的数据迁移,任何有关策略的帮助都会有所帮助。
答案 0 :(得分:0)
从坏消息开始:可能不是。 (我不是在考虑3个日历周:不是〜140个工时分布在更长的时间内)。
原因是你没有任何有关“异常”的文档 - 来自程序的奇怪行为,破解修复错误,数据不一致,数据污染等等。鉴于没有文档,你不能指望一流的数据验证或模型。 (它可能存在:它只是不能保证)。
这只是技术原因:当你说“我们正在开发的自定义模块”时,警钟就会响起。你的项目过于频繁,需要在各方之间进行过多的交谈。
关于策略:我将确定80%的常见功能,这是每个系统的核心,只需要20%的努力才能进行转换。你有代码和数据库:把它放在测试服务器上,让一些用户运行常见的操作。将跟踪/日志记录放入代码中,看看有什么内容。在表上放置时间戳列或审计跟踪,并查看数据库中的更改。
祝你好运!答案 1 :(得分:0)
大多数延迟都是由于“自定义模块”应用程序开发部分,但迁移时间肯定超过3周。 源数据库具有相当规范的设计,具有外键约束甚至一些文档。最后,迁移中不到50个表。但是对旧系统进行逆向工程还需要一段时间。在这个过程中,数据库中使用的视图定义有很多帮助。
除了提取阶段,开发转化为目标也需要相当长的时间。目标所需的转换在项目期间有所改变。如果您的目标架构现在大部分都已修复,那肯定有帮助。在上线后还需要对数据迁移进行多次更正,此时目标中已有新数据,并且无法再完全重新加载。
我建议您使用任何技术进行迁移,然后进行开发,以便流程自动并轻松可重复。我在我的项目中使用了SSIS。在您投入生产之前,您可能需要多次初始化并重新加载测试系统的目标数据库。对于应用程序测试来说,在大多数情况下测试系统中都有一些真实数据也很有用,即使只迁移了几个表。