How to delete all datastore in Google App Engine?

后端 未结 29 1883
夕颜
夕颜 2020-11-28 01:17

Does anyone know how to delete all datastore in Google App Engine?

29条回答
  •  暗喜
    暗喜 (楼主)
    2020-11-28 01:46

    PHP variation:

    import com.google.appengine.api.datastore.Query;
    import com.google.appengine.api.datastore.DatastoreServiceFactory;
    
    define('DATASTORE_SERVICE', DatastoreServiceFactory::getDatastoreService());
    
    function get_all($kind) {
        $query = new Query($kind);
        $prepared = DATASTORE_SERVICE->prepare($query);
        return $prepared->asIterable();
    }
    
    function delete_all($kind, $amount = 0) {
        if ($entities = get_all($kind)) {
            $r = $t = 0;
            $delete = array();
            foreach ($entities as $entity) {
                if ($r < 500) {
                    $delete[] = $entity->getKey();
                } else {
                    DATASTORE_SERVICE->delete($delete);
                    $delete = array();
                    $r = -1;
                }
                $r++; $t++;
                if ($amount && $amount < $t) break;
            }
            if ($delete) {
                DATASTORE_SERVICE->delete($delete);
            }
        }
    }
    

    Yes it will take time and 30 sec. is a limit. I'm thinking to put an ajax app sample to automate beyond 30 sec.

提交回复
热议问题