Continuing work from #8094, #8410, #8456 and #8759, the script from #8759 can be run in the near future to migrate all FeedbackSession entities:
After running the script from #8759, these tasks remain:
timeZoneDouble and wasFollowingCourseTimeZone fields (simple code deletion)@OnLoad methods (simple code deletion)convertFieldsToUtcIfRequired()setTimeZoneFromCourseTimeZoneIfRequired()populateMissingBooleansIfRequired()adjustResultsVisibleFromTimeIfRequired()isTimeStoredInUtc and isFollowingCourseTimeZone flags (another script needed)FeedbackSessionsDb, namely getAllOpenFeedbackSessions and getFeedbackSessionEntitiesPossiblyNeeding(Open|Closed|Closing)EmailThis will require load()/save()-ing ALL existing FeedbackSession entities in the datastore. @damithc when was the last time a migration of this scale took place? #6001? I'm wondering whether the existing client script framework is good enough; I suspect it will suffer from timeouts. I'm considering building a heavy duty client script framework that runs on the server itself via task queues - DataMigrationServlet. This way, the conversion will happen efficiently on the server and the data doesn't have to stream through a local machine.
For future reference: https://groups.google.com/d/msg/objectify-appengine/meUDiiUmD-Q/jm15CzBxym4J
@damithc when was the last time a migration of this scale took place?
We have nearly 30k session objects.
Yes, we need something more sturdy. Not sure if we should go serverside though. The problem is serverside requires a deployment and admin has less control during the migration process. In all past migrations I need to tweak the script along the way to deal with various 'dirty' data items i.e., not all data objects are in the exact format we expect them to be. There can be stray nulls, and so on.
Alternatives:
Related to #9044 to develop an new migration framework.
Done 馃帀 Related issues created in #9125
Most helpful comment
Done 馃帀 Related issues created in #9125