sql >> Databáze >  >> RDS >> Mysql

Převeďte binární mysql na postgresql bytea

Ekvivalent binary typ v MySQL je bytea v PostgreSQL.

Můžete použít pgloader (nejjednodušší způsob)

Po instalaci pgloaderu vytvořte jednoduchý 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;

Spusťte jej ve svém terminálu:

pgloader test.load

Dalším způsobem je použití mysqldump

1. Vypište jej pomocí možnosti 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. Udělejte sed, aby vám mohl být vložen bytea typ sloupec

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

3. Načtěte do své PostgreSQL tabulky

\i '/path_to_file/pg.dump'

Reference



  1. Proč se mi zobrazuje chyba JPEG 42, když je uložen v databázi?

  2. Selhání na produkci/heroku:WHERE a.attrelid ='schools'::regclass

  3. Chyba:Zdroj dat odmítl navázání spojení, zpráva ze serveru:Příliš mnoho spojení

  4. Použití podmínky if ve vložení SQL Server