Mysql
 sql >> Base de données >  >> RDS >> Mysql

Convertir le binaire mysql en bytea postgresql

L'équivalent de binary le type dans MySQL est bytea dans PostgreSQL.

Vous pouvez utiliser pgloader (moyen le plus simple)

Après avoir installé pgloader, créez un script simple 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;

Exécutez-le dans votre terminal :

pgloader test.load

Une autre méthode consiste à utiliser mysqldump

1. Videz-le avec l'option 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. Faites sed pour qu'il puisse vous être inséré bytea colonne de type

sed "s/0x\([0-9A-F]*\)/decode('\1','hex')/g" prepg.dump > pg.dump

3. Charger dans votre table PostgreSQL

\i '/path_to_file/pg.dump'

Référence