Google don't make it particularly easy to do this, there is no button in the console to move your application, you must do the following manual steps:
- create a new application
- upload the code to the new application
- disable datastore writes on your existing application
- grant permissions to the bucket used to store your datastore backups so the new application can read them
- backup the data store of the existing application
- then restore the backups to the new application
- then create a mapping of your custom domain to the new application
at this point, I tested my new application and I could see that google was serving the new application, so it looked like everything was working and I went to bed.
The next morning, my application was no longer working. It was configured to accept secure connections only, and when I remapped the custom domain, app engine decided to delete my certificate without telling me.
Well, that's not so bad, all I need to do is upload the ssl certificate to my new application, right?
Trouble is, app engine won't let me. Every time I try, it fails with an extremely unhelpful error message.
This seems to me to be some unexpected error in the backend, which is no surprise as the whole App Engine infrastructure is a little half baked. Turns out I had uploaded the wrong private key file, which I figured out by using a certificate checker site.