I am working with a nonprofit organization who uses OpenEMR to provide health care to patients in a third-world country. OpenEMR stores its data in MySQL database. We host an instance of OpenEMR in our clinic's LAN.
We would like to be able to take a copy of the database (on a laptop) to remote sites where there is no Internet connectivity, modify the database on-site, and then merge the changes back into the clinic database upon our return (I suspect that auto-incrementing patient IDs will be a problem if both instances have added new patients while the laptop is on-site).
I'm a Linux C++/Qt developer, but I'm new to databases, so I might be missing the obvious or stating my problem poorly. What I've tried so far:
- MySQL master-master replication. I followed an online guide and was able to get two instances of OpenEMR on two different virtual machines synchronized while both VMs where online, but the synchronization failed when I made changes to the database while the VMs had no network connectivity to each other and then brought them back online.
- SymmetricDS. Several somewhat similar questions on this site pointed me in that direction, but I'm struggling to adapt their tutorial to my databases.
Does this sound like something SymmetricDS can do? If so, can anyone provide examples of how to set up the SymmetricDS engines? Is there something different I should be attempting instead, or is trying to use a MySQL database in this way just a bad idea?
Thank you very much for your suggestions!