使用“ gcloud”将Firestore数据导出到其他集合中

时间:2020-01-17 16:32:36

标签: google-cloud-firestore

问题:

我在两个不同的项目中有订单:numpyproject-a:/documents/orders(大约一百万)。

我需要将订单从project-b导入project-b:/documents/orders。来自project-b的订单采用的是较旧的格式,需要将其转换为project-a中的从不格式:如果将它们放在同一个数据库中,该任务将更加容易。

我知道我可以将它们从项目a导出到存储桶中,然后复制到项目b中的存储桶中。但是可以将其导入到DIFFERENT集合中吗?大多数示例似乎都集中在同一集合上。

1 个答案:

答案 0 :(得分:1)

我试图重现您的用例:

  1. 我用Firestore创建了一个项目(project-b)。

  2. 我创建了一个新集合。

  3. 我将集合导出到GCS:

      gcloud beta firestore export  gs://test-bucket  --collection-ids='my-colection'
    
  4. 我转到了要导入集合的另一个项目:

      gcloud config set project project-a
    
  5. 在项目b上设置App Engine默认服务帐户(projecta@appspot.gserviceaccount.com)Stoage管理员角色,以便能够访问存储桶。您无需将其复制到项目a的存储桶中。

  6. 我导入了收藏集:

      gcloud beta firestore import gs://project-b/file/  --collection-ids='my-colection'
    

能否请您解释一下您的意思:

但是可以将其导入到DIFFERENT集合中吗?最 例子似乎集中在同一个集合上。

如果您想使用gcloud命令link将集合导入另一个文档集合中,则格式不支持它:

    gcloud beta firestore import INPUT_URI_PREFIX [--async] [--collection-ids=[COLLECTION_IDS,…]]