0Pricing
SQL Academy · Pelajaran

CI untuk Perubahan Skema (GitHub Actions)

Jalankan migrasi, dbt build, dan lint SQLFluff di dalam GitHub Actions pada setiap PR, dengan basis data sementara

CI untuk Perubahan Skema (GitHub Actions) adalah pelajaran SQL Academy gratis di CoddyKit. Ini adalah pelajaran 4 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar SQL Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus SQL Academy mencakup 4 pelajaran total.

Mengapa CI untuk SQL?

Migrasi manual menyebabkan gangguan layanan. CI menemukan:

  • Migrasi yang gagal diterapkan
  • Migrasi yang merusak pengujian yang sudah ada
  • Pergeseran skema antarlingkungan
  • Regresi pada pemeriksaan gaya dan pengujian

Alur CI SQL yang Solid

  1. Jalankan Postgres sementara (layanan Docker / GitHub Actions)
  2. Terapkan semua migrasi dari awal
  3. Terapkan hanya migrasi baru pada salinan skema staging
  4. Jalankan dbt build / pengujian Flyway / pengujian aplikasi
  5. Pemeriksaan gaya dengan SQLFluff
  6. Laporan perbedaan skema

GitHub Actions: Layanan Postgres

Jalankan Postgres bersama tugas tersebut:

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

Langkah Pemeriksaan Gaya

Jalankan pemeriksaan gaya SQLFluff sebagai tugas terpisah:

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

Build dbt dalam CI

Untuk proyek dbt:

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

Perbedaan Skema

migra (atau apgdiff, schemahero) menunjukkan perubahan yang diperkenalkan oleh suatu migrasi:

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

Strategi Hanya Maju

Selalu buat migrasi baru; jangan pernah mengubah migrasi yang sudah diterapkan. CI memastikan rangkaian migrasi dapat diterapkan dari awal.

Perubahan Skema yang Kompatibel Mundur

Skema setiap PR harus tetap kompatibel dengan versi aplikasi sebelumnya, sehingga Anda dapat menerapkan aplikasi dan basis data dalam urutan apa pun. CI dapat memverifikasinya dengan menjalankan pengujian aplikasi OLD terhadap skema NEW.

Pengisian Data Pengujian

Skrip fixture kecil dalam CI memungkinkan pengujian berjalan menggunakan data yang realistis:

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

Batas Waktu Kunci dalam Pengujian Migrasi

Atur lock_timeout dalam migrasi CI untuk meniru perilaku produksi:

ALTER DATABASE postgres SET lock_timeout = '5s';

Penerapan ke Produksi

Untuk migrasi produksi, gunakan tugas sekali jalan:

  • Pelaksana migrasi dengan percobaan ulang
  • Notifikasi saat gagal
  • Prosedur pengembalian terdokumentasi

Pola Basis Data Cabang

Alat seperti percabangan Neon dan Supabase memungkinkan Anda membuat salinan produksi untuk setiap PR — jalankan migrasi dan pengujian aplikasi terhadap salinan dengan data nyata.

Ringkasan

SQL termasuk dalam CI.

  • Jalankan layanan PG sementara
  • Terapkan migrasi + dbt build
  • Lakukan pemeriksaan gaya dengan SQLFluff
  • Jalankan pengujian aplikasi terhadap skema yang telah dimigrasikan
  • Bandingkan skema untuk ditinjau

Pemeriksaan Singkat

Apa cara paling sederhana untuk menambahkan basis data Postgres ke tugas GitHub Actions?

Pertanyaan yang Sering Diajukan

Apakah pelajaran “CI untuk Perubahan Skema (GitHub Actions)” gratis?

Ya — teks lengkap “CI untuk Perubahan Skema (GitHub Actions)” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus SQL Academy, upgrade ke CoddyKit PRO. Kursus SQL Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “CI untuk Perubahan Skema (GitHub Actions)”?

Jalankan migrasi, dbt build, dan lint SQLFluff di dalam GitHub Actions pada setiap PR, dengan basis data sementara Kamu berlatih SQL Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai SQL Academy?

Tidak diperlukan pengalaman sebelumnya. SQL Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 4 dari 4.

Berapa lama pelajaran “CI untuk Perubahan Skema (GitHub Actions)” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran SQL Academy ini?

Ya. Setiap pelajaran SQL Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Dasar-Dasar DBT (Data Build Tool)
  2. SQLFluff dan Linting
  3. Menguji SQL: test dbt, Great Expectations
  4. CI untuk Perubahan Skema (GitHub Actions)
← Kembali ke SQL Academy