Migrer de l'édition Standard vers l'édition Enterprise

Pour migrer des données d'une base de données Firestore en édition Standard vers une base de données Firestore en édition Enterprise, nous vous recommandons d'utiliser l'une des options suivantes :

  • Les fonctionnalités d'importation et d'exportation. Les fichiers de données d'une opération d'importation sont compatibles avec les éditions Enterprise et Standard.

  • Le firestore-to-firestore Dataflow modèle. Le service Dataflow vous permet de créer des pipelines de données, et le firestore-to-firestore modèle crée un pipeline par lot entre les Cloud Firestore bases de données.

L'importation et l'exportation sont l'option la plus simple à exécuter avec moins d'options de configuration.

Le modèle Dataflow est plus personnalisable. Vous pouvez étendre le code du modèle pour effectuer des migrations partielles ou transformer des données. Vous pouvez également contrôler le nombre et la taille des nœuds de calcul.

Les deux options sont compatibles avec les migrations entre projets et régions.

Migrer des données avec l'exportation et l'importation

Pour migrer des données avec des opérations d'exportation et d'importation, consultez Exporter et importer des données. Pour déplacer des données vers une base de données dans un autre projet, consultez Déplacer des données entre projets.

Migrer des données avec le modèle Dataflow

Suivez les instructions ci-dessous pour migrer des données avec le firestore-to-firestore Dataflow modèle.

Avant de commencer

  1. Avant de commencer la migration des données, assurez-vous que la récupération à un moment précis (PITR) est activée dans la base de données source. Le job Dataflow utilise la PITR pour lire les données à un horodatage PITR. Si la PITR est désactivée, le job échoue s'il s'exécute pendant plus d'une heure.

  2. Attribuez les rôles requis décrits dans la section suivante.

Rôles requis

Pour migrer des données d'une base de données à une autre, attribuez les rôles suivants. Vous pouvez également obtenir les autorisations requises avec des rôles personnalisés ou d'autres rôles prédéfinis :

  1. Pour obtenir les autorisations nécessaires pour créer une base de données et accéder aux données Cloud Firestore, demandez à votre administrateur de vous attribuer le rôle IAM Propriétaire Cloud Datastore (roles/datastore.owner) sur votre projet.
  2. Pour accorder au Dataflow job un accès en lecture et en écriture à vos Cloud Firestore bases de données, attribuez au Dataflow worker service account (par exemple, PROJECT_NUMBER-compute@) le rôle IAM Utilisateur Cloud Datastore (roles/datastore.user) sur votre projet.

    Pour en savoir plus sur la sécurité Dataflow, consultez Sécurité et autorisations Dataflow.

Pour plus d'informations sur l'attribution de rôles IAM, consultez la page Gérer l'accès aux projets, aux dossiers et aux organisations.

1. Créer une base de données Firestore en édition Enterprise

Pour migrer des données d'une base de données en édition Standard vers une base de données en édition Enterprise, vous devez d'abord créer la base de données de destination en édition Enterprise. Consultez Créer une base de données.

2. Exécuter le Dataflow firestore-to-firestore modèle

Configurez et exécutez votre Dataflow job avec le firestore-to-firestore modèle. Les modèles permettent de migrer l'intégralité de la base de données ou uniquement des groupes de collections spécifiés.

Limites

Tenez compte des limites suivantes pour le modèle firestore-to-firestore Dataflow :

  • La base de données source doit être une base de données en édition Standard.
  • La migration lit les données à un moment de lecture spécifique. Nous vous suggérons d'activer la récupération à un moment précis (PITR) dans la base de données source. Si la PITR n'est pas activée, les données expirent au bout d'une heure, ce qui peut ne pas être suffisant pour que la migration des données se termine. La PITR étend la durée de conservation des données à sept jours.
  • Les index ne sont pas migrés.
  • Le job Dataflow ne migre pas les configurations de base de données telles que les règles de durée de vie (TTL), les sauvegardes, la PITR et les clés de chiffrement gérées par le client (CMEK).

    Vous devez configurer ces paramètres dans la nouvelle base de données. Pour améliorer la vitesse de la migration des données, attendez la fin de la migration pour configurer la TTL, les sauvegardes et la PITR dans la base de données de destination.

Les exemples suivants montrent comment exécuter le modèle à l'aide du Google Cloud CLI.

Migrer toutes les données

Pour migrer toutes les données, utilisez la commande suivante :

gcloud dataflow flex-template run "JOB_NAME" \
  --project "PROJECT" \
  --template-file-gcs-location gs://dataflow-templates-REGION_NAME/VERSION/flex/Cloud_Firestore_to_Firestore \
  --region REGION_NAME \
  --parameters "sourceProjectId=SOURCE_PROJECT_ID" \
  --parameters "sourceDatabaseId=SOURCE_DATABASE_ID" \
  --parameters "destinationProjectId=DESTINATION_PROJECT_ID" \
  --parameters "destinationDatabaseId=DESTINATION_DATABASE_ID" \
  --parameters "readTime=READ_TIME"

Remplacez les éléments suivants :

  • JOB_NAME : nom du job.
  • PROJECT : ID de votre Google Cloud projet.
  • REGION_NAME : emplacement où vous souhaitez exécuter le job Dataflow.Google Cloud Utilisez un emplacement proche de vos bases de données.
  • VERSION : version du modèle que vous souhaitez utiliser. Vous pouvez utiliser les valeurs suivantes :

  • SOURCE_PROJECT_ID : ID du projet source Google Cloud contenant la base de données Firestore en édition Standard.

  • SOURCE_DATABASE_ID : ID de la base de données Cloud Firestore source.

  • DESTINATION_PROJECT_ID : ID du projet de destination pour la nouvelle base de données.Google CloudCloud Firestore

  • DESTINATION_DATABASE_ID : ID de la base de données de destination Cloud Firestore.

  • READ_TIME: horodatage permettant de lire les données de la base de données source. Définissez un horodatage au format RFC 3339, avec une granularité à la minute, par exemple 2026-05-15T16:31:00.00Z.

    L'horodatage valide le plus ancien dépend de vos paramètres de récupération à un moment précis (PITR) Consultez Obtenir l'heure de la version la plus ancienne.

Migrer des groupes de collections spécifiés

Pour migrer uniquement certains groupes de collections, utilisez la commande suivante :

gcloud dataflow jobs run "JOB_NAME" \
  --project "PROJECT" \
  --gcs-location gs://dataflow-templates-REGION_NAME/VERSION/Cloud_Firestore_to_Firestore \
  --region REGION_NAME \
  --parameters "sourceProjectId=SOURCE_PROJECT_ID" \
  --parameters "sourceDatabaseId=SOURCE_DATABASE_ID" \
  --parameters "collectionGroupIds=COLLECTION_GROUP_IDS" \
  --parameters "destinationProjectId=DESTINATION_PROJECT_ID" \
  --parameters "destinationDatabaseId=DESTINATION_DATABASE_ID" \
  --parameters "readTime=READ_TIME"

Remplacez les éléments suivants :

  • JOB_NAME : nom du job.
  • PROJECT : ID de votre Google Cloud projet.
  • REGION_NAME : emplacement où vous souhaitez exécuter le job Dataflow.Google Cloud Utilisez un emplacement proche de vos bases de données.
  • VERSION : version du modèle que vous souhaitez utiliser. Vous pouvez utiliser les valeurs suivantes :

  • SOURCE_PROJECT_ID : ID du projet source Google Cloud contenant la base de données Firestore en édition Standard.

  • SOURCE_DATABASE_ID : ID de la base de données Cloud Firestore source.

  • COLLECTION_GROUP_IDS : liste d'ID de groupes de collections à migrer, séparés par une virgule.

    Les sous-collections ne sont pas incluses de manière récursive. Par exemple, si vous spécifiez le groupe de collections users, la migration n'inclura pas de sous-collection messages dans /users/userid/messages sauf si vous spécifiez également le groupe de collections messages.

  • DESTINATION_PROJECT_ID : ID du projet de destination pour la nouvelle base de données.Google CloudCloud Firestore

  • DESTINATION_DATABASE_ID : ID de la base de données de destination Cloud Firestore.

  • READ_TIME : horodatage permettant de lire les données de la base de données source. Définissez un horodatage au format RFC 3339, avec une granularité à la minute, par exemple 2026-05-15T16:31:00.00Z.

    L'horodatage valide le plus ancien dépend de vos paramètres de récupération à un moment précis (PITR) Consultez Obtenir l'heure de la version la plus ancienne.

3. Configurer la base de données

Le job firestore-to-firestore ne migre que les données. Les index et autres paramètres de base de données ne sont pas migrés. En plus de la migration des données, envisagez de configurer les éléments suivants dans la nouvelle base de données :

Une fois votre base de données configurée, vous pouvez continuer à tester votre application avec la nouvelle base de données. Pour une migration complète, mettez à jour vos applications afin qu'elles utilisent la nouvelle base de données.

Dépannage

Pour les bases de données volumineuses, le job peut échouer s'il lit trop de données à la fois. Pour résoudre le problème :

Étape suivante