使用unicode缺陷从MySQL迁移到Postgres

时间:2013-08-12 04:29:17

标签: mysql postgresql unicode utf-8 migration

我的任务是将数据库从MySQL迁移到Postgres。但是,此数据库在标记为latin1的位置具有unicode字符。所以,我担心像

那样运行
mysqldump --compatible=postgresql --default-character-set=utf8 -r databasename.mysql -u root databasename

因为我不确定我们是否会因双重编码unicode字符而感到陌生。也就是说,将unicode字符编码为unicode

有谁知道我是否可以这样做并按原样维护unicode?是否有一个幂等的unicode编码算法,我应该通过它来管理它?

2 个答案:

答案 0 :(得分:1)

使用可以使用我的工具 - 它支持unicode符号 https://github.com/mihailShumilov/mysql2postgresql

答案 1 :(得分:0)

正如克雷格上面所说,你有一些乐趣。不仅没有好的工具来解决这个问题,而且问题可能超出任何一刀切的工具。问题在于,当你穿越编码时,如何解决这个问题超出了数据本身可用的信息,并且首先要了解你如何到达那里。

现在我假设您的客户端应用程序目前处理错误的数据。如果没有,你手上还有很多工作要做。如果他们确实处理了它,那么最好的方法是检索数据,在按照客户端应用程序的方式处理数据后将其转换为UTF8 然后进行更新。这可能需要一段时间,您应该浏览所有可能受影响的数据。这实际上是可自动化的极限。

如果这还不够,您将不得不手动纠正(ick)或使用不良数据,但在这种情况下,客户端应用程序可能已经存在坏数据。