实例分享,从DotNetNuke搬迁到SuiteCRM

小编1 提交于 周五, 05/17/2019 - 15:09
Forums

从老旧定制DotNetNuke应用搬迁到现代的SuiteCRM,老系统是一个网站+自定义的客户数据管理,这个系统是10年前(2008年)在DotNetNuke软件包的基础上进行了二次开发,当时开发费用为30万元,从现在的数据看,DotNetNuke是一款市场占有率很低的开源CMS,因为没有研究过,所以不想妄加评论;

问题:

  1. 网站只适合PC端,所有已经没有人看了;
  2. 客户数据管理系统,是目前主要使用的系统,通过10多年来的积累,成为企业最重要的资源,但这是根据自己工作人员的要求设计的,水平大大受到限制,除了客户数据本身和一些常规分类外,没有像样的统计,无法记录跟客户互动等其他重要的信息。

因此希望将企业最重要的资源搬迁到现代的SuiteCRM,用更好的方法来管理、跟踪客户的数据,可以大大提高数据的利用率,更好服务客户。
在此分享这个从一个老系统迁移到SuiteCRM的过程,展示解决路径,也许可以让人受到启发,降低入SuiteCRM的门槛,客户的老数据都可以搬迁到SuiteCRM。

初始状态和难点

  1. DotNetNuke 是基于SQL Server数据库,SuiteCRM是基于 MySQL数据库。这里有数据类型的差异,比较棘手的日期和时间在sql文本中的显示方式;
  2. 客户数据3万条左右,不少,也不能算多,但无法手工操作,必须的用编码完成;
  3. 在邮箱中有10万多条退信,是这10年中攒下来的,从来没有处理过,但必须把这些无效邮件地址在搬迁前分离出来;
  4. 客户数据3万条中还有无效数据,也要尽可能分离出来;
  5. 老的客户数据应该放到SuiteCRM哪个位置?这个考虑了三周,最后放到“潜在客户”项里,不开发新的类型,也不放到“客户”项里;

工作路径

在搬迁开始前必须先计划好老客户数据如何对应新结构的每一项

  1. 从10万多条退信中找出无效邮件地址,这是要写Code才能完成的工作,跟我们的SuiteCRM没有直接的关系,
  2. 用SQL命令将找出的无效邮件地址从数据库中删除;
  3. 在老数据库里分离出无效的客户;
  4. 生成SuiteCRM必须的ID和相应的Fields;
  5. 在搬迁前,做好SuiteCRM的备份;
  6. 先做小批量的搬迁测试
  7. 正式搬迁

用到的工具

选择合适的工具极其重要,效率的差异可以上千倍,找出合适的工具也是有代价的,不是贵的就一定有效。

  1. 从10万多条退信中找出无效邮件地址,在例子是使用了Python的code,在e mail的文本文件中查出无效邮件地址,Python的源码可以在网上查到,这里给出一例子,是一种直接进邮箱的很不错的方法。
  2. 各种主流 SQL Server 迁移到 MySQL 工具对比,直接用工具,在表多,数据少的情况下是最有效的; 如果表不多,数据量很大,就没有多少优势了。
  3. 免安装、轻量级HeidiSQL 工具,中文介绍官网,例子中主要是用这款工具,通常情况还不错;
  4. Phpmyadmin, 这是一款需要在服务器上安装的软件,有时候会有惊艳的表现;
  5. MS Access 跟SQL Server的衔接非常好,所以有时还很有用;
  6. Notepad++,这是一款主力编辑器,但也有无能为力的时候,当一个文件有800MB时就无法打开了,此时就得用vim了;
  7. SuiteCRM有现成的导入导出界面,原则上可以用来导入旧系统的数据,但有两个问题,
    a. 非常慢,占有很大的硬件资源。
    b. 在导入带换行符和日期的数据容易出错

前后花了3周时间

从规划到实施

体会

  1. 搬迁不是太难,但又不少原先没有想到的事情发生,需要有足够的时间和一定的能力;
  2. 一定要事先做好备份,出点差错很正常,但要有挽回的余地;
  3. SQL 命令是搬迁的利器,其他的方法都有太多的不可控性;
  4. Python作为辅助工具也很重要,请准备好这方面的帮手,虽然可能只需要30-40行代码,但可以解除你无数的烦恼,当然在此可以用很多其他语言来替代;
  5. SuiteCRM有现成的导入导出界面虽然慢,如果数据方面没有出错的问题,可能是一种自主完成的低成本方案,因为这个几乎不需要预备知识。