Local/remote management commands
If you set your manage.py up as described in Installation, Djangae will allow you to run management commands locally or remotely.
Running Commands Locally
Django management commands run as normal, e.g.
Running Commands Remotely
Djangae also lets you run management commands which connect remotely to the Datastore of your deployed App Engine application. To do this you need to:
remote_api built-in to app.yaml, and deploy that change.
builtins: - remote_api: on
You also need to ensure that the
application in app.yaml is set to the application which you wish to connect to.
Then run your management command specifying the
./manage.py --sandbox=remote shell
This will use your local Python code, but all database operations will be performed on the remote Datastore.
Additionally, you can specify the application to run commands against by providing an
./manage.py --sandbox=remote --app_id=myapp shell # Starts a remote shell with the "myapp" instance
Deferring Tasks Remotely
App Engine tasks are stored in the Datastore, so when you are in the remote shell any tasks that you defer will run on the live application, not locally. For example:
./manage.py --sandbox=remote shell >>> from my_code import my_function >>> from google.appengine.ext.deferred import defer >>> defer(my_function, arg1, arg2, _queue="queue_name")