0

I'm trying to migrate MySql db to Postgres by Pgloader using docker-container.

I've create separate config file from_mysql_to_postgre.load:

LOAD DATABASE
  FROM      mysql://xxx
  INTO postgresql://yyy

WITH data only,
  workers = 8, concurrency = 1,
  multiple readers per thread, rows per range = 50000

SET MySQL PARAMETERS
  net_read_timeout  = '120',
  net_write_timeout = '120'

CAST type bigint when (= precision 20) to bigserial drop typemod,
  type date drop not null drop default using zero-dates-to-null,
  type tinyint to boolean using tinyint-to-boolean,
  type year to integer;

BEFORE LOAD DO
  $$ SET session_replication_role = 'replica'; $$;

AFTER LOAD DO
  $$ SET session_replication_role = 'origin'; $$;

And starting migration by command:

docker run --rm -v C:\zzz\DbMigration:/data -it dimitri/pgloader:latest pgloader /data/from_mysql_to_postgre.load

And I get an error:

2023-07-07T12:02:13.013000Z LOG pgloader version "3.6.7~devel"
2023-07-07T12:02:13.016000Z LOG Parsing commands from file #P"/data/from_mysql_to_postgre.load"
KABOOM!
ESRAP-PARSE-ERROR: At end of input

  AFTER LOAD DO
    $$ SET session_replication_role = 'origin'; $$;
                                                   ^ (Line 23, Column 49, Position 819)

In context COMMAND:

While parsing COMMAND. Expected:

     the character Tab
  or the character Newline
  or the character Return
  or the character Space
  or the character & (AMPERSAND)
  or the string "--"
  or the string "/*"
  or the character ; (SEMICOLON)
  or the string "after"
  or the string "alter"
  or the string "before"
  or the string "cast"
  or the string "decoding"
  or the string "distribute"
  or the string "excluding"
  or the string "including"
  or the string "materialize"
  or the string "set"
  or the string "with"
  or <end of input>
  or anything but the character & (AMPERSAND)
An unhandled error condition has been signalled: At end of input

What am I doing wrong?

Timothy
  • 584
  • 3
  • 14

0 Answers0