Ok, roughly it went like this: - Download and install python sdk - Create a python app with the same ID as my java app but a new version, enable the datastore admin in the configuration for that version, and upload. - Create a new java app with the HR datastore. - Create a python app with the same ID but a new version for the new app, enable remote_api and datastore admin. Also, in that app's appengine_config.py file, make sure to set the remoteapi_CUSTOM_ENVIRONMENT_AUTHENTICATION setting to the id of your source app - For the love of all that is good, write some code to clean up orphaned datastore entities in your source app's datastore, or the transfer will fail in a fascinating and CPU-devouring manner. - Once you've done that, select all the entities from your source app's datastore admin section (you have to change the dashboard to the python version of your source app to see the datastore admin) and choose to transfer them to your target newly created HR app. You'll have a chance to provide the target app's ID after you choose to transfer entities. - Watch the task queue, when its empty the transfer is done. It took a few minutes for all my 20 MB worth of data (split up over tens of thousands of tiny entities). - Now switch to your new HR app, make sure everything looks ok. If you had any blobs in the blobstore, this is when you figure out some manual way to move them. If you had blobkeys in your datastore, they are now all broken and this is where you figure out how to fix them. - In the appengine-web.xml file for your old app, change the ID to the new one, set an appropriate version, and upload. This is all you have to do to get all your code/config/jsps/static content into the new version. - If you're using google apps for your domain, log into google apps and remove the old version of your app from your domain. - In the dashboard for your new app, add your domain. For me it took about 30 minutes to switch over. - Don't forget to re-enable billing on your target up. - Apologize to users.
My app is small enough for now that I didn't bother making any datastore readonly, I just found a quiet time and did all this as fast as possible. It wasn't the worst thing in the world, but it wasn't exactly "seamless" either. If I had a lot of blobs and/or traffic, I imagine this would be a nightmare. This post comes with no warranties, implied or otherwise, best of luck! On Jun 15, 1:12 pm, tempy <[email protected]> wrote: > I've finally decided to upgrade, while my data still isn't huge. > Maybe I'm missing something, but I'm yet to find an article or blog > post or group entry that has simple "recommended" steps, instead I'm > piecing the procedure together. As I understand it, it goes something > like this: > > - Install python SDK, create python version of source Java app. > > - This should open the datastore admin section in the dashboard for my > app. > > - Create new java app with HR datastore, this will be the target. > Create python version of that app, and also follow the directions > here:http://code.google.com/appengine/docs/adminconsole/datastoreadmin.htm... > > - Copy all data from one app to the other. > > - Go > here:http://code.google.com/support/bin/request.py?contact_type=AppEngineB... > And beg them to make an alias from the old ID to the new one so that > my custom domain remains functional. > > - Enable billing for new app, hope it goes smoothly. > > I'm fuzzy on pretty much all of this and I'm sure I'm missing > something, and while I normally don't mind muddling through, this > procedure means downtime so I would rather not run into any > surprises. Has anyone done this? Is there some guidance out there > that I'm missing? Does anyone know how this effects existing oauth > tokens generated for the app, or new ones? > > Thanks! -- You received this message because you are subscribed to the Google Groups "Google App Engine for Java" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en.
