View Issue Details
|ID||Project||Category||View Status||Date Submitted||Last Update|
|0004083||SymmetricDS||Bug||public||2019-08-28 21:58||2019-10-30 20:01|
|Target Version||Fixed in Version|
|Summary||0004083: Auto converting date to null for not mysql db brokes synchronization|
|Description||We use symmetricds for replication between mariadb hosts and oracle.|
There is a datetime field in mysql db that allows null and a date field in oracle which does not.
Maybe it's not a good architecture but it exists.
After upgrading from 3.10.3 to 3.10.4 replication from mariadb nodes to oracle was broken as symmetric tried to insert 'null' to a non-null date field.
We have plenty of similar fields and I believe that this behavior should be tunable.
|Steps To Reproduce||1. Setup replication between mariadb host and oracle host.|
2. Create table on maridb host with datetime field.
3. Create table on oracle host with date non-null field.
4. Insert 'null' to datetime in mariadb table
5. Error will be raised as 'null' is not allowed for date field at oracle host
|Additional Information||"Improvement" issue - https://www.symmetricds.org/issues/view.php?id=4065|
||Maybe we add a parameter of mysql.convert.zero.date.to=null and you could change it to what you need, like mysql.convert.zero.date.to=0001-01-01. Would that meet your requirements?|
Yes, I think that parameter will solve our problems.
With exception that for parameter could be not only date field, but datetime field.
||If you remove zeroDateTimeBehavior=convertToNull from the db.url, it will go back to the same behavior it had in 3.10.3.|