Kılavuz: Dal tabanlı geliştirme çalışma akışı

Git dalları gibi dalların nasıl kullanılacağını, her geliştiriciye bağımsız çalışma için yalıtılmış bir dal vereceğinizi ve ardından senkronizasyon için yeniden ayarlayacağınızı öğrenin.

Önkoşullar

  • Varsayılan production dalına sahip bir Lakebase projesi
  • development Paylaşılan geliştirme çalışmaları için 'den production oluşturulan bir dal
  • SQL ve Postgres hakkında temel bilgiler

Başlangıç şemanızı ayarlama

Geliştirici dalınızı oluşturmadan önce geliştirme dalında basit bir şema ayarlayın. Bu, tüm geliştiricilerin fork edeceği paylaşılan başlangıç noktası işlevi görür. Kişisel dalınızı oluşturduğunuzda, bu şemayı kopyalama üzerine yazma yoluyla anında devralır.

  1. Lakebase kullanıcı arabiriminde geliştirme dalınıza gidin.
  2. SQL Düzenleyicisi'ni açın.
  3. Örnek verilerle temel kullanıcılar tablosu oluşturma:
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');

Geliştirici dalınızı oluşturma

Ekibinizdeki her geliştiricinin devam eden çalışmalar için uzun süreli bir dalı olabilir. Üst öğeyle eşitlenmiş durumda kalmak için düzenli aralıklarla sıfırlayın.

Projenizin dal listesinden geliştirme dalını seçin ve ardından Alt dal oluştur'a tıklayın. Bir dal adı (gerekli), dev/alex deseni gibi dev/<your-name> girin ve Oluştur tıklayın.

Dal anında oluşturulur ve kopyalayarak yazma yöntemiyle geliştirmeden gelen tüm şemaları ve verileri içerir.

Dal hiyerarşiniz:

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

Özelliğinizi geliştirme

.env dosyanızdaki bağlantı dizesini güncelleyerek uygulamanızı geliştirme dalınıza yönlendirin, sonra da normal iş akışınızı kullanarak mevcut özelliğinizi geliştirin.

Örneğin, uygulamanıza kullanıcı tercih izlemesi eklemek için kullanıcı modelinizi güncelleştirme, çerçevenizle (Prisma, Alembic, Django vb.) bir geçiş oluşturma ve bunu dalınızda dev/alex çalıştırma işlemleri gerekebilir. Geçiş dosyanız şu içeriği içerebilir:

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

Geçişi çalıştırdıktan sonra uygulama kodunuzda tercih özelliğini geliştirin ve tam akışı yerel olarak test edin. Dalınız tamamen yalıtılmış. Değişiklikler üretimi veya diğer geliştiricileri etkilemez.

Değişikliklerinizi inceleme

Diğer ortamlara yükseltmeden önce, tam olarak nelerin değiştiğini doğrulamak için şema farkını kullanın. Dalınızın dev/alex genel bakış sayfasına gidin, Şema farkını tıklatın ve development ile karşılaştırın.

Yan yana karşılaştırmada yeni preferences sütununuz ve dizininiz yeşil renkte gösterilir:

Geliştirme/alex dallarına eklenen tercihler sütununu ve dizinini gösteren şema farkı

Bu doğrulama adımı, üretime ulaşmadan önce istenmeyen değişiklikleri yakalamaya yardımcı olur. Şema farkı belgelerinin tamamı için bkz. Dal şemalarını karşılaştır.

Değişikliklerinizi tanıtın

Yükseltme otomatik değildir. Değişikliklerinizi uygulamak için, ilk olarak development dalınızda çalıştırdığınız aynı geçişi dev/alex dalınızda da çalıştırın. Lakebase'e özgü bir adım söz konusu değildir. Geçiş dosyanız zaten kod tabanınızda olduğundan bu işlem normal dağıtım işleminizi izler.

  1. Bağlantı dizesini, dalınızı işaret eden development olacak şekilde güncelleştirin.
  2. development için kullandığınız komutu kullanarak, geçişinizi dev/alex üzerinde çalıştırın.
  3. Güncelleştirilmiş uygulama kodunuzu dağıtın.

Geçiş, kişisel şubenizde zaten doğrulandığından, sorunsuz bir şekilde uygulanmalıdır. Terfi edildikten sonra, diğer geliştiriciler development'den dallarını sıfırladıklarında güncellenmiş şemayı göreceklerdir.

Sıfırlama ve yeni başlangıç

Yeni bir çalışmaya başlamaya hazır olduğunuzda, diğer geliştiricilerin değişiklikleri olmuş olabilecek development ile eşitlenmiş durumda kalmak için kişisel dalınızı sıfırlayın. Bu size geçerli paylaşılan temelden yeni bir başlangıç sağlar.

Dalınıza dev/alex gidin ve Üst öğeden sıfırla'ya tıklayın. Sıfırlama modali, tüm veritabanlarının ve rollerin development’dan gelen en güncel verilerle değiştirileceğini onaylar. Bu eylem geri alınamaz, bu nedenle onaylamadan önce saklamak istediğiniz değişiklikleri yükseltdiğinizden emin olun.

Veri sıfırlama onayı modali

Dalınız artık tam olarak development ile eşleşiyor, ve bir sonraki göreviniz için tamamen hazır.

En iyi yöntemler

  • Tutarlı adlandırma kullanın: Geliştirici dalları için dev/<name> şablonunu izleyin.
  • Düzenli olarak sıfırla: Kaymayı önlemek için dalınızı development ile senkronize halde tutun.
  • Üretimi koruma: Yanlışlıkla yapılan değişiklikleri önlemek için korumalı dalları kullanma