7
votes

I have a local Datastore emulator instance running on my local machine (Mac OSX 10.11.6).

I have a bunch of data in there already, but I want to remove all data from the local database to start with a clean slate.

However I have already tried deleting the directory (where I thought) the data was being stored.

This message appears when starting the emulator.

WARNING: Reusing existing data in [/Users/myusername/.config/gcloud/emulators/datastore].

I deleted the entire datastore directory and it seems to be re-generated properly when the emulator is restarted. However, the old data is still there.

rm -rf /Users/myusername/.config/gcloud/emulators/datastore

I also confirmed that my Node App is connecting to the local emulator.

myusername$ $(gcloud beta emulators datastore env-init)
myusername$ gcloud beta emulators datastore env-init
export DATASTORE_DATASET=projectname
export DATASTORE_EMULATOR_HOST=localhost:8081
export DATASTORE_EMULATOR_HOST_PATH=localhost:8081/datastore
export DATASTORE_HOST=http://localhost:8081
export DATASTORE_PROJECT_ID=projectname
2
Were the emulator/app running when you removed the dir?Dan Cornilescu

2 Answers

8
votes

Datastore emulator supports resetting datastore when its running. This can be used to reset datastore when running tests.

Make POST request to http://localhost:8081/reset to clear the internal state of the emulator i.e

curl -X POST http://<emulator-host>:<port>/reset

see https://github.com/GoogleCloudPlatform/google-cloud-java/issues/1292 discussion

3
votes
  1. Stop the local dev server from running
  2. Find its dev_appserver.datastore file and drag it to the trash
  3. Restart dev server

A new, empty local datastore will be created.