Converting MySql to PostGres, Unknown Code Error encountered
lhayesg opened this issue · 2 comments
Windows 10
Nmig v5.6.0
I was converting a MySql(MariaDB) DB to Postgres (v10) using nmig.
The following error was encountered:
SQL: COPY "public"."vmmirrorportgroup" FROM STDIN DELIMITER ',' CSV;
C:\Users\larryh\Downloads\nmig\nmig\node_modules\mysql\lib\protocol\Parser.js:437
throw err; // Rethrow non-MySQL errors
^
Error: UNKNOWN_CODE_PLEASE_REPORT: Illegal parameter data type char for operation 'st_aswkb'
at Query.Sequence._packetToError (C:\Users\larryh\Downloads\nmig\nmig\node_modules\mysql\lib\protocol\sequences\Sequence.js:47:14)
at Query.ErrorPacket (C:\Users\larryh\Downloads\nmig\nmig\node_modules\mysql\lib\protocol\sequences\Query.js:79:18)
at Protocol._parsePacket (C:\Users\larryh\Downloads\nmig\nmig\node_modules\mysql\lib\protocol\Protocol.js:291:23)
at Parser._parsePacket (C:\Users\larryh\Downloads\nmig\nmig\node_modules\mysql\lib\protocol\Parser.js:433:10)
at Parser.write (C:\Users\larryh\Downloads\nmig\nmig\node_modules\mysql\lib\protocol\Parser.js:43:10)
at Protocol.write (C:\Users\larryh\Downloads\nmig\nmig\node_modules\mysql\lib\protocol\Protocol.js:38:16)
at Socket. (C:\Users\larryh\Downloads\nmig\nmig\node_modules\mysql\lib\Connection.js:88:28)
at Socket. (C:\Users\larryh\Downloads\nmig\nmig\node_modules\mysql\lib\Connection.js:526:10)
at Socket.emit (node:events:390:28)
at addChunk (node:internal/streams/readable:315:12)
--------------------
at Protocol._enqueue (C:\Users\larryh\Downloads\nmig\nmig\node_modules\mysql\lib\protocol\Protocol.js:144:48)
at PoolConnection.query (C:\Users\larryh\Downloads\nmig\nmig\node_modules\mysql\lib\Connection.js:198:25)
at populateTableWorker (C:\Users\larryh\Downloads\nmig\nmig\dist\src\DataLoader.js:69:10)
at processTicksAndRejections (node:internal/process/task_queues:96:5)
at async process. (C:\Users\larryh\Downloads\nmig\nmig\dist\src\DataLoader.js:20:9)
Emitted 'error' event on Readable instance at:
at Query. (C:\Users\larryh\Downloads\nmig\nmig\node_modules\mysql\lib\protocol\sequences\Query.js:216:12)
at Query.emit (node:events:402:35)
at Query.Sequence.end (C:\Users\larryh\Downloads\nmig\nmig\node_modules\mysql\lib\protocol\sequences\Sequence.js:78:12)
at Query.ErrorPacket (C:\Users\larryh\Downloads\nmig\nmig\node_modules\mysql\lib\protocol\sequences\Query.js:92:8)
at Protocol._parsePacket (C:\Users\larryh\Downloads\nmig\nmig\node_modules\mysql\lib\protocol\Protocol.js:291:23)
[... lines matching original stack trace ...]
at Socket. (C:\Users\larryh\Downloads\nmig\nmig\node_modules\mysql\lib\Connection.js:526:10) {
code: 'UNKNOWN_CODE_PLEASE_REPORT',
errno: 4079,
sqlMessage: "Illegal parameter data type char for operation 'st_aswkb'",
sqlState: 'HY000',
index: 0,
sql: 'SELECT MirrorPortGroupID
AS MirrorPortGroupID
,PortGroupID
AS PortGroupID
,MirrorID
AS MirrorID
,HEX(AsWKB(Role
)) AS Role
FROM vmmirrorportgroup
;'
}
Original SQL for the create in MySql: (All names are surrounded by ticks, not showing up in past)
CREATE TABLE IF NOT EXISTS vmmirrorportgroup
(
MirrorPortGroupID
INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
PortGroupID
INT(10) UNSIGNED NOT NULL DEFAULT '0',
MirrorID
INT(10) UNSIGNED NOT NULL DEFAULT '0',
Role
ENUM('Source','Destination','Endpoint') NOT NULL DEFAULT 'Source',
PRIMARY KEY (MirrorPortGroupID
),
UNIQUE INDEX U_MirrorPortGroup
(MirrorID
, PortGroupID
),
INDEX FK_mirrorportgroup_portgroup
(PortGroupID
),
CONSTRAINT FK_mirrorportgroup_portgroup
FOREIGN KEY (PortGroupID
) REFERENCES vmportgroup
(PortGroupID
) ON UPDATE CASCADE ON DELETE CASCADE,
CONSTRAINT FK_mirrorportgroup_mirrror
FOREIGN KEY (MirrorID
) REFERENCES vmmirror
(MirrorID
) ON UPDATE CASCADE ON DELETE CASCADE
) ENGINE=InnoDB ;
Hello,
I'll check it asap.
Fixed in v5.7.0
Sorry, I'm not very available, due to some "life-constraints".