Aller au contenu principal

Tutoriel : Workflow de développement basé sur les Branch

Découvrez comment utiliser des Branches comme les Branches Git, donnant à chaque développeur une Branch isolée pour un travail indépendant, puis Reset pour rester synchronisé.

Prérequis

  • Un projet Lakebase avec une production Branch (le default)
  • Une Branch development créée à partir de production pour le travail de développement partagé
  • Une familiarité de base avec SQL et Postgres

Configurez votre schéma de départ

Avant de créer votre Branch de développeur, configurez un schéma simple sur la Branch de développement. Ceci sert de point de départ partagé à partir duquel tous les développeurs dériveront. Lorsque vous créez votre personnelle Branch, elle hérite instantanément de ce schéma par copie sur écriture.

  1. Accédez à votre branch development dans l'interface utilisateur Lakebase.
  2. Ouvrez l'éditeur SQL.
  3. Créer une table d'utilisateurs de base avec des exemples de données :
SQL
CREATE TABLE users (
id SERIAL PRIMARY KEY,
email TEXT NOT NULL UNIQUE,
created_at TIMESTAMP DEFAULT NOW()
);

INSERT INTO users (email) VALUES
('alice@example.com'),
('bob@example.com'),
('charlie@example.com');

Créer votre Branch de développeur

Chaque développeur de votre équipe peut avoir une Branch de longue durée pour le travail en cours. Reset-le périodiquement pour rester synchronisé avec le parent.

Dans la liste des Branch de votre projet, sélectionnez la Branch **development**, puis cliquez sur **Créer une Branch enfant**. Saisissez un nom de Branch (obligatoire) tel que dev/alex (suivant le dev/<your-name> modèle), puis cliquez sur **Créer**.

La Branch est créée instantanément et inclut tous les schémas et données du développement via la copy-on-write.

Votre hiérarchie de Branch :

production (root)
└── development (has users table + data)
└── dev/alex (instantly inherits users table + data)

Développer votre fonctionnalité

Pointez votre application vers votre Branch de développement en mettant à jour la chaîne de connexion dans votre fichier .env, puis développez votre fonctionnalité en utilisant votre flux de travail normal.

Par exemple, l’ajout du suivi des préférences utilisateur à votre application impliquerait la mise à jour de votre modèle utilisateur, la génération d’une migration avec votre framework (Prisma, Alembic, Django, etc.) et son exécution sur votre branch dev/alex. Votre fichier de migration peut contenir :

SQL
ALTER TABLE users ADD COLUMN preferences JSONB DEFAULT '{}';
CREATE INDEX idx_users_preferences ON users USING GIN (preferences);

Après avoir exécuté la migration, développez la fonctionnalité de préférence dans le code de votre application et testez le flux complet localement. Votre Branch est complètement isolée. Les modifications n'affectent pas la production ni les autres développeurs.

Examen de vos modifications

Avant de promouvoir vers d'autres environnements, utilisez la diff de schéma pour vérifier exactement ce qui a changé. Accédez à l'aperçu de votre branch dev/alex, cliquez sur Différence de schéma , et comparez-le à development.

La comparaison côte à côte montre votre nouvelle colonne preferences et votre nouvel index en vert :

Différence de schéma montrant la colonne des préférences et l&#39;index ajoutés à la branch dev/alex

Cette étape de vérification permet de détecter les modifications involontaires avant qu'elles n'atteignent la production. Pour une documentation complète sur les différences de schémas, consultez Comparez les schémas de Branch.

Promouvez vos modifications

La promotion n'est pas automatique. Pour promouvoir vos modifications, exécutez la même migration sur votre Branch development que celle que vous avez déjà exécutée sur dev/alex. Aucune étape spécifique à Lakebase n'est impliquée. Votre fichier de migration est déjà dans votre base de code, il suit donc votre processus de déploiement normal.

  1. Mettez à jour votre chaîne de connexion pour qu’elle pointe vers votre Branch development.
  2. Exécutez votre migration sur development en utilisant la même commande que celle que vous avez utilisée sur dev/alex.
  3. Déployez votre code d'application mis à jour.

Étant donné que la migration a déjà été validée sur votre Branch personnelle, elle devrait s'appliquer sans problème. Une fois promus, les autres développeurs verront le schéma mis à jour lorsqu'ils Reset leurs Branch à partir de development.

Reset et start à zéro

Lorsque vous êtes prêt à start un nouveau travail, Reset votre Branch personnelle pour rester synchronisé avec development, qui a pu subir des modifications de la part d'autres développeurs. Cela vous donne un nouveau start à partir de la base de référence partagée actuelle.

Naviguez vers votre dev/alex branch et cliquez sur Reset depuis le parent . La modale de reset confirme que toutes les bases de données et tous les rôles seront remplacés par les dernières données de development. Cette action est irréversible, assurez-vous donc d'avoir promu toutes les modifications que vous souhaitez conserver avant de confirmer.

Fenêtre modale de confirmation de Reset des données

Votre Branch correspond maintenant exactement à development, prête pour votre prochaine tâche.

Bonnes pratiques

  • Utilisez une nomenclature cohérente : suivez le modèle dev/<name> pour les Branch.
  • Reset regularly: Keep your Branch in sync with development to avoid drift.
  • **Protéger la production** : utilisez les Branch protégées pour éviter les modifications accidentelles.