Eshte e mrekullueshme.Më pëlqen kjo faqe. Por në momentin që pashë “Backups” ulur prapa një plani të paguar, truri im bëri atë që çdo truri i themeluesit të thyer bën: “I can build that.” Dhe po, ju mundeni. Në planin e lirë. Me automatizim të vërtetë. Pa një server. Pa u zgjuar në 2 të mëngjesit për të kujtuar "oh yeah, unë duhet të hedh bazën time të të dhënave." Ky artikull tregon se si kam ndërtuar Përdorimi , plus të gjitha gabimet e mërzitshme të vogla që ndoshta do të goditni (kështu që nuk duhet të bëni). automatic Supabase Postgres backups every 12 hours GitHub Actions Çfarë po ndërtojmë Një periudhë e vetme që: Shkon çdo 12 orë Lidhuni me bazën tuaj të të dhënave Supabase Postgres Krijon një skedar rezervë .dump (formati i kompresuar, i përshtatshëm) Ruaj atë në një repo private GitHub si skedarë të versionuar Asnjë plan i paguar Supabase. Asnjë shërbime të palëve të treta. Asnjë VPS. Vetëm GitHub duke bërë punën e mërzitshme. E vetmja gjë që duhet të kuptosh Një bazë të dhënash është si një ombrellë. Nëse prisni derisa të bjerë shi, tashmë jeni të lagur. Gjithashtu, "Unë vetëm do ta ricikloj atë" është një gënjeshtër që ju thoni vetes kur nuk e keni ricikluar kurrë, plani i lirë Supabase është në thelb një vrimë e zezë, nëse merrni hacked, nuk ka histori për t'u kthyer prapa. Hapi 0: Krijoni një repo privat Krijo një GitHub repository quajtur diçka si: private Mbështetje myapp-db Mbështetje Backup notpayingforshiii-db-backups (nëse ju jeni unë) Ky repo do të ruajë skedarët tuaj të rezervës. GitHub Repo dedikuar për backups Hapi 1: Merrni zinxhirin e saktë të lidhjes Supabase (kjo pjesë ka rëndësi) Shkoni në projektin tuaj Supabase: të Settings → Database → Connection string Ja ku është kurtheja: Përdorni Session Pooler (jo Direct) Nëse jeni në planin e lirë, Supabase shpesh tregon: Lidhje e drejtpërdrejtë: Jo IPv4 pajtueshme Session pooler: IPv4 në përputhje Drejtuesit e GitHub janë zakonisht IPv4.Nëse përdorni Direct, rrjedha juaj e punës do të dështojë dhe ju do të mendoni se universi ju urren. Në set: Fjalë kyçe session pooler Lloji: URI Ju do të merrni një lidhje string si: postgresql://postgres.<your-project-ref>:YOUR_PASSWORD@aws-1-<region>.pooler.supabase.com:5432/postgres të rëndësishme: Zëvendësoni mbajtësin e vendndodhjes [YOUR-PASSWORD] me fjalëkalimin tuaj Supabase, nëse nuk e mbani mend atë, ekziston një lidhje e rivendosjes së fjalëkalimit db në popup atë lidhje. Hapi 2: Shtoni zinxhirin e lidhjes si një sekret GitHub Në repo tuaj GitHub: Settings → Secrets and variables → Actions → New repository secret Krijoni një sekret: Fjalë kyçe_DB_URL Vlerë: ngjisni rreshtin e plotë të lidhjes Session Pooler Mos shtoni hapësira shtesë. Mos shtoni një linjë të re. Mos u bëni të bukur. Shtoje sekretin tënd Hapi 3: Shtoni skedarin e punës së veprimeve të GitHub Në repo tuaj, krijoni këtë skedar: .github/workflows/backup.yml Po, duke përfshirë pikët. GitHub do të krijojë dosjet automatikisht. Tani shtoni këtë rrjedhje të plotë të punës: name: Supabase Backupon: schedule: - cron: "0 */12 * * *" workflow_dispatch:jobs: backup: runs-on: ubuntu-latest steps: - name: Checkout repo uses: actions/checkout@v4 - name: Install matching PostgreSQL client env: DATABASE_URL: ${{ secrets.SUPABASE_DB_URL }} run: | sudo apt-get update sudo apt-get install -y wget ca-certificates lsb-release postgresql-client SERVER_VERSION=$(psql "$DATABASE_URL" -tAc "SHOW server_version_num;" | cut -c1-2) echo "SERVER_VERSION=$SERVER_VERSION" >> $GITHUB_ENV wget -qO - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add - echo "deb http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -cs)-pgdg main" | sudo tee /etc/apt/sources.list.d/pgdg.list sudo apt-get update sudo apt-get install -y postgresql-client-$SERVER_VERSION - name: Run pg_dump env: DATABASE_URL: ${{ secrets.SUPABASE_DB_URL }} run: | mkdir -p backups /usr/lib/postgresql/$SERVER_VERSION/bin/pg_dump "$DATABASE_URL" \ --format=custom \ --file=backups/supabase_$(date +%F_%H-%M).dump - name: Commit backup run: | git config user.name "supabase-backup-bot" git config user.email "backup@github.com" git add backups git commit -m "Automated Supabase backup" || echo "No changes" git pushWhat this does: Zbulohet versioni i Supabase DB Postgres Instalimi i përputhjes pg_dump Krijimi i një skedari .dump Vendoseni atë në repo tuaj Ky version është : nëse Supabase përmirëson Postgres më vonë, rrjedha e punës përshtatet. future-proof Hapi 4: Jepni GitHub Actions lejen për të shtyrë Bëni këtë , sepse backup do të dështojë kur të përpiqet të Kthehuni në rep. before you run the workflow save (commit + push) the database dump Ja si ta mundësoni këtë: Repo → Settings → Actions → General → Rregullat e punës Zgjidhni: ✅ Lexo dhe shkruaj lejet Kliko . Save Hapi 5: Run atë manualisht një herë Tani, provoni atë për të siguruar që ajo punon para se të pushoni lehtë. Shko në repo tuaj: Actions → Supabase Backup → Run workflow Nëse do të ketë sukses: Ju do të shihni një dosje të re: backups / Një skedar si: supabase_2026-01-24_00-15.dump Po në lidhje me blloqet e ruajtjes? Ky mbështetje është për ju . Postgres database Ajo nuk përfshin: Faqet e ruajtjes së Supabase (images, videos, uploads) Kodi i funksionit Edge logosë Nëse keni nevojë për backups të ruajtjes gjithashtu, ju do të dëshironi një proces të veçantë (sinkronizimi i pajtueshëm me S3 ose një skrip - mund ta zgjeroni këtë për të bërë të gjitha këto, por unë kam nevojë vetëm për bazën e të dhënave në rastin tim). Bonus: Mbani repo tuaj nga rritja përgjithmonë (opcionale) Nëse nuk dëshironi që kopjet e pafundme të grumbullohen, mund të fshini automatikisht skedarët e vjetër (mbajeni 30 të fundit, për shembull). Mendimet përfundimtare Ju nuk keni nevojë për një plan të paguar për të pasur backups të rritur. Ju duhet vetëm: Përshkrimi i GitHub Repo Një sekret Një rrjedhë pune Një leje toggle Dhe tani baza juaj e të dhënave ka backups çdo 12 orë ndërsa ju flini, anije, dhe pretendojnë se ju nuk jeni përgjegjës për prodhimin. Nëse e keni gjetur këtë të dobishme, ndjehuni të lirë ta vjedhin atë.