Utilizzando le funzionalità di importazione ed esportazione dell'emulatore Datastore, puoi esportare i dati dall'istanza del database e caricarli nell'emulatore. Tu esportare i dati dall'emulatore e caricarli nel tuo in modalità Datastore.
Prima di iniziare
Prima di utilizzare le funzionalità di importazione o esportazione dell'emulatore Datastore, completa i seguenti passaggi:
-
Le funzionalità di importazione ed esportazione sono disponibili per
cloud-datastore-emulator
versioni 2.1.0 e successive. Potresti dover aggiornare Google Cloud CLI componenti. Per le operazioni di importazione, assicurati che i file di esportazione delle entità siano gli stessi come emulatore.
Importa entità nell'emulatore
La funzionalità di importazione dell'emulatore ti consente di caricare le entità da un insieme di file di esportazione delle entità nell'emulatore. I file di esportazione delle entità possono provenire da un'esportazione del database in modalità Datastore o di un'istanza dell'emulatore.
Per importare entità nell'emulatore, invia una richiesta di importazione POST
all'
un emulatore. Puoi utilizzare curl o uno strumento simile. Ad esempio, la seguente richiesta importa tutte le entità da un insieme di file di esportazione delle entità nell'emulatore:
Protocollo
curl -X POST localhost:8081/v1/projects/[PROJECT_ID]:import \ -H 'Content-Type: application/json' \ -d '{"input_url":"[ENTITY_EXPORT_FILES]"}'
localhost:8081
se l'emulatore utilizza una porta diversa.dove:
[PROJECT_ID]
è l'ID del progetto.[ENTITY_EXPORT_FILES]
è il percorso del fileoverall_export_metadata
di dei file di esportazione delle entità. Ad esempio:{"input_url":"/home/user/myexports/2019-02-04T19:39:33_443/2019-02-04T19:39:33_443.overall_export_metadata"}
Importa entità da tipi e spazi dei nomi specifici
Puoi specificare un filtro di entità per importare entità solo da tipi specifici o spazi dei nomi. Puoi specificare un filtro di entità solo se l'esportazione è stata creata utilizzando un filtro di entità.
Specifica tipi o spazi dei nomi in un filtro delle entità:
Protocollo
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
se l'emulatore utilizza una porta diversa.dove:
[PROJECT_ID]
è l'ID del progetto.[ENTITY_EXPORT_FILES]
è il percorso del fileoverall_export_metadata
dei file di esportazione delle entità. Ad esempio:{"input_url":"/home/user/myexports/2019-02-04T19:39:33_443/2019-02-04T19:39:33_443.overall_export_metadata"}
[KIND_NAMES]
è un elenco di tipi:"kinds":["KIND_1", "KIND_2"]
[NAMESPACES]
è un elenco di ID spazio dei nomi:"namespace_ids":["NAMESPACE_1", "NAMESPACE_2"]
Esportare le entità nell'emulatore
La funzione di esportazione dell'emulatore consente di salvare le entità nell'emulatore in un insieme di file di esportazione delle entità. Puoi quindi utilizzare un'operazione di importazione per caricare nei file di esportazione delle entità nel database in modalità Datastore in un'istanza dell'emulatore.
Per esportare entità in un'istanza di emulatore, invia una richiesta di esportazione POST
all'account
un emulatore. Puoi usare curl o uno strumento simile. Per
Ad esempio, la seguente richiesta esporterà tutte le entità nell'emulatore:
Protocollo
curl -X POST localhost:8081/v1/projects/[PROJECT_ID]:export \ -H 'Content-Type: application/json' \ -d '{"output_url_prefix":"EXPORT_DIRECTORY"}'
localhost:8081
se l'emulatore utilizza una porta diversa.dove:
[PROJECT_ID]
è l'ID del tuo progetto.[EXPORT_DIRECTORY]
specifica la directory in cui l'emulatore salva i file di esportazione delle entità. Questa directory non deve contenere già un insieme di dei file di esportazione delle entità. Ad esempio:{"output_url_prefix":"/home/user/myexports/2019-02-04/"}
Esportare entità da tipi e spazi dei nomi specifici
Puoi specificare un filtro delle entità per esportare le entità solo da tipi specifici o spazi dei nomi.
Specifica i tipi o gli spazi dei nomi in un filtro di entità:
Protocollo
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
se l'emulatore utilizza una porta diversa.dove:
[PROJECT_ID]
è l'ID del tuo progetto.[EXPORT_DIRECTORY]
specifica la directory in cui l'emulatore salva dei file di esportazione delle entità. Questa directory non deve contenere già un insieme di dei file di esportazione delle entità. Ad esempio:{"output_url_prefix":"/home/user/myexports/2019-02-04/"}``
[KIND_NAMES]
è un elenco di tipi:"kinds":["KIND_1", "KIND_2"]
[NAMESPACES]
è un elenco di ID spazio dei nomi:"namespace_ids":["NAMESPACE_1", "NAMESPACE_2"]
Carica i dati dell'emulatore nel database
I file di esportazione delle entità creati dall'emulatore sono compatibili con di importazione gestita per i database in modalità Datastore.
Prima di poter caricare nel tuo database entità esportate dall'emulatore, devi caricare i file di esportazione delle entità del bucket. La funzionalità di importazione gestita legge solo dall'interno dei bucket Cloud Storage.
Una volta che i file di esportazione delle entità sono disponibili in un bucket Cloud Storage, puoi importare i dati nel tuo database come descritto in Esportare e importare entità.