14 July 2018
This maintenance release adds the support for skip events. Is now is possible to skip events (insert,delete,update) for single tables or for entire schemas.
A new optional source parameter
skip_events: is available for the sources with type mysql.
Under skip events there are three keys one per each DML operation. Is possible to list an entire schema or single tables in the form of
The example snippet disables the inserts on the table
delphis_mediterranea.foo and the deletes on the entire schema
skip_events: insert: - delphis_mediterranea.foo #skips inserts on the table delphis_mediterranea.foo delete: - delphis_mediterranea #skips deletes on schema delphis_mediterranea update:
The release 2.0.8 adds the EXPERIMENTAL support for the GTID for MySQL or Percona server. The GTID in MariaDb is currently not supported.
A new optional parameter
gtid_enable: which defaults to
No is available for the source type mysql.
When MySQL is configured with the GTID and the parameter
gtid_enable: is set to Yes, pg_chameleon will use the GTID to auto position the replica stream.
This allows pg_chameleon to reconfigure the source within the MySQL replicas without the need to run init_replica.
This feature has been extensively tested but as it’s new has to be considered EXPERIMENTAL.
ALTER TABLE RENAME is now correctly parsed and executed. ALTER TABLE MODIFY is now parsed correctly when the field have a default value. Previously modify with default values would parse wrongly and fail when translating to PostgreSQL dialect
The source no longer gets an error state when running with
The logged events are now cleaned when refreshing schema and syncing tables. Previously spurious logged events could lead to primary key violations when syncing single tables or refreshing single schemas.
As this change requires a replica catalogue upgrade is very important to follow the upgrade instructions provided below.
- If working via ssh is suggested to use screen or tmux for the upgrade
- Stop all the replica processes with
chameleon stop_all_replicas --config <your_config>
- Take a backup of the schema
sch_chameleonwith pg_dump for good measure.
- Install the upgrade with
pip install pg_chameleon --upgrade
- Check if the version is upgraded with
- Upgrade the replica schema with the command
chameleon upgrade_replica_schema --config <your_config>
- Start all the replicas.
If the upgrade procedure refuses to upgrade the catalogue because of running or errored replicas is possible to reset the statuses using the command
chameleon enable_replica --source <source_name>.
If the catalogue upgrade is still not possible downgrading pgchameleon to the previous version. E.g.
pip install pg_chameleon==2.0.7.
Changelog from v2.0.7
- Add support for skip events as requested in issue #76. Is now possible to skip events (insert,delete,update) for single tables or for entire schemas.
- EXPERIMENTAL support for the GTID. When configured on MySQL or Percona server pg_chameleon will use the GTID to auto position the replica stream. Mariadb is not supported by this change.
- ALTER TABLE RENAME is now correctly parsed and executed
- Add horrible hack to ALTER TABLE MODIFY. Previously modify with default values would parse wrongly and fail when translating to PostgreSQL dialect
- Disable erroring the source when running with
- Add cleanup for logged events when refreshing schema and syncing tables. previously spurious logged events could lead to primary key violations when syncing single tables or refreshing single schemas.