Hi Matteo,
Since CouchDB supports transactions only on the document level,
an appropriate migration concept has to deal with partial
migrations. This can be achieved with one database per schema
version. Or by having multiple documents per schema version:
* support for multiple clients with different schema versions at
the same time
* per document type schema versions
* continuous up and down migrations
* server side migration is more bandwidth efficient than client
side since most users have better download than upload rates
* migration can be run pre-release and replicated to the clients
in advance for enhanced upgrade experience
* client side migration and conflict resolution is complicated,
hard to debug and can lead to loops
Johannes
--
You received this message because you are subscribed to the Google Groups "PouchDB" group.
To unsubscribe from this group and stop receiving emails from it, send an email to pouchdb+u...@googlegroups.com.
To post to this group, send email to pou...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/pouchdb/4d6b387f-cb02-431e-9736-f36c45250058%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Hi Matteo,
we restrict client side access to documents via a view which only emits documents with the schema version the client understands. So newly edited documents does not show up in the clients until they have been pushed to the server, migrated and pulled back again (we do not change documents during migration, we create new documents for new schema versions - except for update migrations).
Of course this does not eliminate all possible conflicts but
reduces them.
Note that we do server side migrations *before* releasing new applications, so that the apps can have the new documents already synced before they upgrade.
Johannes
To view this discussion on the web visit https://groups.google.com/d/msgid/pouchdb/55373424-04a6-4d58-abff-0b05b9f7b3aa%40googlegroups.com.