pgloader/test/mysql/my.load
Dimitri Fontaine 957caa877e Add a new transform function for byte-vector to hexadecimal string.
In some cases when migrating from MySQL we want to transform data from
binary representation to an hexadecimal number. One such case is going from
MySQL binary(16) to PostgreSQL UUID data type.

Fixes #904.
2019-03-18 14:21:33 +01:00

43 lines
1.3 KiB
Fish

load database
-- from mysql://root@localhost/pgloader
from mysql://root@unix:/tmp/mysql.sock:3306/pgloader
into postgresql:///pgloader
WITH concurrency = 2,
multiple readers per thread,
rows per range = 50000,
quote identifiers
ALTER SCHEMA 'pgloader' RENAME TO 'mysql'
ALTER TABLE NAMES MATCHING ~/./ SET TABLESPACE 'pg_default'
INCLUDING ONLY TABLE NAMES MATCHING 'encryption_key_canary'
CAST column utilisateurs__Yvelines2013-06-28.sexe
to text drop not null using empty-string-to-null,
column base64.id to uuid drop typemod,
column base64.data to jsonb using base64-decode,
type decimal
when (and (= 18 precision) (= 6 scale))
to "double precision" drop typemod,
type smallint when unsigned to int drop typemod,
type timestamp
when default "CURRENT_TIMESTAMP"
with extra on update current timestamp
to "timestamp with time zone"
drop default drop not null drop extra
using zero-dates-to-null,
type timestamp with extra on update current timestamp
to "timestamp with time zone" drop extra,
column encryption_key_canary.uuid
to uuid drop typemod using byte-vector-to-hexstring
BEFORE LOAD DO
$$ create schema if not exists mysql; $$;