Reputation: 797
What is the easiest way to do a GAE/J datastore backup?
It looks like there is python bulkloader.py tool to do backup for Python apps, but what should I do to backup Java app? Is there any way to use python tool?
Upvotes: 11
Views: 3659
Reputation: 6864
You can now use the managed export and import feature, which can be accessed through gcloud or the Datastore Admin API:
Exporting and Importing Entities
Upvotes: 0
Reputation: 50137
I know this question is quite old, but this came out as a feature of the Datastore Administration in the app-engine dashboard.
Upvotes: 2
Reputation: 10293
Or if you can, you may wait for the datastore backup-restore feature in GAE upcoming versions as seen in the roadmap. http://code.google.com/appengine/docs/roadmap.html
Upvotes: 2
Reputation: 797
It is possible to use python tool bulkloader.py to create datastore backup of GAE Java app. You just have to set up remote_api by adding following lines to web.xml:
<?xml version="1.0" encoding="utf-8"?>
<web-app>
<!-- Add this to your web.xml to enable remote API on Java. -->
<servlet>
<servlet-name>remoteapi</servlet-name>
<servlet-class>com.google.apphosting.utils.remoteapi.RemoteApiServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>remoteapi</servlet-name>
<url-pattern>/remote_api</url-pattern>
</servlet-mapping>
<security-constraint>
<web-resource-collection>
<web-resource-name>remoteapi</web-resource-name>
<url-pattern>/remote_api</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>admin</role-name>
</auth-constraint>
</security-constraint>
</web-app>
After that you can use bulkloader.py with --dump to download backup and with --restore to upload backup to datastore.
Upvotes: 16
Reputation: 101149
Just set up remote_api for your app using the directions here - notably the tip:
Tip: If you have a Java app, you can use the Python bulkloader.py tool by installing the Java version of the remote_api handler, which is included with the Java runtime environment. The handler servlet class is com.google.apphosting.utils.remoteapi.RemoteApiServlet.
Then, use the Python bulkloader with --dump or --restore.
Upvotes: 1