We've just released the first version of our application and are now looking at a problem we've been avoiding until now. Namely, what is the best way to upgrade the application to a new version that requires changes to the datastore. We're looking at two options:
1) Big Bang Upgrade We take the application down and run an upgrade process to update all entities from version 1 to version 2. Pros: Easy to maintain; intuitive Cons: App has to be taken down for a period of time, which will increase as time passes and more data is added to the datastore (potentially hitting the limit for long-running processes eventually) Question: What's a good way to take the app offline? 2) Version Entities Individually Each entity has a version number and we have a series of commands, each one responsible for upgrading an entity from one version to the next. As we request entities, we check to see if it's the latest version. If not, we run each necessary upgrade command in sequence until it is the latest version. Pros: No need to take the app offline; provides flexibility on whether to upgrade everything at once or piecemeal Cons: Not as intuitive; entities with different versions in the datastore (if that matters) What do other people do to upgrade their datastore for a live application? -- You received this message because you are subscribed to the Google Groups "Google App Engine" group. To post to this group, send email to google-appeng...@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.