是否有一个mysqldump或类似工具的咒语,它会产生一段SQL2003代码,以在任意SQL2003兼容的RDBMS中创建和填充相同的数据库?从MySQL迁移到符合任意标准的SQL2003服务器
(在一个我想现在是MonetDB)
是否有一个mysqldump或类似工具的咒语,它会产生一段SQL2003代码,以在任意SQL2003兼容的RDBMS中创建和填充相同的数据库?从MySQL迁移到符合任意标准的SQL2003服务器
(在一个我想现在是MonetDB)
DDL语句本质上是数据库供应商特定的。尽管它们具有相同的基本结构,但每个供应商对于如何定义类型,索引,约束等都有其自己的看法。另一方面,DML语句相当便于携带。因此,我建议:
这应该做你想做的。
但是,将应用程序移植到不同的数据库供应商时,还需要其他许多事情;移动模式和数据很容易。检查引入的错误,不同的行为和性能测试是困难的。
至少测试应用程序中每个查询在新数据库上的有效性。理想地做更多。
从SQL Server 2000或2005,你可以把它生成的对象的脚本,但我不知道他们会如何转移到其他RDBMS。
生成脚本选项可能是最简单的方法。毫无疑问,你必须对一些数据类型进行一些搜索/替换。
这是一种强硬。除非你有一个非常简单的数据库结构和vanilla类型(varchar,integer等),否则你可能会获得编写迁移工具的最佳结果。在像Perl这样的语言中(通过DBI),这非常简单。该程序基本上是一个从一个数据库读取并插入另一个数据库的回声循环。 Google知道这类代码的例子。
除了显而易见的移动数据的问题,还有一些数据类型代表的更微妙的问题。例如,MS SQL的日期时间字段与MySQL的格式不同。其他数据类型(如BLOB)在一个RDBM中可能具有与另一个不同的容量。在移植之前,您应该确保您非常了解目标数据库系统的数据类型定义。
最后的问题当然是让应用程序级别的SQL语句针对新系统工作。在我的工作中,这是迄今为止最困难的部分。日期数学似乎尤其是数据库特定的,而像引用规则这样的烦人事情是一个持续不断的刺激源。
祝您的项目顺利。