Bu sayfada, yönetilen içe ve dışa aktarma özelliklerinin nasıl kullanılacağı açıklanmaktadır. Cloud Firestore verilerini başka bir cihazdan devreye girer. Bu, geliştirme ortamı kurulurken faydalı olabilir veya bir uygulamayı başka bir projeye kalıcı olarak taşıma kapsamında değerlendirilebilir. Bu sayfadaki örnekte, bir ve ardından bu verileri bir hedef projeye aktarmaktır. Veriler taşınıyor şu adımları içerir:
- Kaynak projenizdeki verileri tutmak için bir Cloud Storage paketi oluşturun.
- Kaynak projenizdeki verileri pakete aktarın.
- Hedef projenize paketten okuma izni verin.
- Paketteki verileri hedef projenize aktarın.
Başlamadan önce
Yönetilen dışa aktarma ve içe aktarma hizmetini kullanabilmek için şu görevlerden yararlanabilirsiniz:
- Etkinleştir hem kaynak projeniz hem de faturalandırmanız için seçin. Yalnızca Google Cloud faturalandırmanın etkin olduğu projelerde dışa ve içe aktarma işlemleri kullanılabilir.
-
Hesabınızın gerekli Cloud IAM'ye sahip olduğundan emin olun kaynak projenizdeki izinleri ve söz konusu olabilir. Her iki projenin sahibi olarak hesabınız, izin verir. Aksi takdirde aşağıdaki Cloud IAM rolleri Cloud Firestore için gerekli izinleri verin dışa ve içe aktarma işlemleri:
Owner
,Cloud Datastore Owner
veyaCloud Datastore Import Export Admin
Proje sahibi şu rollerden birini verebilir: adım Erişim izni verin.
-
gcloud
komut satırı aracını kurup projenize bağlanın aktarabilirsiniz:-
gcloud
hizmetine Google Cloud Console'dan erişmek için şu komutu kullanın: Cloud Shell.gcloud
öğesinin doğru proje için yapılandırıldığından emin olun:gcloud config set project [SOURCE_PROJECT_ID]
-
-
Yeni projenizde dizinleri ayarlayın. Bileşik dizinler, iki ayrı proje başlatma belgesi hazırlamak hayati önem taşır. Dizinler ayarlanmalıdır her belgeyi birkaç kez işlemek zorunda kalmamak için öncelikle.
Kaynak projeden verileri dışa aktarma
Şu alan için Cloud Storage paketi oluşturarak verilerinizi dışa aktarabilirsiniz: Cloud Firestore dosyaları dışa aktarma ve dışa aktarma işlemi başlatma.
Cloud Storage paketi oluşturma
Oluştur: Cloud Storage paketinin Cloud Firestore'unuzla aynı konumda olması gerekir Veritabanı konumunuzu görüntülemek için proje konumu ayarına dikkat edin. Dışa ve içe aktarma işlemleri için İstek Sahibi Ödemesi paketi kullanamazsınız.
Cloud Storage paketiniz
kaynak projesinin bir yolunu bulmak için kaynak projenin
pakete varsayılan hizmet hesabı erişimi sağlar. Her bir Google Cloud projesi
PROJECT_ID@appspot.gserviceaccount.com
adında, otomatik olarak oluşturulmuş bir varsayılan hizmet hesabı var. Cloud Firestore
dışa aktarma işlemleri, Cloud Storage'ı yetkilendirmek için bu varsayılan hizmet hesabını kullanır
paket işlemleri. To
kaynak paketinize varsayılan hizmet hesabı erişimi sağlamak üzere
Storage Admin
çok önemlidir.
Bu rolü
gsutil
aracı
Cloud Shell'de kullanılabilir:
gsutil iam ch serviceAccount:[service-PROJECT_NUMBER]@gcp-sa-firestore.iam.gserviceaccount.com :roles/storage.admin\ gs://[BUCKET_NAME]@
Bu rolü Google Cloud Console'da da verebilirsiniz.
Yazma işlemlerini devre dışı bırak (isteğe bağlı)
Uygulamanız, dışa aktarma işlemi sırasında veritabanınıza yazmaya devam ediyorsa işlemi için, bu yazma işlemlerinin tamamını dışa aktarma dosyalarınıza kaydedemeyebilirsiniz. Alıcı: Verileri tutarlı bir durumda dışa aktarın, ve tüm Yönetici SDK'sı işlemlerini durdurmanız gerekebilir.
Güvenlik kurallarını güncelleme
Cloud Firestore'da Kurallar sekmesi hepsini reddetmek için kaynak proje güvenlik kurallarınızı güncelleyin. yazar. Örneğin:
// Deny write access to all users under any conditions service cloud.firestore { match /databases/{database}/documents { match /{document=**} { allow write: if false; } // Reads do not affect export operations // Add your read rules here } }
Yönetici SDK'larından yazma işlemlerini durdurma
Güvenlik kuralları, ayrıcalıklı sunucudan gelen yazma işlemlerini durdurmaz Firebase Yöneticisi kullanılarak oluşturulmuş ortamlar SDK veya Google Cloud Sunucu İstemcisi Kitaplık. Yönetici sunucularınızdan yazma işlemlerini şu tarihe kadar durdurduğunuzdan emin olun: sunucularınızı kapatmak veya güncellemek.
Dışa aktarma işlemi başlatma
Dışa aktarmak için gcloud firestore export
komutunu kullanın
verileri toplayabilirsiniz. Tüm verilerinizi veya yalnızca
belirli koleksiyonlarda kullanılabilir. [SOURCE_BUCKET]
yerine
Cloud Storage paketi:
- Tüm verileri dışa aktar
-
gcloud firestore export gs://[SOURCE_BUCKET] --async
- Belirli koleksiyonları dışa aktarma
-
gcloud firestore export gs://[SOURCE_BUCKET] --collection-ids=[COLLECTION_ID_1],[COLLECTION_ID_2] --async
Aşağıdaki verileri kullanarak dışa aktarma işleminize ait outputURIPrefix
not alın:
ele alacağız. Cloud Firestore, dışa aktarma işleminize varsayılan olarak bir ön ek ekler
bir zaman damgasına göre düzenlemek için:
outputUriPrefix: gs://[SOURCE_BUCKET]/2019-03-05T20:58:23_56418
Dışa aktarma işlemi çalışırken firestore operations list
kullanabilirsiniz.
komutunu kullanın:
gcloud firestore operations list
Verileri hedef projeye aktarma
Ardından, hedef projenin Cloud Firestore veri dosyalarını kullanın ve bir içe aktarma işlemi başlatın.
Hedef projenin veri dosyalarınıza erişmesine izin verin
Bir içe aktarma işlemine başlayabilmeniz için hedef projenizin Cloud Firestore'unuza erişebildiğinden emin olun veri dosyası olarak kaydeder.
Veri dosyalarını yerel pakete taşıma
Kaynak paketinizin konumu Hedef projenizin Cloud Firestore konumu. Taşınmanız gerekir. veri dosyalarınızı aynı zamanda bir Cloud Storage paketine olarak belirleyin.
Aşağıdaki adımları uygulayarak veri dosyalarınızı başka bir Cloud Storage paketine taşıyın.
Paketleri Taşıma ve Yeniden Adlandırma konusuna bakın.
Aşağıdaki tüm adımlar için bu yeni paketi [SOURCE_BUCKET]
olarak kullanın.
Proje hizmet hesabına kaynak paketinize erişim izni verin
Kaynak paketiniz hedef projenizde değilse
hedef projenin varsayılan hizmet hesabının kaynak paketinize erişmesini sağlayın. İlgili içeriği oluşturmak için kullanılan
varsayılan hizmet hesabı adlandırıldı
[DESTINATION_PROJECT_ID]@appspot.gserviceaccount.com
Alıcı:
varsayılan hizmet hesabının kaynak paketinize erişmesine izin verin,
uygun izinlere sahip olmanız gerekir.
Rolünüzle birlikte gerekli rolleri
gsutil
aracı
Cloud Shell'de kullanılabilir:
gsutil iam ch serviceAccount:[DESTINATION_PROJECT_ID]@appspot.gserviceaccount.com:legacyBucketReader,legacyObjectReader \ gs://[SOURCE_BUCKET]
Bu rolü Google Cloud Console'da da verebilirsiniz.
İçe aktarma işlemi başlatma
İçe aktarma işlemine başlamadan önce gcloud
uygulamasının yapılandırıldığından emin olun
doğru proje için:
gcloud config set project [DESTINATION_PROJECT_ID]
Verileri gcloud firestore import
komutunu kullanarak içe aktarma
kaynak paketinizi hedef projenize aktarın:
gcloud firestore import gs://[SOURCE_BUCKET]/[EXPORT_PREFIX] --async
Burada [EXPORT_PREFIX]
, dışa aktarma işleminizdeki önekle eşleşir.
outputUriPrefix
. Örneğin:
gcloud firestore import gs://[SOURCE_BUCKET]/2019-03-05T20:58:23_56418 --async
Dışa aktarma işlemi çalışırken firestore operations list
kullanabilirsiniz.
komutunu kullanın:
gcloud firestore operations list