1 January 2018
The version 2.0 of pg_chameleon the MySQL to PostgreSQL replica system is now available.
Several improvements come with this new milestone which is compatible with python 3.3+.
- Replicates multiple MySQL schemas within the same MySQL cluster into a target PostgreSQL database. The source and target schema names can be different.
- Conservative approach to the replica. Tables which generate errors are automatically excluded from the replica.
- Daemonised init_replica,refresh_schema,sync_tables processes.
- Daemonised replica process with two separated subprocess, one for the read and one for the replay.
- Soft locking replica initialisation. The tables are locked when needed and stored with their log coordinates. The replica daemon puts the database in a consistent status gradually.
- Rollbar integration for a simpler error detection and alerting.
- Basic support for the PostgreSQL to PostgreSQL replica (EXPERIMENTAL)
- Detach replica from MySQL for easy migration to PostgreSQL
Usage examples
- Analytics
- Migrations
- Data aggregation from multiple MySQL databases
This stable release consists of the same code of the RC1 with few usability improvements.
A new option is now available to set to set the maximum level for the messages to be sent to rollbar.
This is quite useful if we configure a periodical init_replica (e.g. pgsql source type refreshed every hour) and we don’t want to fill rollbar with noise.
For example chameleon init_replica --source pgsql --rollbar-level critical
will send to rollbar only messages marked as critical.
There is now a command line alias chameleon
which is a wrapper for chameleon.py
.
A new command enable_replica
is now available to enable the source’s replica if the source is not stopped clean.
Changelog from v2.0rc1
- Add option
--rollbar-level
to set the maximum level for the messages to be sent to rollbar. Accepted values: “critical”, “error”, “warning”, “info”. The Default is “info”. - Add command
enable_replica
used to reset the replica status in case of error or unespected crash - Add script alias
chameleon
along withchameleon.py