AnatolyUss/nmig

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".