Partager via


Tutoriel : Flux de travail de développement basé sur les branches

Important

La mise à l’échelle automatique Lakebase est en version bêta dans les régions suivantes : eastus2, westeurope, westus.

La version Autoscaling de Lakebase est la dernière de Lakebase, offrant l'autoscaling, la mise à l'échelle à zéro, la bifurcation et la restauration instantanée. Pour la comparaison des fonctionnalités avec Lakebase Provisioned, consultez le choix entre les versions.

Découvrez comment utiliser des branches telles que des branches Git, en donnant à chaque développeur une branche isolée pour un travail indépendant, puis à réinitialiser pour rester synchronisée.

Prerequisites

  • Projet Lakebase avec une production branche (valeur par défaut)
  • Une branche development créée à partir de production pour le travail de développement partagé
  • Connaissance de base de SQL et Postgres

Configurer votre schéma de démarrage

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

  1. Accédez à votre branche de développement dans l’interface utilisateur Lakebase.
  2. Ouvrez l’éditeur SQL.
  3. Créez une table utilisateurs de base avec des exemples de données :
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 branche développeur

Chaque développeur de votre équipe peut avoir une branche à longue durée de vie pour un travail en cours. Réinitialisez-le régulièrement pour rester synchronisé avec le parent.

Dans la liste des branches de votre projet, sélectionnez la branche de développement , puis cliquez sur Créer une branche enfant. Entrez un nom de branche (obligatoire) tel que dev/alex (suivant le modèle dev/<your-name>) et cliquez sur Créer.

La branche est créée instantanément et inclut tous les schémas et données du développement via la copie en écriture.

Hiérarchie de votre branche :

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

Développer votre fonctionnalité

Pointez votre application sur votre branche de développement en mettant à jour la chaîne de connexion dans votre .env fichier, puis développez votre fonctionnalité à l’aide de votre workflow normal.

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

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 votre code d’application et testez le flux complet localement. Votre branche est complètement isolée : les modifications n’affectent pas la production ou d’autres développeurs.

Passer en revue vos modifications

Avant de promouvoir vers d’autres environnements, utilisez des différences de schéma pour vérifier exactement ce qui a changé. Accédez à la vue d’ensemble de votre dev/alex branche, cliquez sur Différences de schéma et comparez avec development.

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

Diff de schéma montrant la colonne de préférences et l’index ajoutés à la branche dev/alex

Cette étape de vérification permet d’intercepter les modifications involontaires avant d’atteindre la production. Pour obtenir la documentation complète sur les différences de schéma, consultez Comparer les schémas de branche.

Promouvoir vos modifications

Lorsque vous êtes confiant dans vos modifications, faites-les passer aux branches en amont. Appliquez les mêmes modifications de schéma que celles que dev/alex vous avez validées sur votre development branche, puis déployez votre code d’application. Ce flux de travail garantit que vos modifications de schéma sont testées de manière isolée avant d’atteindre des environnements partagés.

Réinitialiser et démarrer à nouveau

Lorsque vous êtes prêt à commencer un nouveau projet, réinitialisez votre branche personnelle pour rester synchronisée avec development, qui a pu être modifié par d'autres développeurs. Cela vous donne un nouveau départ à partir de la base de référence partagée actuelle.

Accédez à votre dev/alex branche, puis cliquez sur Réinitialiser à partir du parent. Le mode de réinitialisation confirme que toutes les bases de données et rôles seront remplacés par les données les plus récentes de development. Cette action n’est pas réversible. Vérifiez donc que vous avez promu toutes les modifications que vous souhaitez conserver avant de confirmer.

Réinitialiser la confirmation des données modale

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

Meilleures pratiques

  • Utilisez un nommage cohérent : Suivez le dev/<name> modèle pour les branches de développement.
  • Réinitialisez régulièrement : Gardez votre branche synchronisée avec development pour éviter la dérive.
  • Protéger la production : Utiliser des branches protégées pour empêcher les modifications accidentelles