Tương đương với binary
nhập trong MySQL là bytea
trong PostgreSQL.
Bạn có thể sử dụng pgloader (cách đơn giản nhất)
Sau khi cài đặt pgloader, hãy tạo tập lệnh đơn giản 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;
Chạy nó trong thiết bị đầu cuối của bạn:
pgloader test.load
Một cách khác là sử dụng mysqldump
1. Bán phá giá với tùy chọn 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. Thực hiện sed để nó có thể được chèn vào bạn bytea
loại cột
sed "s/0x\([0-9A-F]*\)/decode('\1','hex')/g" prepg.dump > pg.dump
3. Tải vào bảng PostgreSQL của bạn
\i '/path_to_file/pg.dump'