pricing prices precios ndb how google engines engine deploy compute bootstrap app google-app-engine google-cloud-datastore

google app engine - prices - App Engine: ¿Cómo "restablecer" el almacén de datos?



ndb google app engine (15)

Cuando se trabaja localmente, en Windows 7, el archivo es user / UserName / AppData / Local / Temp / dev_appserver.datastore

Bueno, estoy desarrollando en App Engine (Java) y después de muchos intentos e implementaciones, necesito restablecer el almacén de datos. Hay una gran cantidad de datos aleatorios que agregué al rendimiento de la prueba, y además las entidades cambiaron mucho, así que necesito eliminar todo: datos, tablas, índices.

¿Cómo puedo hacer eso?


Eliminar todo (o una parte) de los datos de su aplicación ahora es parte de la Consola de administración

Para habilitar esta funcionalidad, simplemente habilite el siguiente built-in en su archivo app.yaml:

builtins: - datastore_admin: on

Al agregar estas líneas a app.yaml, se habilita la página "Administrador de Datastore" en la consola de administración de su aplicación.


Estaba usando el motor de aplicaciones con Google Coursebuilder y tuve que usar este comando para borrar el almacén de datos:

python dev_appserver.py --clear_datastore /path/to/app


Fuera de contexto para Java Dev, pero como hay poca documentación, aquí se muestra cómo hacerlo en go:

keys, _ := datastore.NewQuery("").KeysOnly().GetAll(c, nil) datastore.DeleteMulti(c, keys)



Lamento despertar este hilo, pero solo en caso de que quiera agregar un consejo para noobs como yo (finalmente encontré la respuesta en la documentación de google):

Si desea restablecer el almacén de datos local (por ejemplo, al desarrollar usando eclipse) todo de una vez, cierre el servidor, busque el archivo '' local_db.bin '' en su proyecto (debe estar en el directorio WEB-INF / appengine-generated / ), y eliminarlo.

Funciona bien con Java, aún no lo intenté con Python.

++


No existe un comando incorporado equivalente a DROP TABLE o TRUNCATE TABLE en SQL. Solo necesita crear una página "eliminar todo" en su aplicación, luego llame repetidamente a esa página a través de un script. En esa página, desea eliminar tantas entidades como pueda y aún así esperar terminar antes de que la solicitud expire. El código exacto depende de si está utilizando JDO / JPA o la API de bajo nivel. (la API de bajo nivel será más rápida porque puede usar operaciones por lotes).

Esta pregunta SO previous es más o menos lo mismo, solo para Python


No funciona para mi

Tengo una aplicación GAE donde tengo que iniciar sesión al principio.

He eliminado mi archivo local_db.bin (tengo más archivos en esa carpeta: datastore-indexes-auto.xml y local_search.bn). He vuelto a abrir mi proyecto y ejecutarlo como. Cuando ejecuto mi .jsp principal, está cargando una solicitud de mi almacén de datos, pero no tengo datos en mi almacén de datos y me pide mi PMF (fábrica de administradores persistentes).

¿Debo eliminar más cosas?

Exactamente, estoy intentando abrir: localhost: 8888 / _ah / admin / pero no se encuentra.

Diego.


Para agregar otro poco de información útil: si usa Eclipse y desea borrar el almacén de datos local, busque este mensaje de consola:

INFO: Local Datastore initialized: Storage: C:/Users/eric/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/appname/WEB-INF/appengine-generated/local_db.bin

Solo aparece después de hacer algo para forzar la inicialización del almacén de datos, por ejemplo, que podría estar refrescando la lista de entidades en la página de administración. Luego detenga su servidor y elimine el archivo, y cuando reinicie debería ver:

INFO: The backing store, C:/Users/eric/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/appname/WEB-INF/appengine-generated/local_db.bin, does not exist. It will be created.


Según los documentos de GAE, puede eliminar múltiples objetos en JDO, llamar al método deletePersistentAll (...) de PersistenceManager con una colección de objetos.

PersistenceManager pm = PMF.get().getPersistenceManager(); Query query = pm.newQuery("select from " + Your.class); List<Your> objs = (List<Your>) query.execute(); pm.deletePersistentAll(objs);


Si usa maven en su proyecto, puede hacer una "instalación limpia de mvn". Eso restablecerá el almacén de datos localmente, por supuesto.


Simplemente ejecute una consulta sin filtro para buscar todas las entidades y elimínelas una a una.

import javax.servlet.http.*; import com.google.appengine.api.datastore.DatastoreService; import com.google.appengine.api.datastore.DatastoreServiceFactory; import com.google.appengine.api.datastore.Entity; import com.google.appengine.api.datastore.PreparedQuery; import com.google.appengine.api.datastore.Query; public class MyServlet extends HttpServlet { public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException { DatastoreService datastore = DatastoreServiceFactory.getDatastoreService(); Query mydeleteq = new Query(); PreparedQuery pq = datastore.prepare(mydeleteq); for (Entity result : pq.asIterable()) { datastore.delete(result.getKey()); } }


en mi caso (trabajando con el plugin eclipse y play framework) tuve que parar la aplicación, eliminar el archivo / aplicaciones / crud-gae / tmp / datastore y luego reiniciar la aplicación

funcionó para mí ... trabajando localmente, por supuesto ...


siento haber llegado tan tarde a esto, pero solo estaba tratando de hacer lo mismo yo ...

Inicié sesión en mi cuenta (appengine.google.com) y encontré la opción de explorar el almacén de datos a través de una herramienta de administración (datastore / dataviewer) ... que permite crear / actualizar / eliminar.


Borrar el almacén de datos del servidor de desarrollo

El servidor web de desarrollo utiliza una versión local del almacén de datos para probar su aplicación, utilizando archivos temporales. Los datos persisten mientras existan los archivos temporales, y el servidor web no restablece estos archivos a menos que así lo solicite.

Si desea que el servidor de desarrollo borre su almacén de datos antes de comenzar, use la opción --clear_datastore cuando inicie el servidor:

dev_appserver.py --clear_datastore helloworld /

Usando el Datastore