2017-08-10 96 views
0

我正在使用pgloader的加載文件,在我的MySQL數據庫中存在格式錯誤的日期時間格式有問題的表。我想在遷移過程中跳過該列。我怎樣才能在加載文件中做到這一點?類似:pgloader可以排除MySQL表中的特定列嗎?

LOAD DATABASE 
    FROM mysql://[email protected]/mydb 
    INTO postgresql:///mypgdb 
    INCLUDING ONLY TABLE NAMES MATCHING 
    'Table_with_Datetimes_Column' AS dt, 
    'My_Other_Table' 
    EXCLUDING dt.Malformed_Column 
; 

回答

0

可以完全排除有問題的表,然後數據從一個視圖遷移過來,使用負載命令的物化VIEW子句。所以首先定義上頂你的表的視圖,其中省略了問題列,然後

exclude table name matching 'Table_with_Datetimes_Column' 
materialize views 'v_Table_without_Datetimes_Column' 

見test目錄下的例子在倉庫裏面pgloader,特別是sakila.load一個:https://github.com/dimitri/pgloader/blob/master/test/sakila.load

+0

這與我目前正在做的非常相似。而不是創建物化視圖,我只是刪除列並正常加載表。您的方法更好,因爲它保留了原始數據庫,並且它可以全部放入加載文件中。我今天會嘗試。 – medley56

相關問題