Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Converter binário mysql para bytea postgresql


O equivalente a binary tipo no MySQL é bytea no PostgreSQL.

Você pode usar o pgloader (maneira mais simples)

Depois de instalar o pgloader, crie um script simples test.load
load database  
from mysql://username:[email protected]/database_name
into postgresql://postgres:[email protected]/database_name

WITH include drop, create tables, create indexes, reset sequences

  SET maintenance_work_mem to '128MB',
      work_mem to '12MB'

 CAST type binary TO bytea drop typemod  using byte-vector-to-bytea;

Execute-o no seu terminal:
pgloader test.load

Outra maneira é usar mysqldump

1. Descarte-o com a opção hex-blob
mysqldump -u username -p -h host --skip-quote-names --hex-blob --skip-triggers \
--compact --no-create-info your_db your_table > prepg.dump

2. Faça sed para que possa ser inserido em você bytea coluna de tipo
sed "s/0x\([0-9A-F]*\)/decode('\1','hex')/g" prepg.dump > pg.dump

3. Carregue em sua tabela PostgreSQL
\i '/path_to_file/pg.dump'

Referência