diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 602be9f1..cbe96042 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -1,5 +1,12 @@ changelog ************************* +2.0.14 - 26 July 2020 +.......................................................... +* Add support for spatial data types (requires postgis installed on the target database) +* When ``keep_existing_schema`` is set to ``yes`` now drops and recreates indices, and constraints during the ``init_replica`` process +* Fix for issue #115 thanks to @porshkevich +* setup.py now forces PyMySQL to version <0.10.0 because it breaks the python-mysql-replication library (issue #117) + 2.0.13 - 05 July 2020 .......................................................... * **EXPERIMENTAL** support for Point datatype - @jovankricka-everon diff --git a/RELEASE_NOTES.rst b/RELEASE_NOTES.rst index 4554a968..5126b449 100644 --- a/RELEASE_NOTES.rst +++ b/RELEASE_NOTES.rst @@ -1,5 +1,43 @@ RELEASE NOTES ************************* +2.0.14 +-------------------------- +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. +The foreign keys are dropped as well and recreated when the replica reaches the consistent status. +This way the ``init_replica`` may complete successfully even when there are foreign keys in place and with the same speed of the usual ``init_replica``. + +The setup.py now forces PyMySQL to version <0.10.0 because it breaks the python-mysql-replication library (issue #117). + +Thanks to @porshkevich which fixed issue #115 by trim the space from PK index name. + +This release requires a replica catalogue upgrade, therefore 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 `` +* Take a backup of the schema ``sch_chameleon`` with pg_dump as a good measure. +* Install the upgrade with ``pip install pg_chameleon --upgrade`` +* Check if the version is upgraded with ``chameleon --version`` +* Upgrade the replica schema with the command ``chameleon upgrade_replica_schema --config `` +* Start all the replicas. + +If the upgrade procedure can't upgrade the replica catalogue because of running or errored replicas is it possible to reset the statuses by +using the command ``chameleon enable_replica --source ``. + +If the catalogue upgrade is still not possible then you can downgrade pgchameleon to the previous version. Please note that you may need to +install manually PyMySQL to fix the issue with the version 0.10.0. + +``pip install pg_chameleon==2.0.13`` + +``pip install "PyMySQL<0.10.0"`` + + + 2.0.13 -------------------------- diff --git a/docs/conf.py b/docs/conf.py index 96bac231..36b2c833 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -65,9 +65,9 @@ # built documents. # # The short X.Y version. -version = u'2.0.13' +version = u'2.0.14' # The full version, including alpha/beta/rc tags. -release = u'v2.0.13' +release = u'v2.0.14' # The language for content autgenerated by Sphinx. Refer to documentation # for a list of supported languages. diff --git a/setup.py b/setup.py index 3a424af6..e8e59c4f 100644 --- a/setup.py +++ b/setup.py @@ -10,7 +10,7 @@ def readme(): setup( name="pg_chameleon", - version="2.0.13", + version="2.0.14", description="MySQL to PostgreSQL replica and migration", long_description=readme(), author = "Federico Campoli",