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.0-alpha.3
- Add batch retention to avoid bloating of t_replica_batch
- Packaged for pip, now you can install the replica tool in a virtual env just typing pip install pg_chameleon
Caveats
- ensure you are running the latest pip version. you can upgrade within your virtual env running pip install pip --upgrade
- psycopg2 requires the python and postgresql development files. this will be solved by the upcoming psycopg2 2.7
- when installed system wide the user directory .pg_chameleon is not created automatically. you can either create it by hand or use the global /usr/local/etc/pg_chameleon dir (not recommended for security reasons).