如何将我的 Firestore 数据库从 Google 存储桶导出到 Json 文件中
How can I export my Firestore database from a Google Storage Bucket into a Json file
情况如下:我有一个 Firestore 数据库。我每天将其下载到 Google 云存储桶作为备份。如果我想在本地下载它,我使用这个命令 gsutil -m cp -r gs://BUCKET_PATH "DESTINATION_PATH"
来完成,它工作正常。
我的问题:我下载的Bucket的格式是LevelDB(我认为)。在我的机器上,它看起来像这样:
例如,这是我通过 Google 存储下载时在 Firestore 中的 /users
collection。在该文件夹中,我有多个二进制文件(“output-...”)和一个元数据文件(此处:“all_namespaces_kind_users”)。
我的目标:我希望能够在 json 文件中读取我的数据库。
我的尝试:
- 我尝试使用此转换器:https://github.com/Venryx/firestore-leveldb-tools 但它使用 Python2 和一些旧的 google 库。使用此转换器,我必须在本地下载 SDK(见下文)。
#repoRoot = os.getcwd()
repoRoot = os.path.dirname(os.path.realpath(__file__))
# import google sdks
sys.path.append(os.path.join(repoRoot, 'SDKs/google_appengine'))
sys.path.append(os.path.join(repoRoot, 'SDKs/google-cloud-sdk/lib/third_party'))
from google.appengine.api.files import records
from google.appengine.datastore import entity_pb
from google.appengine.api import datastore
- 使用先例转换器,我尝试使用这些建议将其更新为 Python3:https://github.com/Venryx/firestore-leveldb-tools/issues/1#issuecomment-674563473。我成功替换了第一个导入
from google.appengine.api.files import records
但没有替换另外两个。
- 对于另外两个:
from google.appengine.datastore import entity_pb
和 from google.appengine.api import datastore
,我看到了这个:https://pypi.org/project/protobuf-cloud-datastore-translator/ 但我不完全理解它。
我的问题:如何将我的 Firestore 数据库(存储在 Google 存储桶中)转换为 json 文件?
也许有人有完全不同的建议方法?还是我应该坚持我的方式?在那种情况下,我怎样才能使用更新的 google 库将转换器转换为 Python3?
奖金问题:h**l 怎么没有 Google 一个干净的解决方案? (还是我傻?)
我在 Python 3 中创建了一个转换器,可以将 firestore 导出文件转换为 JSON 文件 firestore-export-json。该软件包提供了一个简单的 CLI 命令来隐藏文件。
fs_to_json [path_to_source_dir] -d [path_to_destination]
情况如下:我有一个 Firestore 数据库。我每天将其下载到 Google 云存储桶作为备份。如果我想在本地下载它,我使用这个命令 gsutil -m cp -r gs://BUCKET_PATH "DESTINATION_PATH"
来完成,它工作正常。
我的问题:我下载的Bucket的格式是LevelDB(我认为)。在我的机器上,它看起来像这样:
例如,这是我通过 Google 存储下载时在 Firestore 中的 /users
collection。在该文件夹中,我有多个二进制文件(“output-...”)和一个元数据文件(此处:“all_namespaces_kind_users”)。
我的目标:我希望能够在 json 文件中读取我的数据库。
我的尝试:
- 我尝试使用此转换器:https://github.com/Venryx/firestore-leveldb-tools 但它使用 Python2 和一些旧的 google 库。使用此转换器,我必须在本地下载 SDK(见下文)。
#repoRoot = os.getcwd()
repoRoot = os.path.dirname(os.path.realpath(__file__))
# import google sdks
sys.path.append(os.path.join(repoRoot, 'SDKs/google_appengine'))
sys.path.append(os.path.join(repoRoot, 'SDKs/google-cloud-sdk/lib/third_party'))
from google.appengine.api.files import records
from google.appengine.datastore import entity_pb
from google.appengine.api import datastore
- 使用先例转换器,我尝试使用这些建议将其更新为 Python3:https://github.com/Venryx/firestore-leveldb-tools/issues/1#issuecomment-674563473。我成功替换了第一个导入
from google.appengine.api.files import records
但没有替换另外两个。 - 对于另外两个:
from google.appengine.datastore import entity_pb
和from google.appengine.api import datastore
,我看到了这个:https://pypi.org/project/protobuf-cloud-datastore-translator/ 但我不完全理解它。
我的问题:如何将我的 Firestore 数据库(存储在 Google 存储桶中)转换为 json 文件? 也许有人有完全不同的建议方法?还是我应该坚持我的方式?在那种情况下,我怎样才能使用更新的 google 库将转换器转换为 Python3?
奖金问题:h**l 怎么没有 Google 一个干净的解决方案? (还是我傻?)
我在 Python 3 中创建了一个转换器,可以将 firestore 导出文件转换为 JSON 文件 firestore-export-json。该软件包提供了一个简单的 CLI 命令来隐藏文件。
fs_to_json [path_to_source_dir] -d [path_to_destination]