Ma'lumotlar va zaxira nusxalash
DATA_DIR — yagona doimiy joy
Bot konteyneri qayta ishga tushirilganda (redeploy, restart, tokenni almashtirish) fayl tizimi DATA_DIR muhit o'zgaruvchisi ko'rsatgan papkadan tashqari tozalanadi. Boshqa joyga (masalan loyihaning o'ziga) yozilgan fayllar keyingi ishga tushirishda yo'qoladi. Shu sababli SQLite baza, Excel eksport, yuklangan rasm kabi barcha doimiy ma'lumotlarni faqat DATA_DIR ichida saqlang (namuna kod).
Misollar
import sqlite3, os
db = sqlite3.connect(os.path.join(os.getenv("DATA_DIR", "./data"), "bot.sqlite3"))
const fs = require("fs")
const path = require("path")
const file = path.join(process.env.DATA_DIR || "./data", "users.json")
fs.writeFileSync(file, JSON.stringify(data))
Kunlik avtomatik zaxira
Har kuni soat 03:00 da (Toshkent vaqti) faol bo'lgan har bir bot uchun DATA_DIR papkasi butunlay arxivlanadi, AES-256-GCM bilan shifrlanadi va alohida saqlanadi. Oxirgi zaxiradan beri hech qanday faollik bo'lmagan botlar uchun zaxira olinmaydi (bekorga resurs sarflanmasligi uchun).
Saqlash muddati (retention)
| Tarif | Saqlash muddati |
|---|---|
| Start, Freelancer | 7 kun |
| Pro | 14 kun |
| Business | 30 kun |
Muddati o'tgan zaxiralar avtomatik o'chiriladi. Panelda Bot → Zaxira bo'limida barcha mavjud zaxiralarni sanasi va hajmi bilan ko'rasiz.
Qo'lda zaxira olish
Har qanday vaqtda "Hozir zaxiralash" tugmasi bilan qo'shimcha zaxira olishingiz mumkin — masalan katta o'zgarishdan oldin.
Zaxiradan tiklash
Tiklash tugmasini bossangiz: avval joriy holat "tiklashdan oldingi zaxira" sifatida avtomatik saqlanadi (xato bosilsa ham hech narsa yo'qolmaydi), so'ng DATA_DIR tanlangan zaxira holatiga qaytariladi va bot qisqa vaqtga qayta ishga tushadi.
Zaxirani yuklab olish
"Yuklab olish" tugmasi 24 soat amal qiladigan imzolangan havola yaratadi — shu havola orqali shifrlangan faylni kompyuteringizga saqlab qo'yishingiz mumkin. Havola muddati o'tsa yoki soxtalashtirilsa, yuklab bo'lmaydi.
Tashqi ma'lumotlar bazasi ishlatsam-chi?
Agar botingiz DATABASE_URL orqali tashqi PostgreSQL/MongoDB/Redis kabi xizmatga ulanadigan bo'lsa, bu — tekshiruvda ham "to'g'ri" deb hisoblanadi, lekin shuni bilingki: Botxona faqat DATA_DIR ni zaxiralaydi. Tashqi bazaning zaxirasi to'liq sizning javobgarligingizda.
Keyingi qadam
Ma'lumot yo'qolishining oldini olish uchun kod qoidalari: 6 qoida — 5-band. Bot uxlab-uyg'onganda ma'lumot yo'qolmasligi haqida: Uxlash va uyg'onish.