This maintenance release improves the support for spatial datatypes. When postgis is installed on the target database then the spatial data types point,geometry,linestring,polygon, multipoint, multilinestring, geometrycollection are converted to geometry and the data is replicated using the Well-Known Binary (WKB) Format. As the MySQL implementation for WKB is not standard pg_chameleon removes the first 4 bytes from the decoded binary data before sending it to PostgreSQL. When keep_existing_schema is set to yes now drops and recreates indices, and primary keys during the init_replica process.
This maintenance release adds the EXPERIMENTAL support for Point datatype thanks to the contribution by @jovankricka-everon. The support is currently limited to only the POINT datatype with hardcoded stuff to keep the init_replica and the replica working. However as this feature is related with PostGIS, the next point release will rewrite this part of code using a more general approach. The release adds the keep_existing_schema parameter in the MySQL source type.
This maintenance release fixes the issue #96 where the replica initialisation failed on MySQL 8 because of the wrong field names pulled out from the information_schema. Thanks to daniel-qcode for contributing with his fix. The configuration and SQL files are now moved inside into the directory pg_chameleon. This change simplifies the setup.py file and allow pg_chameleon to be built as source and wheel package. As python 3.4 has now reached its end-of-life and has been retired the minimum requirement for pg_chameleon has been updated to Python 3.
This maintenance release fixes few things. As reported in issue #95 the yaml files were not completely valid. Thanks to rebtoor which fixed them. clifff made a pull request to have the start_replica running in foreground when log_file set to stdout. Previously the process remained in background with the log set to stdout. As Travis seems to break down constantly the CI configuration is disabled until a fix or a different CI is found .
This maintenance release fixes a regression caused by the new replay function with PostgreSQL 10. The unnested primary key was put in cartesian product with the json elements generating NULL identifiers which made the subsequent format function to fail. This release adds a workaround for decoding the keys in the mysql’s json fields. This allows the sytem to replicate the json data type as well. The command enable_replica fixes a race condition when the maintenance flag is not returned to false (e.
This maintenance release fixes a wrong check for the next auto maintenance run if the maintenance wasn’t run before. Previously when changing the value of auto_maintenance from disabled to an interval, the process didn’t run the automatic maintenance unless a manual maintenance was executed before. This release adds improvements on the replay function’s speed. The new version is now replaying the data without accessing the parent log partition and the decoding logic has been simplified.
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 schema.table. The example snippet disables the inserts on the table delphis_mediterranea.
The maintenance release makes the multiprocess logging safe. Now each replica process logs in a separate file. The --full option now is working. Previously the option had no effect causing the maintenance to run always a conventional vacuum. This release fixes the issues reported in ticket #73 and #75 by pg_chameleon’s users. The bug reported in ticket #73 caused a wrong data type tokenisation when an alter table adds a column with options (e.
The maintenance release 2.0.6 fixes a crash occurring when a new column is added on the source database with the default value NOW(). The maintenance introduced in the version 2.0.5 is now less aggressive. In particular the run_maintenance command now executes a conventional VACUUM on the source’s log tables, unless the switch --full is specified. In that case a VACUUM FULL is executed. The detach has been disabled and may be completely removed in the future releases because very fragile and prone to errors.
The maintenance release 2.0.5 a regression which prevented some tables to be synced with sync_tables when the parameter limit_tables was set. Previously having two or more schemas mapped with only one schema listed in limit_tables prevented the other schema’s tables to be synchronised with sync_tables. This release add two new commands to improve the general performance and the management. The command stop_all_replicas stops all the running sources within the target postgresql database.