Con las funciones de importación y exportación del emulador de Datastore, puedes exportar datos desde tu instancia de base de datos y cargarlos en el emulador. También puedes exportar datos desde el emulador y cargarlos en la base de datos en modo Datastore.
Antes de comenzar
Antes de usar las funciones de importación o exportación del emulador de Datastore, haz lo siguiente:
Inicia el emulador de Datastore.
Las funciones de importación y exportación están disponibles para las versiones de
cloud-datastore-emulator
2.1.0 y posteriores. Es posible que debas actualizar los componentes de Google Cloud CLI.Para las operaciones de importación, asegúrate de que los archivos de exportación de tu entidad estén en la misma máquina que el emulador.
Importa entidades en el emulador
La función de importación del emulador te permite cargar entidades de un conjunto de archivos de exportación de entidades en el emulador. Los archivos de exportación de entidades pueden provenir de una exportación de tu base de datos en modo Datastore o de una instancia del emulador.
Para importar entidades al emulador, envía una solicitud de importación POST
al emulador. Puedes usar curl o una herramienta similar. Por ejemplo, la siguiente solicitud importará todas las entidades de un conjunto de archivos de exportación de entidades en el emulador:
Protocolo
curl -X POST localhost:8081/v1/projects/[PROJECT_ID]:import \ -H 'Content-Type: application/json' \ -d '{"input_url":"[ENTITY_EXPORT_FILES]"}'
localhost:8081
si el emulador usa un puerto diferente.Donde:
[PROJECT_ID]
es el ID de tu proyecto.[ENTITY_EXPORT_FILES]
es la ruta de acceso al archivooverall_export_metadata
de los archivos de exportación de tu entidad. Por ejemplo:{"input_url":"/home/user/myexports/2019-02-04T19:39:33_443/2019-02-04T19:39:33_443.overall_export_metadata"}
Importa entidades de categorías y espacios de nombres específicos
Puedes especificar un filtro de entidad para importar entidades solo de categorías o espacios de nombres específicos. Puedes especificar un filtro de entidad solo si la exportación se creó con uno.
Especifica categorías o espacios de nombres en un filtro de entidad:
Protocolo
curl -X POST localhost:8081/v1/projects/[PROJECT_ID]:import \ -H 'Content-Type: application/json' \ -d '{"input_url":"[ENTITY_EXPORT_FILES]", "entity_filter":{"kinds":[[KIND_NAMES]], "namespace_ids":[[NAMESPACES]]}}'
localhost:8081
si el emulador usa un puerto diferente.Donde:
[PROJECT_ID]
es el ID de tu proyecto.[ENTITY_EXPORT_FILES]
es la ruta de acceso al archivooverall_export_metadata
de los archivos de exportación de tu entidad. Por ejemplo:{"input_url":"/home/user/myexports/2019-02-04T19:39:33_443/2019-02-04T19:39:33_443.overall_export_metadata"}
[KIND_NAMES]
es una lista de categorías:"kinds":["KIND_1", "KIND_2"]
[NAMESPACES]
es una lista de ID de espacio de nombres:"namespace_ids":["NAMESPACE_1", "NAMESPACE_2"]
Exporta entidades en el emulador
La función de exportación del emulador te permite guardar entidades en el emulador en un conjunto de archivos de exportación de entidades. Puedes usar una operación de importación para cargar las entidades en los archivos de exportación de entidades en tu base de datos en modo Datastore o en una instancia del emulador.
Para exportar entidades en una instancia del emulador, envía una solicitud de exportación POST
al emulador. Puedes usar curl o una herramienta similar. Por ejemplo, la siguiente solicitud exportará todas las entidades en el emulador:
Protocolo
curl -X POST localhost:8081/v1/projects/[PROJECT_ID]:export \ -H 'Content-Type: application/json' \ -d '{"output_url_prefix":"EXPORT_DIRECTORY"}'
localhost:8081
si el emulador usa un puerto diferente.Donde:
[PROJECT_ID]
es el ID de tu proyecto.[EXPORT_DIRECTORY]
especifica el directorio en el que el emulador guarda los archivos de exportación de entidades. Este directorio no debe contener otro conjunto de archivos de exportación de entidades. Por ejemplo:{"output_url_prefix":"/home/user/myexports/2019-02-04/"}
Exporta entidades de categorías y espacios de nombres específicos
Puedes especificar un filtro de entidad para exportar entidades solo de categorías o espacios de nombres específicos.
Especifica categorías o espacios de nombres en un filtro de entidad:
Protocolo
curl -X POST localhost:8081/v1/projects/[PROJECT_ID]:export \ -H 'Content-Type: application/json' \ -d '{"output_url_prefix":"EXPORT_DIRECTORY", "entity_filter":{"kinds":[[KIND_NAMES]], "namespace_ids":[[NAMESPACES]]}}'
localhost:8081
si el emulador usa un puerto diferente.Donde:
[PROJECT_ID]
es el ID de tu proyecto.[EXPORT_DIRECTORY]
especifica el directorio en el que el emulador guarda los archivos de exportación de entidades. Este directorio no debe contener otro conjunto de archivos de exportación de entidades. Por ejemplo:{"output_url_prefix":"/home/user/myexports/2019-02-04/"}``
[KIND_NAMES]
es una lista de categorías:"kinds":["KIND_1", "KIND_2"]
[NAMESPACES]
es una lista de ID de espacio de nombres:"namespace_ids":["NAMESPACE_1", "NAMESPACE_2"]
Carga datos del emulador en tu base de datos
Los archivos de exportación de entidades que crea el emulador son compatibles con la función de importación administrada para las bases de datos en modo Datastore.
Antes de poder subir las entidades exportadas del emulador a tus bases de datos, debes subir tus archivos de exportación de entidades a un depósito de Cloud Storage. La función de importación administrada solo lee desde depósitos de Cloud Storage.
Una vez que tus archivos de exportación de entidad estén disponibles en un depósito de Cloud Storage, puedes importar los datos a tu base de datos como se describe en Importa y exporta entidades.