0Pricing
SQL Academy · Ders

Şema Değişiklikleri için CI (GitHub Actions)

Her PR'da geçişleri, dbt build'i ve SQLFluff denetimini geçici veritabanlarıyla GitHub Actions içinde çalıştırın.

Şema Değişiklikleri için CI (GitHub Actions), CoddyKit'te ücretsiz bir SQL Academy dersidir. Bu, 4 dersinin 4. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, SQL Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. SQL Academy kursu toplamda 4 dersten oluşur.

SQL için Neden CI?

El ile yapılan geçişler kesintilere neden olur. CI şunları yakalar:

  • Uygulanamayan geçiş
  • Mevcut sınamaları bozan geçiş
  • Ortamlar arasındaki şema kayması
  • Kod stili denetimi ve sınama gerilemeleri

Sağlam bir SQL CI İşlem Hattı

  1. Geçici Postgres'i başlatın (Docker / GitHub Actions hizmeti)
  2. Tüm geçişleri sıfırdan uygulayın
  3. Hazırlama ortamı şemasının bir kopyasına yalnızca yeni geçişleri uygulayın
  4. dbt build / Flyway sınamaları / uygulama sınamalarını çalıştırın
  5. SQLFluff ile kod stili denetimi yapın
  6. Şema farkı raporu oluşturun

GitHub Actions: Postgres Hizmeti

İşle birlikte Postgres'i başlatın:

name: ci
on: [pull_request]
jobs:
  test:
    runs-on: ubuntu-latest
    services:
      pg:
        image: postgres:16
        env:
          POSTGRES_PASSWORD: postgres
        ports: ['5432:5432']
        options: >-
          --health-cmd pg_isready
          --health-interval 10s
          --health-timeout 5s
          --health-retries 5
    steps:
      - uses: actions/checkout@v4
      - name: Run migrations
        env:
          DATABASE_URL: postgres://postgres:postgres@localhost:5432/postgres
        run: |
          ./scripts/migrate.sh

Kod Stili Denetimi Adımı

SQLFluff ile kod stili denetimini ayrı bir iş olarak çalıştırın:

jobs:
  lint:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-python@v5
      - run: pip install sqlfluff && sqlfluff lint models/

CI'da dbt Build

dbt projeleri için:

- name: dbt deps & build
  run: |
    pip install dbt-postgres
    dbt deps
    dbt build --profiles-dir profiles/ci

Şema Farkı

migra (veya apgdiff, schemahero), bir geçişin getirdiği değişiklikleri gösterir:

pip install migra
migra postgres://baseline postgres://branch > diff.sql
# Comment diff.sql on the PR

Yalnızca İleri Yönlü Strateji

Her zaman yeni geçişler oluşturun; uygulanmış olanları asla düzenlemeyin. CI, geçiş dizisinin sıfırdan uygulanmasını sağlar.

Geriye Dönük Uyumlu Şema Değişiklikleri

Her PR'ın şeması önceki uygulama sürümüyle uyumlu kalmalıdır; böylece uygulamayı ve veritabanını herhangi bir sırayla dağıtabilirsiniz. CI bunu, NEW şemaya karşı OLD uygulama sınamalarını çalıştırarak doğrulayabilir.

Sınama Verisi Hazırlama

CI içindeki küçük bir örnek veri betiği, sınamaların gerçekçi veriler üzerinde çalışmasını sağlar:

- name: Seed
  run: psql $DATABASE_URL < seed/dev.sql

Geçiş Sınamalarında Kilit Zaman Aşımları

Üretimdeki davranışı taklit etmek için CI geçişlerinde lock_timeout değerini ayarlayın:

ALTER DATABASE postgres SET lock_timeout = '5s';

Üretime Uygulama

Üretim geçişleri için tek seferlik bir iş kullanın:

  • Yeniden denemeli geçiş çalıştırıcısı
  • Başarısızlık bildirimleri
  • Geri alma yordamı belgelenmiş olmalı

Dallanan Veritabanı Deseni

Neon ve Supabase branching gibi araçlar, her PR için üretimin bir kopyasını oluşturmanıza olanak tanır — geçişleri ve uygulama sınamalarını gerçek verilerin kopyasına karşı çalıştırın.

Özet

SQL, CI sürecinin bir parçası olmalıdır.

  • Geçici PG hizmeti başlatın
  • Geçişleri uygulayın ve dbt build çalıştırın
  • SQLFluff ile kod stili denetimi yapın
  • Uygulama sınamalarını geçirilmiş şemaya karşı çalıştırın
  • İnceleme için şema farkını gösterin

Hızlı Kontrol

Bir GitHub Actions işine Postgres veritabanı eklemenin en basit yolu nedir?

Sıkça Sorulan Sorular

“Şema Değişiklikleri için CI (GitHub Actions)” dersi ücretsiz mi?

Evet — “Şema Değişiklikleri için CI (GitHub Actions)” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve SQL Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. SQL Academy kursu toplamda 4 dersten oluşur.

“Şema Değişiklikleri için CI (GitHub Actions)” dersinde ne öğreneceğim?

Her PR'da geçişleri, dbt build'i ve SQLFluff denetimini geçici veritabanlarıyla GitHub Actions içinde çalıştırın. SQL Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

SQL Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te SQL Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 4. dersidir.

“Şema Değişiklikleri için CI (GitHub Actions)” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu SQL Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her SQL Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. DBT (Data Build Tool) Temelleri
  2. SQLFluff ve Kod Denetleme
  3. SQL Testleri: dbt testleri, Great Expectations
  4. Şema Değişiklikleri için CI (GitHub Actions)
← SQL Academy Sayfasına Dön