Description:
The program does not get data well with special characters and inserts them wrong in mysql. Is this a known problem?
INSERT INTO `migration`.`nombres` (`nombre`) VALUES ('\�\�\���\�\�\����\��\�\�\�)
________________________________________________________________________________________________
Starting...
wbcopytables.exe --count-only --passwords-from-stdin --odbc-source="DRIVER=PostgreSQL UNICODE(x64);SERVER=XXX;PORT=5432;DATABASE=migration;UID=USER;UseDeclareFetch=1" --source-rdbms-type=Postgresql --source-timeout= --target-timeout=None --table-file=c:\users\USER\appdata\local\temp\tmpvkgnbp
15:07:37 [INF][ copytable]: --table "migration" "public"."nombres"
15:07:37 [INF][ copytable]: Opening ODBC connection to [Postgresql] 'DRIVER=PostgreSQL UNICODE(x64);SERVER=XXX;PORT=5432;DATABASE=migration;UID=USER;UseDeclareFetch=1;PWD=XXX'
15:07:37 [INF][ copytable]: ODBC connection to 'DRIVER=PostgreSQL UNICODE(x64);SERVER=XXX;PORT=5432;DATABASE=migration;UID=USER;UseDeclareFetch=1;PWD=' opened
2 total rows in 1 tables need to be copied:
- "migration"."public"."nombres": 2
Determine number of rows to copy finished
Copy data to target RDBMS....
Migrating data...
wbcopytables.exe --odbc-source="DRIVER=PostgreSQL UNICODE(x64);SERVER=XXX;PORT=5432;DATABASE=migration;UID=USER;UseDeclareFetch=1" --source-rdbms-type=Postgresql --target="USER@XXX:3306" --progress --passwords-from-stdin --thread-count=1 --source-timeout= --target-timeout=None --table-file=c:\users\USER\appdata\local\temp\tmpnegoxp
Loading table information from file c:\users\USER\appdata\local\temp\tmpnegoxp
`migration`.`nombres`:Copying 1 columns of 2 rows from table "migration"."public"."nombres"
ERROR: `migration`.`nombres`:Inserting Data:
ERROR: `migration`.`nombres`:Failed copying 2 rows
FINISHED
15:07:38 [INF][ copytable]: --table "migration" "public"."nombres" `migration` `nombres` - - "nombre"
15:07:38 [INF][ copytable]: Connecting to MySQL server at XXX:3306 with user USER
15:07:38 [INF][ copytable]: Connection to MySQL opened
15:07:38 [INF][ copytable]: Opening ODBC connection to [Postgresql] 'DRIVER=PostgreSQL UNICODE(x64);SERVER=XXX;PORT=5432;DATABASE=migration;UID=USER;UseDeclareFetch=1;PWD=XXX'
15:07:38 [INF][ copytable]: ODBC connection to 'DRIVER=PostgreSQL UNICODE(x64);SERVER=XXX;PORT=5432;DATABASE=migration;UID=USER;UseDeclareFetch=1;PWD=' opened
15:07:38 [INF][ copytable]: Connecting to MySQL server at XXX:3306 with user XXX
15:07:38 [INF][ copytable]: Statement execution failed: :
INSERT INTO `migration`.`nombres` (`nombre`) VALUES ('\�\�\���\�\�\����\��\�\�\�\�'),('nombre2')
Copy helper has finished
____________________________________________________________________________________
I have database charset and collation setting as utf8 for postgres and utf8mb4 for mysql:
MysqlServer Config:
# Variable_name, Value
'character_set_client', 'utf8'
'character_set_connection', 'utf8'
'character_set_database', 'utf8mb4'
'character_set_filesystem', 'binary'
'character_set_results', 'utf8'
'character_set_server', 'utf8mb4'
'character_set_system', 'utf8'
'collation_connection', 'utf8_general_ci'
'collation_database', 'utf8mb4_unicode_ci'
'collation_server', 'utf8mb4_unicode_ci'
How to repeat:
Just create a database in postgres with utf8:
CREATE TABLE "nombres" (
"nombre" VARCHAR(255) NOT NULL
)
;
COMMENT ON COLUMN "nombres"."nombre" IS E'';
With spanish data:
"àèìòùáéíóúñçöÜÏËÄ"
and try to import with the wizard.