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.

Reply via email to