dimitri / pgloader

Migrate to PostgreSQL in a single command!
http://pgloader.io
Other
5.45k stars 548 forks source link

An error occured when sync mysql tables to the postgre on the data type 'set' into 'test_str_8[]' #1558

Closed siburuxue closed 9 months ago

siburuxue commented 9 months ago

mysql version: select version();: 8.3.0 postgresql version: postgres --version : postgres (PostgreSQL) 16.1 (Homebrew) pgloader version: ./build/bin/pgloader: pgloader version "3.6.2079646" compiled with SBCL 2.4.1

mysql table:

-- auto-generated definition
create table test
(
    id     int auto_increment
        primary key,
    int_1  int                 not null comment 'int',
    int_2  smallint            null comment 'smallint',
    int_3  tinyint             null comment 'tinyint',
    int_4  mediumint           null comment 'mediumint',
    int_5  bigint              null comment 'bigint',
    int_6  float               null comment 'float',
    int_7  double              null comment 'double',
    int_8  decimal             null comment 'decimal',
    date_1 date                null comment 'date',
    date_2 time                null comment 'time',
    date_3 datetime            null comment 'datetime',
    date_4 timestamp           null comment 'timestamp',
    date_5 year                null comment 'year',
    str_1  char                null comment 'char',
    str_2  varchar(255)        null comment 'varchar(255)',
    str_3  binary(1)           null comment 'binary',
    str_4  varbinary(1)        null comment 'varbinary(1)',
    str_5  blob                null comment 'blob',
    str_6  text                null comment 'text',
    str_8  set ('a', 'b', 'c') null comment 'set',
    json_1 json                null comment 'json',
    constraint I_int_2
        unique (int_2) comment '唯一索引'
)
    comment '测试表';

postgresql table:

create table test
(
    id     serial
        constraint idx_17091_primary
            primary key,
    int_1  integer not null,
    int_2  smallint,
    int_3  smallint,
    int_4  integer,
    int_5  bigint,
    int_6  double precision,
    int_7  double precision,
    int_8  numeric(10),
    date_1 date,
    date_2 time,
    date_3 timestamp with time zone,
    date_4 timestamp with time zone,
    date_5 integer,
    str_1  char,
    str_2  varchar(255),
    str_3  bytea,
    str_4  bytea,
    str_5  bytea,
    str_6  text,
    str_8  test_str_8[],
    json_1 json
);

comment on table test is '测试表';

comment on column test.int_1 is 'int';

comment on column test.int_2 is 'smallint';

comment on column test.int_3 is 'tinyint';

comment on column test.int_4 is 'mediumint';

comment on column test.int_5 is 'bigint';

comment on column test.int_6 is 'float';

comment on column test.int_7 is 'double';

comment on column test.int_8 is 'decimal';

comment on column test.date_1 is 'date';

comment on column test.date_2 is 'time';

comment on column test.date_3 is 'datetime';

comment on column test.date_4 is 'timestamp';

comment on column test.date_5 is 'year';

comment on column test.str_1 is 'char';

comment on column test.str_2 is 'varchar(255)';

comment on column test.str_3 is 'binary';

comment on column test.str_4 is 'varbinary(1)';

comment on column test.str_5 is 'blob';

comment on column test.str_6 is 'text';

comment on column test.str_8 is 'set';

comment on column test.json_1 is 'json';