Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Konvertieren Sie die MySQL-Binärdatei in Postgresql-Bytea

Das Äquivalent von binary Typ in MySQL ist bytea in PostgreSQL.

Sie können pgloader verwenden (einfachster Weg)

Erstellen Sie nach der Installation von pgloader das einfache Skript 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;

Führen Sie es in Ihrem Terminal aus:

pgloader test.load

Eine andere Möglichkeit ist die Verwendung von mysqldump

1. Dump es mit der Hex-Blob-Option

mysqldump -u username -p -h host --skip-quote-names --hex-blob --skip-triggers \
--compact --no-create-info your_db your_table > prepg.dump

2. Tun Sie sed, damit es in Ihr bytea eingefügt werden kann Spalte eingeben

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

3. In Ihre PostgreSQL-Tabelle laden

\i '/path_to_file/pg.dump'

Referenz