Release announcement 2.0.0

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 with chameleon.py
comments powered by Disqus