1. 程式人生 > >把資料庫從MYSQL遷移到POSTGRESQL

把資料庫從MYSQL遷移到POSTGRESQL

終於決定把資料庫從MYSQL轉到postgresql了。
如何遷移是個問題。手工遷移太麻煩。終於從POSTGRESQL的網站上找到了一個小的遷移工具名字叫mysql2pgsql.perl,這是一個perl編寫的小程式。用法是先把MYSQL裡的資料DUMP下來儲存為mysql.sql
perl mysql2pgsql.perl mysql.sql pg.sql
轉換後的檔案是pg.sql,
但是這個轉換程式轉換的不是很好,有一些BUG。於是先把建立表的sql先儲存下來,用mysql2pgsql轉換後自己修改。比如我轉換的時候型別為double的欄位都有問題,還好不多,於是自己修改。然後再把資料匯入到postgresql中,成功了。然後再dump資料SQL,這回轉換後沒有什麼問題,可以直接匯入到postgre中。資料庫端的遷移就完成了。

轉換前要評估工作量,因為在MYSQL中允許關鍵字作為欄位名,如type,password,double,order,right等等,但是到postgres中就會有問題,要修改。這可能影響你的程式修改量。
在postgres中的表名和欄位名不要用大小寫混合一定要用小寫,如userName
,建表之後系統會改成“userName”,多了引號,當操作帶有引號的表或欄位時可能會有問題,至少我用python時程式會提示你找不到這個欄位。

之所以要遷移是因為我要用freeBSD作業系統,mysql有點問題。另外,很多用過postgre的人都極力推薦。我自己也比較了一下,的確“快速”,“強大”,功能和ORACLE類似,我很習慣。相比之下,mysql就是“簡單”,“易用”,對於沒有接觸過大型資料庫的人也能用。