pgloader可以排除MySQL表中的特定列吗?

时间:2017-08-10 16:18:24

标签: mysql postgresql pgloader

我正在使用带有pgloader的加载文件,并且我的MySQL数据库中存在一个特别有问题的表格,其日期时间不正确。我想在迁移过程中跳过该列。如何在加载文件中执行此操作?类似的东西:

LOAD DATABASE 
    FROM mysql://root@localhost/mydb 
    INTO postgresql:///mypgdb
    INCLUDING ONLY TABLE NAMES MATCHING 
    'Table_with_Datetimes_Column' AS dt,
    'My_Other_Table'
    EXCLUDING dt.Malformed_Column
;

1 个答案:

答案 0 :(得分:2)

您可以完全排除有问题的表,然后使用load命令的MATERIALIZING VIEW子句从视图迁移数据。因此,首先在表格顶部定义一个视图,其中省略有问题的列,然后

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

请参阅pgloader存储库中test目录中的示例,特别是sakila.load:https://github.com/dimitri/pgloader/blob/master/test/sakila.load