morality: opting for the pseudo-hot-sync-based-on-will-be-ever-faulty, in
the first place, was ridiculous, I don't know how it could have been even
retained.

-- best.


On Thu, Jun 19, 2014 at 3:19 PM, mm.w <0xcafef...@gmail.com> wrote:

> diff and update when a user is actually migrating, let server1 run until
> all users have migrated, if migrated prevents to ever connect to server1
>
> simple.
>
> best
>
>
> On Thu, Jun 19, 2014 at 1:59 PM, jose isaias cabrera <
> cabr...@wrc.xerox.com> wrote:
>
>> Simon Slavin wrote...
>>
>>
>>
>>> On 19 Jun 2014, at 3:55pm, jose isaias cabrera <cabr...@wrc.xerox.com>
>>> wrote:
>>>
>>>  These servers will be in two different servers and in two different
>>>> parts of the world, so network access will be very slow.  What I am
>>>> thinking in doing is to copy the data on Server1 to Server2 and set the
>>>> starting id at a higher point than the last id on Server1.  For example,
>>>> Server1 highest project id is 134000, so, I would set the start id for
>>>> Server2 to 135000. The Server two will continue to add new projects, so the
>>>> next project id will be 135001 and so forth.
>>>>
>>>
>>> Is your whole database really just in a single table ?  If not, you have
>>> to figure out how to spot related records in other tables.  Once you've
>>> done that you need to have a 'LastUpdateDate' column on every table.  And
>>> then you have to worry about spotting rows which have been deleted. Since
>>> the row has been deleted, there are no 'LastUpdateDate' values which let
>>> you spot it !
>>>
>>
>> Thanks for helping Simon.  Yes, there are a bunch of more tables and yes,
>> each of them have a LastUpdateDate and they all will be based on ProjID,
>> which is id in the LSOpenProjects table.  This is only temporarery until we
>> close all the records in Server1.db and then, only one db, Server2.db will
>> be used.
>>
>>
>>
>>> Synchronising two different databases is ridiculously difficult to get
>>> right.  Especially when both of them continue to be modified and when you
>>> continue to make use of AUTOINCREMENT columns to number new rows.  There is
>>> no good general solution.  There's not even really a good book on
>>> approaches to the problem.
>>>
>>
>> Yes, I understand.  For Server1, no record will be added, so the last
>> record opened, in Server1, will continue to be the last one until it is
>> closed. For Server2, I will insert a dummy record to be 135001, which will
>> guide the rest of the new records that will be open in Server2.  So the
>> next autoincrement will be 135002, etc.  There last record for Server1
>> should be, at most, at 134500, so there is a space of 500 empty records.
>>  We want to do this so that there is an specific number that will guide the
>> original record for Server2 as well as for Server1.
>>
>>
>>> From the information you posted I would recommend that you keep the two
>>> database files separate and explain to your users when to use one and when
>>> to use the other.  You can have two different apps, one of which uses the
>>> 'old server' data, and the other accesses the 'new server' data.  Or you
>>> can have one app which can flip between database files.  If this is at all
>>> practical in your business it will make things much simpler and your users
>>> will understand how their system works far better.
>>>
>>
>> Yes, this will happen, and they know, but in a few months, Server1 will
>> no longer be, so we need to continue to update until we close that server.
>>
>>
>>> However if you have a reason to need both sets of data in the same
>>> database, then consider what would happen if instead of introducing a
>>> 'LastUpdateDate' field everywhere and the clever programming you'd need to
>>> do to use it correctly, do the following:
>>>
>>> * Create a new table called 'SQLCommandLog' in a new attached database.
>>> * Table has the usual AUTOINCREMENT rowid and one text column called
>>> 'command'.
>>> * All commands which might change the data (INSERT/UPDATE/DELETE) get
>>> saved in the table.
>>> * To update another database to reflect the changes to this one, simply
>>> issue those commands, then empty the table again ready for new commands.
>>>
>>> That way you don't have to copy a big database file of your data to the
>>> other server, you just copy a small database of SQL commands.
>>>
>>
>> Hmmmm...
>>
>>
>>> There are the usual problems with choosing different AUTOINCREMENT row
>>> numbers on different servers but this system may be simpler to implement
>>> than anything clever with deep understanding of your business logic.
>>>
>>> Simon.
>>>
>>
>> I appreciate your input, Simon.
>>
>> josé
>> _______________________________________________
>> sqlite-users mailing list
>> sqlite-users@sqlite.org
>> http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
>>
>
>
_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to