2017-08-10 39 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

相关问题