hbp*_*hbp 14 mysql postgresql linux
我正在拼命寻找一种转换工具来将大型 mysql 数据库转换为 postgresql。我需要的工具/脚本是:
我尝试了此处列出的不同工具,但没有一个对我有用。
先感谢您。
两种截然不同的数据库管理系统之间迁移需要大量的不仅仅是迁移数据。但是数据的迁移通常是最简单的部分。
我尝试过的方法是免费的,我可以确认它有效:
如果您依赖 MySQL 的行为来接受非法数据(例如 2 月 31 日),导入数据实际上可能会很困难
我的猜测是,这比搜索工具、评估一堆工具然后尝试理解您选择的工具要快。但这取决于您指的是哪种“大”。如果大是数百个表,这可能不可行。如果 big 仅指行数,那么这可能是最快的方法。
有一些工具可以以 DBMS 独立 (XML) 格式转储数据库模式,例如Liquibase、SchemaSpy或WbSchemaReport。Liquibase 可能是最容易使用的。其他人将需要一些手动工作编写/扩展 XSLT 来转换生成的 XML。
如果您在 MySQL 中使用触发器和存储过程,我不相信会有任何自动化工具可以转换它们而无需事后进行重大的手动修复 - 然后生成的过程可能不会使用目标 DBMS 的任何高级功能.
最近不得不这样做,因为寻找工具并能够用它做事需要很长时间,所以我用vim和substitution-foo手工完成了
INT NOT NULL AUTO_INCREMENT
(或类似的东西)SERIAL
TEXT
(无速度差在使用TEXT
,VARCHAR
或类似的)
`ENGINE InnoDB
(或其他)UNSIGNED
BYTEA
'
,没有别的CONCAT
作为非标准字符串连接的后备,在 9.1 之前它是使用完成的 'string' || ' string'
"
这些子弹中的每一个都应该用一个替换来完成。
我出口的模式和数据seperatly。确保使用INSERT
s 而不是COPY
. 如果没有花哨的东西,数据应该(几乎)不需要清理。确保一切正常UTF-8
。使用 2 个单独的文件,架构变得更易于管理,您无需编辑 1GB 文件。
加载模式时,您会获得非常详细的错误信息,因此调试应该非常简单。
归档时间: |
|
查看次数: |
11397 次 |
最近记录: |