Any existing tool to sync databases?

Any existing tool to sync databases?

Instead of re-inventing the wheel, does anybody here know of a good tool/component/framework that takes care of all the mechanisms of DB syncing across platforms?
I mainly use SQLite on iOS/Android/macOS and Windows and want my apps to be able to sync their contents over WiFi and/or iCloud/DropBox.
I know that DropBox used to have built-in APIs but I'm really looking for something that implements strategies to take care of all the hair pulling tricky cases when data has been modified on 2+ platforms, etc...
Something that can check additions/deletions, modifications wherever the users did them, and then reconcile everything.
I'm not using a server anywhere, just need to talk from device to device.

Thanks for sharing any kind of experience, leads, directions, articles.

Steve

Comments

  1. All, thanks for your answers. I'm looking at the solution not using servers. My solutions are without servers.

    Wagner, thanks, taking a good look at it right now and will work some tests. Especially with conflicting reconcile. Like the same record has been changed on two different instances.
    I have many TMS tools, including Aurelius, so Echo could be the thing.

    David, if Interbase had a one-time shot price and royalty free policy, I would have used the built-in changes mechanism. But I don't like to have to pay depending on how much copy I sell. I always skip policies like that.

    Joseph, Lars, thanks for the links, checking right away.

    ReplyDelete
  2. Steve Jordi The links are all developer or sysop/dbmgr tools.

    Are you look for something to sync between two instances of the database f.x. between a users Windows/Mac/Linux app db and his/her iOS/Android phone app db?

    If so, I'd go for rolling my own, as the generic data sync tools may grab a lot more data than necessary every time. Only you will know how to deal with conflicts where one post has been changed both on the pc and the device.

    If you can avoid syncing and use a shared db instead, you will save yourself a lot of headaches.

    ReplyDelete
  3. Lars Fosdal Yes, I want to be file-based only, no server. And it's only to have desktop apps in macOS/Windows that you can sync to iOS and Android on the go. My main idea is to sync (the DB files) when they're stored either locally or on a DropBox/iCloud instance or directly over local WiFi.

    I found a lot of valuable documentation on delta sync between DBs but as you say, only I know what and how to sync and resolve conflicts. But this is tedious and could take me over a year to write. There are always bad surprises, cases one never thought of, arising when using the products.
    It looks like TMSEcho can do this perfectly, especially the mechanism to sync only the changes, instead of everything like most products do.

    I'm testing ECHO right now. I'll post more thoughts after my tests.
    Thanks

    ReplyDelete

Post a Comment