Ş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ı
- Geçici Postgres'i başlatın (Docker / GitHub Actions hizmeti)
- Tüm geçişleri sıfırdan uygulayın
- Hazırlama ortamı şemasının bir kopyasına yalnızca yeni geçişleri uygulayın
- dbt build / Flyway sınamaları / uygulama sınamalarını çalıştırın
- SQLFluff ile kod stili denetimi yapın
- Ş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.shKod 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 PRYalnı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.sqlGeç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
- DBT (Data Build Tool) Temelleri
- SQLFluff ve Kod Denetleme
- SQL Testleri: dbt testleri, Great Expectations
- Şema Değişiklikleri için CI (GitHub Actions)