异构数据库的转移Mysql to Postgresql

花了3天晚上,尝试N种工具,最后发现一个靠谱的:pgLoader,只支持Linux下运行,在Debian下测试成功,直接使用apt-get安装。

只不过Apt安装的版本不是最新版,似乎还有些小BUG,使用源码Make又没成功。最后使用pgLoader的Command File方式运行,安装手册编辑了一个Command File,运行成功:

Pgload command file:

load database
 from mysql://user:pass@10.5.1.1/dbname
 into postgresql://user:pass@10.5.1.2/dbname

WITH include drop, create tables, no truncate,
 create indexes, reset sequences, foreign keys

SET maintenance_work_mem to '128MB', work_mem to '12MB', search_path to 'public'

CAST type date to date drop not null drop default using zero-dates-to-null,
 type datetime to timestamptz drop not null drop default using zero-dates-to-null,
 type timestamp to timestamptz drop not null drop default using zero-dates-to-null

-- including only table names matching ~/film/, 'actor'
EXCLUDING TABLE NAMES MATCHING 'Exlude_table_name'

BEFORE LOAD DO
 $$ create schema if not exists public; $$;

上面内容保存为一个文件(etc: pgloader.m2p), 然后命令行运行

$ pgloader  pgloader.m2p

Done.

Command File不具体解释了,自己看手册吧。

(0)

发表评论

电子邮件地址不会被公开。