我希望将遗留Web应用程序的数据库从SQL Server迁移到MySQL。 MySQL必须注意哪些限制?在开始实际修改代码之前,所有项目都将成为综合核对表的一部分?
答案 0 :(得分:1)
我要检查的第一件事是数据类型 - 数据类型的确切定义因数据库而异。我将创建一个映射列表,告诉我要映射每个数据类型的内容。这将有助于构建新表。我还会检查现在没有使用的数据表或列。没有必要迁移它们。对功能,工作,sps等做同样的事情。现在是清除垃圾的时候了。
您是如何通过数据库中的sps或动态查询访问数据的?通过运行它来检查每个查询,确定新的开发数据库,并确保它们仍然有效。同样,两种SQl的工作方式之间存在差异。我没有使用过我的SQL,所以我不确定一些常见的失败点是什么。当您处于此状态时,您可能需要为新查询计时并查看它们是否可以进行优化。优化也因数据库而异,当您使用它时,现在可能会有一些性能不佳的查询,您可以在迁移过程中进行修复。
还需要查看用户定义的函数。如果你这样做,不要忘记这些。
不要忘记预定的工作,这些工作也需要在myslq中进行检查和重新创建。
您是否定期导入任何数据?所有进口都必须重写。
一切的关键是使用测试数据库并进行测试,测试和测试。测试所有内容,特别是季度或年度报告或您可能忘记的工作。
您要做的另一件事是通过受版本控制的脚本完成所有操作。在您没有失败的情况下按顺序运行所有脚本之前,请不要转移到生产环境。
答案 1 :(得分:0)
我忘记了一件事,确保在每次测试运行之前立即从生产中更新正在运行迁移的开发数据库(sql server数据库)。讨厌因为你正在测试过时的记录而导致产品失败。
答案 2 :(得分:0)
您的客户端代码几乎肯定是要修改的最复杂的部分。除非您的应用程序具有非常高质量的测试套件,否则您最终将不得不进行大量测试。你不能依赖任何同样的东西,甚至是你可能期望的东西。
是的,数据库本身的内容需要更改,但客户端代码是主要操作的位置,需要大量的工作和严格的测试。
忘记迁移数据,这是你应该想到的最后一件事;可以毫不费力地转换数据库模式;其他数据库对象(SP,视图等)可能会导致问题,但客户端代码是问题的焦点所在。
几乎每个执行数据库查询的例程都需要更改,但绝对需要对它们进行全部测试。这将是非常重要的。
我目前正在考虑将应用程序的主数据库从MySQL 4.1迁移到5,这差别要小得多,但它仍然是一项非常非常大的任务。