I'm working on an application where the client side of the program has a local database (SQLite) and the server has a database (MySQL). Data is send from the local database to the remote database on several occasions. I have no control over the client side and there will be many thousands of clients.

Suppose somebody downloads my program which is version 1. My version 1 database has one table person, with the fields firstname and lastname. A couple of months later I decide the person table needs an additional row, namely email. So I update the table on the server (no problem here I guess) and I make a version 1.1 of my client program. I will be using IcePatch2 from ZeroC (http://www.zeroc.com) to update the files of the program on the client. Or are there any other options available? But how do I update the SQLite database on the client? Because the client already has a table person with (hopefully) a lot of data in it. So the upgrade to version 1.1 has got to go smoothly without the loss of any data. Are there any programs available that handle this kind of problem? Or how have you solved it? All help is welcome. Thanks.

Kind regards,