Pg_chameleon is a replication tool from MySQL to PostgreSQL developed in Python 2.7 and Python 3.3+
The system relies on the mysql-replication library to pull the changes from MySQL and covert them into a jsonb object.
A plpgsql function decodes the jsonb and replays the changes into the PostgreSQL database.
The tool requires an initial replica setup which pulls the data from MySQL in read only mode.
This is done by the tool running FLUSH TABLE WITH READ LOCK; .
The tool can pull the data from a cascading replica when the MySQL slave is configured with log-slave-updates.
Changelog from 1.4
- fix wrong evaluation in table's consistent state (row and DDL)
- fix wrong dimensions when building floating point data types
- add support for DEFAULT value on ADD COLUMN,CHANGE,MODIFY
- add indices to the t_log _replica tables in order to speedup the batch cleanup
- Fix for Issue #5 add cast to char with character set in column generation in order to override collation mix. the charset is the mysql general character set
- Improve logging messages to be more descriptive
- Remove total_events and evaluate when writing the batch using the real number of events stored from the mysql replica
- fix ALTER TABLE...CHANGE parsing to lower the data type
- add warning when a table is without primary key
- Fix Issue #9 add configuration check for MySQL before starting the replica
- Fix Issue #10 clarify running replica log messages to describe better what's happening
- Add --nolock option as per request on Issue #13 . When started with --nolock the replica doesn't create the lock file in case of error.