這一段時間在幫客戶寫一個小型的CRUD項目,原項目是MySQL數據庫,客戶有一個要求就是必須使用PostgreSQL數據庫,本來以為轉換非常方便,沒想到還是折騰了一下。預先提醒一下,我只完成了數據庫表結構、數據的轉換,其他的外鍵、視圖沒有涉及。
首先MySQL與PostgreSQL的語法還是有些差別,無法無縫轉換使用。於是在網上找到了一個收費工具,MySQL to PostgreSQL,demo版本,有如下限制:
1、數據記錄,不超過50條
2、不能轉換外鍵及視圖
第二條限制還好辦,我使用的MySQL數據庫本來就沒有建外鍵和視圖,第一條就不好辦了,因為部分表的數據還是超過了50條的。
於是又查詢一翻,可以使用Navicat Premium 15的數據傳輸功能,先將MySQL轉換成PostgreSQL,有些同學可能會說,那直接用這個工具不完了,但是經過測試,有些重大問題。PostgreSQL的主鍵自增ID字段,是跟MySQL不太一樣的,轉換的時候轉換不過來,另外一些字段轉換過來類型不對,比如說bit、bigint等類型轉到PostgreSQL就不對了,所以不能直接用他來生成建表語句,但是可以使用他生成Insert數據插入語句。
點擊“工具”-->“數據傳輸”。根據設置一步步來,如下圖所示:
等轉換成PostgreSQL后,就可以在數據庫上右鍵單擊,“轉儲SQL文件”-->“結構和數據”,這樣就生成了全庫sql語句文件,包含了Insert語句
最后使用MySQL to PostgreSQL工具,來生成數據庫表結構,配合你剛才導出的可用的Insert語句,進行組合,就完整的完成了一次從MySQL到PostgreSQL連表結構到數據的完整轉換,希望對各位能有幫助!