SQL Academy · पाठ

स्कीमा बदलावों के लिए CI (GitHub Actions)

हर PR पर GitHub Actions के भीतर माइग्रेशन, dbt build और SQLFluff lint चलाएँ, जिसमें अस्थायी डेटाबेस हों

पाठ 4, कुल 4 में से14 चरण

स्कीमा बदलावों के लिए CI (GitHub Actions), CoddyKit पर SQL Academy का एक निःशुल्क पाठ है। यह 4 में से 4वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह SQL Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। SQL Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

SQL के लिए CI क्यों?

मैन्युअल माइग्रेशन से सेवा बाधित हो सकती है। CI इन चीज़ों को पकड़ता है:

  • लागू होने में विफल माइग्रेशन
  • मौजूदा परीक्षणों को तोड़ने वाला माइग्रेशन
  • पर्यावरणों के बीच स्कीमा में बदलाव
  • शैली-जाँच और परीक्षण में प्रतिगमन

एक मजबूत SQL CI पाइपलाइन

  1. अल्पकालिक Postgres शुरू कीजिए (Docker / GitHub Actions सेवा)
  2. सभी माइग्रेशन को बिल्कुल नए सिरे से लागू कीजिए
  3. स्टेजिंग स्कीमा की एक प्रति पर केवल नए माइग्रेशन लागू कीजिए
  4. dbt build / Flyway test / ऐप परीक्षण चलाइए
  5. SQLFluff से शैली-जाँच कीजिए
  6. स्कीमा-अंतर की रिपोर्ट तैयार कीजिए

GitHub Actions: Postgres सेवा

जॉब के साथ Postgres शुरू कीजिए:

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

शैली-जाँच चरण

SQLFluff की शैली-जाँच को अलग जॉब के रूप में चलाइए:

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

CI में dbt बिल्ड

dbt प्रोजेक्ट के लिए:

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

स्कीमा अंतर

migra (या apgdiff, schemahero) दिखाता है कि माइग्रेशन कौन-से बदलाव लाता है:

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

केवल आगे बढ़ने की रणनीति

हमेशा नए माइग्रेशन बनाइए; लागू किए जा चुके माइग्रेशन को कभी संपादित न कीजिए। CI यह सुनिश्चित करता है कि माइग्रेशन का क्रम बिल्कुल नए सिरे से लागू हो सके।

पश्चगामी-संगत स्कीमा बदलाव

हर PR का स्कीमा ऐप के पिछले संस्करण के साथ संगत रहना चाहिए, ताकि आप ऐप और डेटाबेस को किसी भी क्रम में परिनियोजित कर सकें। CI इसकी जाँच NEW स्कीमा पर OLD ऐप परीक्षण चलाकर कर सकता है।

परीक्षण डेटा भरना

CI में एक छोटी फ़िक्स्चर स्क्रिप्ट परीक्षणों को वास्तविक-जैसे डेटा पर चलने देती है:

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

माइग्रेशन परीक्षणों में लॉक की समय-सीमा

उत्पादन जैसा व्यवहार दिखाने के लिए CI माइग्रेशन में lock_timeout सेट कीजिए:

ALTER DATABASE postgres SET lock_timeout = '5s';

उत्पादन में लागू करना

उत्पादन माइग्रेशन के लिए एक बार चलने वाली जॉब का उपयोग कीजिए:

  • पुनः प्रयासों वाली माइग्रेशन रनर
  • विफलता पर सूचनाएँ
  • दस्तावेज़ीकृत रोलबैक प्रक्रिया

ब्रांच डेटाबेस पैटर्न

Neon और Supabase branching जैसे उपकरण आपको प्रत्येक PR के लिए उत्पादन की एक प्रति बनाने देते हैं — फिर आप वास्तविक डेटा की इस प्रति पर माइग्रेशन और ऐप परीक्षण चला सकते हैं।

पुनरावलोकन

SQL को CI में होना चाहिए।

  • अल्पकालिक PG सेवा शुरू कीजिए
  • माइग्रेशन लागू कीजिए और dbt बिल्ड चलाइए
  • SQLFluff से शैली-जाँच कीजिए
  • माइग्रेट किए गए स्कीमा पर ऐप परीक्षण चलाइए
  • समीक्षा के लिए स्कीमा का अंतर दिखाइए

त्वरित जाँच

GitHub Actions जॉब में Postgres डेटाबेस जोड़ने का सबसे सरल तरीका क्या है?

शुरुआत निःशुल्क

एआई शिक्षक के साथ SQL सीखें — निःशुल्क

अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।

पाठ्यक्रम
46
पाठ
183

अक्सर पूछे जाने वाले प्रश्न

क्या “स्कीमा बदलावों के लिए CI (GitHub Actions)” पाठ निःशुल्क है?

हाँ—“स्कीमा बदलावों के लिए CI (GitHub Actions)” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और SQL Academy पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। SQL Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

“स्कीमा बदलावों के लिए CI (GitHub Actions)” में मैं क्या सीखूँगा?

हर PR पर GitHub Actions के भीतर माइग्रेशन, dbt build और SQLFluff lint चलाएँ, जिसमें अस्थायी डेटाबेस हों आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ SQL Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।

क्या SQL Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?

पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर SQL Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 4वाँ पाठ है।

“स्कीमा बदलावों के लिए CI (GitHub Actions)” पाठ पूरा करने में कितना समय लगता है?

CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।

क्या मैं इस SQL Academy पाठ में कोड लिख और चला सकता हूँ?

हाँ। हर SQL Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।

इस पाठ्यक्रम के सभी पाठ

  1. DBT (Data Build Tool) की मूल बातें
  2. SQLFluff और लिंटिंग
  3. SQL का परीक्षण: dbt tests, Great Expectations
  4. स्कीमा बदलावों के लिए CI (GitHub Actions)
← SQL Academy पर वापस जाएँ