Gérer les Branch
Créez et gérez des branches pour prendre en charge différents flux de travail de développement, scénarios de test et environnements de production. Les branches vous permettent de travailler avec des environnements de base de données isolés sans affecter la production.
À propos des autorisations de gestion des Branch :
- Pour créer, supprimer ou mettre à jour des branches, vous avez besoin de l'autorisation CAN MANAGE sur le projet. Consultez Gérer les autorisations du projet.
- Pour créer des bases de données ou des rôles au sein d'une Branch, ou pour afficher et lister les Branch et les Ressources de Branch, vous avez besoin de la permission CAN USE ou CAN MANAGE sur le projet.
- Pour en savoir plus sur le fonctionnement du Branch, y compris les relations parent-enfant, le stockage en copie sur écriture et les stratégies de Branch, consultez Branch de base de données.
Comprendre les Branch
Branch overview
Une Branch dans Lakebase Postgres est un environnement de base de données indépendant qui partage le stockage avec sa Branch parente via la copie à l'écriture. Les Branch vous permettent de :
- Créez des environnements de développement et de test isolés
- Tester des applications avec des jeux de données réalistes
- Mettre en œuvre les workflows de développement de base de données
Branch types et stratégies
Lors de la création d'une branch, vous pouvez choisir parmi plusieurs options en fonction de vos besoins spécifiques. Chaque option crée une branch avec des caractéristiques de données et des cas d'utilisation différents.
Option | Description |
|---|---|
Données et schéma de la Branch | Crée une Branch à partir du dernier état de votre Branch parente. Idéal pour le développement, les tests avec des données actuelles et les branches de fonctionnalités. |
Données et schéma de la Branch à partir d'un point antérieur dans le temps | Crée une branch à partir d'un moment précis dans votre fenêtre de restauration. Utile pour la récupération à un moment précis, l'analyse historique et l'interrogation de données à un moment précis. Utilisez le sélecteur de date pour sélectionner le moment précis désiré. |
Branch expiration
L’expiration des Branch vous permet de définir des Timestamp de suppression automatique sur les Branch. Lorsqu’une Branch atteint sa date d’expiration, elle est automatiquement supprimée. Cette fonctionnalité permet de gérer les Branch temporaires et de réduire les coûts de stockage.
Pourquoi utiliser l'expiration de Branch
L'expiration de Branch est idéale pour les branches temporaires qui ont des durées de vie prévisibles :
- Environnements CI/CD : Testez les branches qui doivent être nettoyées après l'achèvement du pipeline.
- **Développement de fonctionnalités :** Branch de fonctionnalités à durée limitée avec des échéances connues.
- Tests automatisés : environnements de test éphémères créés par des scripts.
- Workflows de développement : environnements temporaires qui n'ont pas besoin de persister indéfiniment.
Sans expiration automatique, ces Branch s'accumulent au fil du temps, augmentant les coûts de stockage et le désordre du projet.
Exemples de durées d'expiration : pipelines CI/CD (de 2 à 4 heures), démos (de 24 à 48 heures), développement de fonctionnalités (de 1 à 7 jours), tests à long terme (30 jours).
Fonctionnement de l'expiration de la branch
L'expiration de Branch utilise un modèle de durée de vie (TTL). Lorsque vous définissez une expiration sur une Branch, vous déterminez combien de temps la Branch doit exister avant sa suppression automatique.
Lorsque vous définissez un Timestamp d'expiration sur une Branch :
- Le système stocke à la fois le timestamp d'expiration (la date et l'heure prévues où la branch sera supprimée) et l'intervalle TTL (la durée entre la création ou la mise à jour et l'expiration)
- Un processus en arrière-plan surveille les branches et les supprime une fois leur délai d'expiration atteint.
- Si vous Reset une Branch à partir de son parent, le compte à rebours TTL redémarre en utilisant l’intervalle d’origine
La suppression de la Branch est permanente et ne peut pas être récupérée. Toutes les données associées et les ressources de compute sont également supprimées. Vérifiez attentivement les délais d'expiration avant de les définir.
Branch expiration restrictions
Pour maintenir l'intégrité du système, les Timestamp d'expiration ne peuvent pas être ajoutés à :
- Branches protégées : impossible d'expirer les branches protégées ou de protéger les branches avec expiration.
- Branch default : impossible de faire expirer les Branch default ou de définir les Branch expirantes comme default.
- Branches parentes : impossible d'expirer les branches qui ont des enfants ou de créer des enfants à partir de branches en cours d'expiration.
Lorsqu'une branch expire et est supprimée, toutes les ressources compute associées sont également supprimées. Assurez-vous que toutes les charges de travail critiques sont migrées avant l'expiration.
Période d'expiration maximale
La période d'expiration maximale est de 30 jours à partir de l'heure actuelle. Si vous avez besoin qu'une Branch persiste plus de 30 jours, vous pouvez mettre à jour le Timestamp d'expiration avant qu'elle n'expire pour prolonger sa durée de vie.
Créer et gérer des Branch
Créer une Branch
Pour créer une Branch :
- UI
- Python SDK
- Java SDK
- CLI
- curl
-
Accédez à la page Branches de votre projet dans l'application Lakebase.
-
Cliquez sur Créer une branch et configurez les options de votre branch :
- Saisissez un nom de Branch (obligatoire)
- Sélectionnez une option de branche ( Branch data and schema ou Branch data and schema from a past point in time ).
- En option, définissez une expiration à l'aide de la liste déroulante Suppression automatique : choisissez un préréglage ( Après 1 heure , Après 1 jour ou Après 7 jours ), une valeur personnalisée (jusqu'à 30 jours) ou Jamais pour aucune expiration. Veuillez consulter l'expiration de Branch pour plus de détails.
-
Cliquez sur **Créer** pour créer la Branch.

Spécifiez une politique d'expiration à l’aide de l’une des options suivantes dans BranchSpec:
ttl: Un objetDuration(exemple :Duration(seconds=604800)pour 7 jours)expire_time: Une expiration spécifiquedatetimeno_expiry=True: Pour les Branch qui ne devraient jamais expirer
from databricks.sdk import WorkspaceClient
from databricks.sdk.service.postgres import Branch, BranchSpec, Duration
w = WorkspaceClient()
# Create branch with 7-day expiration
branch_spec = BranchSpec(
ttl=Duration(seconds=604800), # 7 days
source_branch="projects/my-project/branches/production"
)
branch = Branch(spec=branch_spec)
result = w.postgres.create_branch(
parent="projects/my-project",
branch=branch,
branch_id="development"
).wait()
print(f"Branch created: {result.name}")
print(f"Expires: {result.status.expire_time}")
Pour créer une Branch permanente sans expiration, définissez no_expiry=True dans le BranchSpec:
# Create a permanent branch (no expiration)
branch_spec = BranchSpec(
source_branch="projects/my-project/branches/production",
no_expiry=True
)
branch = Branch(spec=branch_spec)
result = w.postgres.create_branch(
parent="projects/my-project",
branch=branch,
branch_id="staging"
).wait()
print(f"Branch created: {result.name}")
Spécifiez une politique d'expiration à l’aide de l’une des options suivantes dans BranchSpec:
setTtl(Duration): Un objetcom.google.protobuf.Duration(exemple :Duration.newBuilder().setSeconds(604800L).build()pour 7 jours)setExpireTime(Timestamp): Une expiration spécifiquecom.google.protobuf.TimestampsetNoExpiry(true): Pour les Branch qui ne devraient jamais expirer
import com.databricks.sdk.WorkspaceClient;
import com.databricks.sdk.service.postgres.*;
import com.google.protobuf.Duration;
WorkspaceClient w = new WorkspaceClient();
// Create branch with 7-day expiration
BranchSpec branchSpec = new BranchSpec()
.setTtl(Duration.newBuilder().setSeconds(604800L).build()) // 7 days
.setSourceBranch("projects/my-project/branches/production");
Branch branch = new Branch().setSpec(branchSpec);
Branch result = w.postgres().createBranch(
new CreateBranchRequest()
.setParent("projects/my-project")
.setBranch(branch)
.setBranchId("development")
).waitForCompletion();
System.out.println("Branch created: " + result.getName());
System.out.println("Expires: " + result.getStatus().getExpireTime());
Pour créer une Branch permanente sans expiration, définissez no_expiry=true dans le BranchSpec:
// Create a permanent branch (no expiration)
BranchSpec branchSpec = new BranchSpec()
.setSourceBranch("projects/my-project/branches/production")
.setNoExpiry(true);
Branch branch = new Branch().setSpec(branchSpec);
Branch result = w.postgres().createBranch(
new CreateBranchRequest()
.setParent("projects/my-project")
.setBranch(branch)
.setBranchId("staging")
).waitForCompletion();
System.out.println("Branch created: " + result.getName());
Spécifiez une politique d’expiration à l’aide de l’un des champs suivants dans le JSON spec :
ttl: Chaîne de durée (exemple :"604800s"pour 7 jours)expire_time: Timestamp ISO 8601 (exemple :"2025-01-15T10:30:00Z")no_expiry: true: Pour les Branch qui ne devraient jamais expirer
# Create a branch with 7-day expiration
databricks postgres create-branch projects/my-project development \
--json '{
"spec": {
"source_branch": "projects/my-project/branches/production",
"ttl": "604800s"
}
}'
# Create a permanent branch (no expiration)
databricks postgres create-branch projects/my-project staging \
--json '{
"spec": {
"source_branch": "projects/my-project/branches/production",
"no_expiry": true
}
}'
Spécifiez une stratégie d'expiration en utilisant l'un des champs suivants dans le JSON du corps de la requête :
ttl: Chaîne de durée (exemple :"604800s"pour 7 jours)expire_time: Timestamp ISO 8601 (exemple :"2025-01-15T10:30:00Z")no_expiry: true: Pour les Branch qui ne devraient jamais expirer
# Create a branch with 7-day expiration
curl -X POST "$WORKSPACE/api/2.0/postgres/projects/my-project/branches?branch_id=development" \
-H "Authorization: Bearer ${DATABRICKS_TOKEN}" \
-H "Content-Type: application/json" \
-d '{
"spec": {
"source_branch": "projects/my-project/branches/production",
"ttl": "604800s"
}
}' | jq
# Create a permanent branch (no expiration)
curl -X POST "$WORKSPACE/api/2.0/postgres/projects/my-project/branches?branch_id=staging" \
-H "Authorization: Bearer ${DATABRICKS_TOKEN}" \
-H "Content-Type: application/json" \
-d '{
"spec": {
"source_branch": "projects/my-project/branches/production",
"no_expiry": true
}
}' | jq
Afficher les Branches
Afficher dans l'interface utilisateur
Pour afficher toutes les branches de votre projet Lakebase, sélectionnez votre projet dans l'application Lakebase et accédez à Branches dans la navigation de gauche.
Le tableau des Branches affiche des informations clés sur chaque Branch :

La page des branches affiche un tableau complet avec des informations sur chaque branch de votre projet :
Colonne | Description |
|---|---|
Branche | Le nom de la Branch. La Branch default montre un libellé "DEFAULT". |
Parent | Indique la Branch parente à partir de laquelle cette Branch a été créée, ce qui vous aide à suivre votre hiérarchie de Branches. |
Temps actif | Nombre d'heures d'activité du compute de la branch. |
Compute principal | Affiche la taille et l'état actuels du compute (tel que IDLE ou ACTIVE) pour le compute de la Branch. |
Taille des données | La taille des données de la branch. N'inclut pas l'historique. |
Créé par | L'utilisateur ou le service qui a créé la Branch. |
Dernière activité | Indique quand le compute de la Branch a été actif pour la dernière fois. |
Cliquez sur n'importe quelle Branch dans le tableau pour afficher la page d'aperçu de la Branch, qui affiche des informations détaillées sur la Branch sélectionnée :

La page d'aperçu de la Branch affiche des informations détaillées en haut, y compris les métriques clés et les métadonnées :
Champ | Description |
|---|---|
ID | L'identifiant unique de la Branch (avec le préfixe br-) |
Date de création : | La date et l'heure de création de la Branch. |
Heures de compute | Total d'heures de compute utilisées par la branch |
Heures actives | Heures de compute utilisées depuis une date spécifique |
Taille des données | La taille des données de la Branch (n'inclut pas l'historique) |
Créé par | L'utilisateur qui a créé la Branch |
La page de présentation de la Branch comprend plusieurs tabs pour gérer différents aspects de la Branch :
Tab | Description |
|---|---|
compute | Visualisez et gérez le compute principal de la Branch. Consultez Gérer les computes. |
Rôles & Bases de données | Gérez les rôles de base de données et les bases de données associées à la Branch. Voir Gérer les bases de données et Gérer les rôles. |
Branch enfants | Affichez toutes les Branches qui ont été créées à partir de cette Branch |
Obtenir une Branch par programmation
Pour obtenir des détails sur une Branch spécifique à l'aide de l'API Postgres :
- Python SDK
- Java SDK
- CLI
- curl
from databricks.sdk import WorkspaceClient
w = WorkspaceClient()
# Get branch details
branch = w.postgres.get_branch(
name="projects/my-project/branches/development"
)
print(f"Branch: {branch.name}")
print(f"Protected: {branch.status.is_protected}")
print(f"Default: {branch.status.default}")
print(f"State: {branch.status.current_state}")
print(f"Size: {branch.status.logical_size_bytes} bytes")
import com.databricks.sdk.WorkspaceClient;
import com.databricks.sdk.service.postgres.Branch;
WorkspaceClient w = new WorkspaceClient();
// Get branch details
Branch branch = w.postgres().getBranch("projects/my-project/branches/development");
System.out.println("Branch: " + branch.getName());
System.out.println("Protected: " + branch.getStatus().getIsProtected());
System.out.println("Default: " + branch.getStatus().getDefault());
System.out.println("State: " + branch.getStatus().getCurrentState());
System.out.println("Size: " + branch.getStatus().getLogicalSizeBytes() + " bytes");
# Get branch details
databricks postgres get-branch projects/my-project/branches/development --output json | jq
curl "$WORKSPACE/api/2.0/postgres/projects/my-project/branches/development" \
-H "Authorization: Bearer ${DATABRICKS_TOKEN}" | jq
Lister par programme
Pour lister toutes les branches dans un projet à l’aide de l’API PostgreSQL :
- Python SDK
- Java SDK
- CLI
- curl
from databricks.sdk import WorkspaceClient
w = WorkspaceClient()
# List all branches in a project
project_name = "projects/my-project"
branches = list(w.postgres.list_branches(parent=project_name))
for branch in branches:
print(f"Branch: {branch.name}")
print(f" Default: {branch.status.default}")
print(f" Protected: {branch.status.is_protected}")
import com.databricks.sdk.WorkspaceClient;
import com.databricks.sdk.service.postgres.*;
WorkspaceClient w = new WorkspaceClient();
// List all branches in a project
String projectName = "projects/my-project";
for (Branch branch : w.postgres().listBranches(projectName)) {
System.out.println("Branch: " + branch.getName());
System.out.println(" Default: " + branch.getStatus().getDefault());
System.out.println(" Protected: " + branch.getStatus().getIsProtected());
}
# List all branches in a project
databricks postgres list-branches projects/my-project --output json | jq
curl "$WORKSPACE/api/2.0/postgres/projects/my-project/branches" \
-H "Authorization: Bearer ${DATABRICKS_TOKEN}" \
-H "Content-Type: application/json" | jq
Comparer les schémas de Branch
Examinez les différences de schéma entre une Child Branch et sa Parent Branch avant de fusionner les modifications. Le diff de schéma affiche une comparaison SQL DDL côte à côte qui met en évidence les objets de base de données ajoutés, supprimés ou modifiés tels que les tables, les colonnes, les index et les contraintes.
Pour comparer les schémas entre les Branch :
-
Accédez à une page de présentation de Branch enfant dans l'application Lakebase.
-
Dans la section **Branch parente**, cliquez sur **Diff de schéma**.
-
Dans la boîte de dialogue Schema Diff :
- Base : sélectionnez la Branch de base pour la comparaison (par default, la Branch parente).
- Base de données : Sélectionnez la base de données à comparer.
- Comparer : Sélectionnez la branch à comparer avec la base (default à la branch enfant actuelle).
-
Cliquez sur Comparer .
Comprenez les résultats de la différence
Lorsque les schémas diffèrent, la vue de comparaison affiche une comparaison côte à côte des instructions DDL SQL :

Les lignes rouges indiquent ce qui a été supprimé ou modifié de la Branch de base, les lignes vertes indiquent ce qui a été ajouté ou modifié dans la Branch de comparaison. Le différentiel capture les modifications apportées aux définitions de table, aux colonnes, aux contraintes, aux index et aux autres objets de base de données.
S'il n'y a pas de différences entre les {glossary:Branch}es sélectionnées, vous voyez un message de succès confirmant que les schémas sont synchronisés :

Utilisez la différence de schéma pour la validation avant la Merge, le suivi du développement, la détection de la drift et la documentation des changements. Pour voir la différence de schéma dans un workflow de développement complet, consultez le Tutoriel : Branch-based development workflow.
La différence de schéma compare uniquement le schéma de la base de données (DDL), et non le contenu des données. La comparaison utilise les dernières données disponibles (tête) des deux branches.
Mettre à jour les paramètres de la Branch
Renommer une branch
Le renommage d'une branch n'est actuellement pas pris en charge par l'interface utilisateur ou l'API. L'option Renommer la Branch apparaît dans le menu de la Branch dans l'interface utilisateur, mais est désactivée.
Définir comme default
Chaque projet Lakebase est créé avec une branch appelée production, mais vous pouvez désigner n'importe quelle branch comme default. La Branch default est exempte de la limite de compute actifs simultanément, garantissant ainsi qu'elle reste disponible à tout moment.
La définition d'une Branch par default n'est pas prise en charge via l'API.
Pour définir une branch par default :
- Accédez à la page Branches de votre projet dans l'application Lakebase.
- Cliquez sur le menu
à côté de la branch que vous souhaitez définir par default.
- Sélectionnez Set as default et confirmez l'opération.
Définir comme protégé
Les branches protégées vous aident à protéger les branches critiques contre les modifications ou les suppressions accidentelles. Les Branch protégées ne peuvent pas être supprimées, Reset ou archivées en raison de l'inactivité. Les projets avec des Branch protégées et leurs computes associés ne peuvent pas non plus être supprimés.
Pour définir une Branch comme protégée :
- UI
- Python SDK
- Java SDK
- CLI
- curl
- Accédez à **Branches** dans l'application Lakebase et sélectionnez la branche que vous souhaitez protéger.
- Cliquez sur « Protect » et confirmez votre sélection.

Votre Branch est maintenant désignée comme protégée, comme l'indique l'icône de bouclier qui apparaît à côté du nom de la Branch.
from databricks.sdk import WorkspaceClient
from databricks.sdk.service.postgres import Branch, BranchSpec, FieldMask
w = WorkspaceClient()
# Set a branch as protected
branch_name = "projects/my-project/branches/production"
updated_spec = BranchSpec(is_protected=True)
updated_branch = Branch(name=branch_name, spec=updated_spec)
update_mask = FieldMask(field_mask=["spec.is_protected"])
update_op = w.postgres.update_branch(
name=branch_name,
branch=updated_branch,
update_mask=update_mask
)
# Wait for the update to complete
result = update_op.wait()
print(f"Branch {result.name} is now protected: {result.status.is_protected}")
Pour supprimer la protection, définissez is_protected=False dans le BranchSpec.
import com.databricks.sdk.WorkspaceClient;
import com.databricks.sdk.service.postgres.*;
import com.google.protobuf.FieldMask;
WorkspaceClient w = new WorkspaceClient();
// Set a branch as protected
String branchName = "projects/my-project/branches/production";
BranchSpec updatedSpec = new BranchSpec().setIsProtected(true);
Branch updatedBranch = new Branch()
.setName(branchName)
.setSpec(updatedSpec);
FieldMask updateMask = FieldMask.newBuilder()
.addPaths("spec.is_protected")
.build();
Branch result = w.postgres().updateBranch(
new UpdateBranchRequest()
.setName(branchName)
.setBranch(updatedBranch)
.setUpdateMask(updateMask)
).waitForCompletion();
System.out.println("Branch " + result.getName() + " is now protected: " +
result.getStatus().getIsProtected());
Pour supprimer la protection, définissez setIsProtected(false) dans le BranchSpec.
# Set a branch as protected
databricks postgres update-branch projects/my-project/branches/production spec.is_protected \
--json '{
"spec": {
"is_protected": true
}
}'
Pour supprimer la protection, définissez "is_protected": false dans le JSON.
curl -X PATCH "$WORKSPACE/api/2.0/postgres/projects/my-project/branches/production?update_mask=spec.is_protected" \
-H "Authorization: Bearer ${DATABRICKS_TOKEN}" \
-H "Content-Type: application/json" \
-d '{
"name": "projects/my-project/branches/production",
"spec": {
"is_protected": true
}
}' | jq
Pour supprimer la protection, définissez "is_protected": false dans le corps de la requête.
Pour plus de détails sur les branches protégées, y compris la gestion des mots de passe pour les branches enfants, consultez Protected Branch.
Mettre à jour l'expiration
Vous pouvez définir un timestamp d'expiration lors de la création d'une branch ou le mettre à jour ultérieurement.
Lors de la création d'une Branch
- Accédez à la page Branches de votre projet dans l'application Lakebase.
- Cliquez sur Créer une Branch , saisissez un nom de Branch (obligatoire), configurez les options de votre Branch et sélectionnez une option Suppression automatique (un préréglage, une valeur personnalisée jusqu'à 30 jours, ou Jamais pour aucune expiration).
- Cliquez sur Créer .
Mise à jour de l'expiration de la branch
Pour mettre à jour ou supprimer un Timestamp d'expiration sur une Branch existante :
- UI
- Python SDK
- Java SDK
- CLI
- curl
- Accédez à la page Branches de votre projet dans l'application Lakebase.
- Cliquez sur le
menu à côté de la Branch et sélectionnez **Mettre à jour l'expiration**.
- Sélectionnez une nouvelle date et heure ou décochez Expiration de la Branch le pour supprimer l'expiration, puis cliquez sur Enregistrer .

from databricks.sdk import WorkspaceClient
from databricks.sdk.service.postgres import Branch, BranchSpec, Duration, FieldMask
w = WorkspaceClient()
# Update branch expiration to 14 days
branch_name = "projects/my-project/branches/development"
branch_spec = BranchSpec(
is_protected=False,
ttl=Duration(seconds=1209600) # 14 days
)
branch = Branch(
name=branch_name,
spec=branch_spec
)
result = w.postgres.update_branch(
name=branch_name,
branch=branch,
update_mask=FieldMask(field_mask=["spec.is_protected", "spec.expiration"])
).wait()
print(f"Updated expiration: {result.status.expire_time}")
Pour supprimer l'expiration, définissez no_expiry=True dans le BranchSpec et incluez "spec.expiration" dans le masque de mise à jour.
import com.databricks.sdk.WorkspaceClient;
import com.databricks.sdk.service.postgres.*;
import com.google.protobuf.Duration;
import com.google.protobuf.FieldMask;
WorkspaceClient w = new WorkspaceClient();
// Update branch expiration to 14 days
String branchName = "projects/my-project/branches/development";
BranchSpec branchSpec = new BranchSpec()
.setIsProtected(false)
.setTtl(Duration.newBuilder().setSeconds(1209600L).build()); // 14 days
Branch branch = new Branch()
.setName(branchName)
.setSpec(branchSpec);
Branch result = w.postgres().updateBranch(
new UpdateBranchRequest()
.setName(branchName)
.setBranch(branch)
.setUpdateMask(FieldMask.newBuilder()
.addPaths("spec.is_protected")
.addPaths("spec.expiration")
.build())
).waitForCompletion();
System.out.println("Updated expiration: " + result.getStatus().getExpireTime());
Pour supprimer l'expiration, définissez setNoExpiry(true) dans le BranchSpec et incluez "spec.expiration" dans le masque de mise à jour.
# Update branch expiration to 14 days
databricks postgres update-branch projects/my-project/branches/development spec.is_protected,spec.expiration \
--json '{
"spec": {
"is_protected": false,
"ttl": "1209600s"
}
}'
Pour supprimer l'expiration, définissez "no_expiry": true dans le JSON.
# Update branch expiration to 14 days
curl -X PATCH "$WORKSPACE/api/2.0/postgres/projects/my-project/branches/development?update_mask=spec.is_protected,spec.expiration" \
-H "Authorization: Bearer ${DATABRICKS_TOKEN}" \
-H "Content-Type: application/json" \
-d '{
"name": "projects/my-project/branches/development",
"spec": {
"is_protected": false,
"ttl": "1209600s"
}
}' | jq
Pour supprimer l'expiration, définissez "no_expiry": true dans le corps de la requête.
Afficher l'expiration de la Branch
Pour vérifier si une Branch a une date d'expiration définie, accédez à la page Branches de votre projet et cliquez sur la Branch souhaitée. Les informations d'expiration sont affichées dans les détails de la Branch.
Reset de la Branch à partir du parent
Vous pouvez Reset une Branch pour la mettre à jour instantanément avec le schéma et les données les plus récents de sa Branch parente. Cela vous aide à récupérer des problèmes, à start le développement de nouvelles fonctionnalités, ou à maintenir les différentes Branches de votre environnement synchronisées.
Exemple de scénario
Lorsque vous travaillez avec des Branches, vous pourriez vous retrouver dans une situation où vous devez mettre à jour votre Branch de travail avec les dernières données de votre Branch parente.
Par exemple, disons que vous avez deux branches enfants staging et development bifurquées de votre Branch production. Vous avez travaillé sur la Branch development et constatez qu'elle est maintenant trop obsolète par rapport à production.
Vous n'avez aucune modification de schéma dans development à prendre en compte ou à conserver ; vous voulez juste un refresh rapide des données. Vous pouvez effectuer un Reset propre et instantané aux dernières données du parent en une seule Opération, ce qui vous évite la complication de créer et de restaurer manuellement des Branches.
Comment fonctionne le Reset à partir du parent
Lorsque vous Reset une branch vers son parent, les données et le schéma sont entièrement remplacés par les données et le schéma les plus récents de son parent.
Points clés :
- Vous ne pouvez Reset une Branch qu'avec les données les plus récentes de son parent. Les Reset à un point dans le temps basés sur le Timestamp sont possibles en utilisant la restauration à un point dans le temps, une fonctionnalité similaire avec quelques différences : la restauration à un point dans le temps crée une nouvelle Branch et est davantage destinée à la récupération de données qu'au workflow de développement.
- Ce Reset est un écrasement complet, pas un refresh ou un Merge. Toutes les modifications locales apportées à la Branch enfant sont perdues lors de cette Reset.
- Les connexions existantes sont temporairement interrompues pendant le Reset. Cependant, vos détails de connexion ne changent pas. Toutes les connexions sont rétablies dès que le Reset est effectué.
- Les Branches racines (comme la Branch
productionde votre projet) ne peuvent pas être Resets car elles n'ont pas de Branch parente vers laquelle se Reset.
Reset une Branch à partir de son parent
To Reset a Branch to its parent:
- Accédez à la page Branches de votre projet dans l'application Lakebase.
- Cliquez sur le menu
à côté de la Branch que vous souhaitez Reset et sélectionnez Reset à partir du parent .
- Confirmez l'opération de Reset.

Si la Branch a ses propres Branches enfants, le Reset est bloqué. Vous devez d'abord supprimer les Branch enfants avant de pouvoir Reset la Branch parente.
Supprimer une Branch
La suppression d'une Branch est une action permanente qui ne peut pas être annulée. La suppression d'une Branch supprime également :
- Toutes les bases de données qui appartiennent à la branch
- Tous les rôles associés à la Branch
- Les Ressources de compute associées à la Branch
- Toutes les données et les modifications spécifiques à cette Branch
Vous ne pouvez pas supprimer une Branch qui contient des Branches enfants. Les branches enfants doivent être supprimées en premier.
Pour supprimer une Branch :
- UI
- Python SDK
- Java SDK
- CLI
- curl
- Accédez à la page Branches de votre projet dans l'application Lakebase.
- Cliquez sur le menu
à côté de la Branch que vous souhaitez supprimer et sélectionnez Supprimer la Branch .
- Saisissez le nom de la Branch pour confirmer la suppression et cliquez sur Supprimer .
from databricks.sdk import WorkspaceClient
w = WorkspaceClient()
# Delete branch
w.postgres.delete_branch(
name="projects/my-project/branches/development"
).wait()
print("Branch deleted")
L'opération de suppression est asynchrone. La méthode .wait() bloque jusqu'à ce que la suppression soit terminée. Toutes les ressources de branch (bases de données, rôles, compute et données) seront définitivement supprimées.
import com.databricks.sdk.WorkspaceClient;
WorkspaceClient w = new WorkspaceClient();
// Delete branch
w.postgres().deleteBranch("projects/my-project/branches/development")
.waitForCompletion();
System.out.println("Branch deleted");
L'opération de suppression est asynchrone. La méthode waitForCompletion() bloque jusqu'à ce que la suppression soit terminée. Toutes les ressources de branch (bases de données, rôles, compute et données) seront définitivement supprimées.
# Delete a branch
databricks postgres delete-branch projects/my-project/branches/development
Cette commande s'exécute immédiatement. La Branch et toutes ses ressources seront supprimées définitivement.
curl -X DELETE "$WORKSPACE/api/2.0/postgres/projects/my-project/branches/development" \
-H "Authorization: Bearer ${DATABRICKS_TOKEN}" | jq
Réponse :
{
"name": "projects/my-project/branches/development/operations/...",
"done": true,
"response": {
"@type": "type.googleapis.com/google.protobuf.Empty"
}
}
Limite des branches désarchivées
La limite des Branches non archivées plafonne le nombre de Branches pouvant rester simultanément dans un état actif (non archivé). Lorsque les Branches sont inactives pendant une période prolongée, elles peuvent être automatiquement archivées afin d'optimiser l'utilisation des Ressources. La limite est de 10 Branch non archivées par projet.
Les Branches archivées peuvent être désarchivées si nécessaire, mais le nombre total de Branches actives non archivées ne peut pas dépasser cette limite.
Important : Les branches protégées et la branche default sont exemptes d'archivage automatique et restent disponibles en permanence.