2

我正在使用加载文件,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
;
4

1 回答 1

3

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

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

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

于 2017-08-15T10:10:00.130 回答