Kaynak: KB-docs
integrations/INT-BACKUP-yedekleme.md(tam kod taraması). KB-v1'de karşılığı yoktu (AUDIT §2.4).
INT-BACKUP — Veritabanı Yedeği (BACKUP DATABASE → USB/sürücü)
Gerçeklik türü: AS-IMPLEMENTED (kod). Depo kökü:
/home/claude/erppro/ERPPRO.
1. Amaç
Kullanıcının seçtiği sürücüye (USB takılınca liste yenilenir) aktif veritabanının tam yedeğini (.bak) almak.
2. Protokol / taşıma
- T-SQL
BACKUP DATABASE <db> TO DISK = '<uygulama klasörü>\<geçici ad>' WITH FORMAT, MEDIANAME=…, NAME='Full Backup of …'—InternalDb.ExecuteScalar. VERIFIEDERPPRO/Backup/Backup.vb:102-104. - Ardından dosya kopyalama: geçici dosya
<Sürücü>AIFABACKUP\<DbAdı>\<yyyyMMddHHmmss>\<DbAdı>.bakyoluna kopyalanır, geçici silinir, klasörexplorer.exeile açılır (:106-110). - USB algılama:
WM_DEVICECHANGE(:13-23) →DriveList(hazır sürücüler).
3. Giriş noktası sınıf ve metotlar
ERPPRO/Backup/Backup.vb(FormBase):25-36DriveList,:37-44IsReady.:54-70Başlat (BtnStart): sürücü hazır değilse "… Sürücüsü Hazır Degil.";SqlConnectionStringBuilder(InternalDb.ConnStr).InitialCatalogile DB adı;BackgroundWorker1.RunWorkerAsync.:91-116DoWork: yedek + kopya; hata → "Yedek Alırken Hata Olustu. Lütfen Anamakinda Yedek Aldığınızdan Emin Olunuz. Terminal Bilgisayarlarından Güvenlik Nedeniyle Yedek Alamazsınız. (…)" (YEDEKLEME YAPILAMADI!!!).:118-122tamamlanınca düğme/ilerleme sıfırlanır.- Tetik:
ERPPRO/Form/Genel/FrmMainForm.vb:684-688BtnYedekAl_ItemClick→Backup.ShowDialog.
4. Kullandığı tablolar / ayarlar
| Nesne | Kullanım | Kanıt |
|---|---|---|
InternalDb.ConnStr (Config.cfg'den) |
DB adı ve bağlantı | Backup.vb:56 |
Uygulama klasörü (My.Application.Info.DirectoryPath) |
SQL Server'ın yazacağı geçici yol | Backup.vb:97 |
Hedef: <Sürücü>\AIFABACKUP\<Db>\<zaman>\<Db>.bak |
Yedek dosyası | Backup.vb:62-63 |
5. Hangi ekrandan tetiklenir
Ana menü Yedek Al düğmesi (BtnYedekAl).
6. Hata / başarısızlık davranışı
BACKUP DATABASEyolunu SQL Server servisi yazar: ERP terminalde çalışıyorsa uygulama klasörü SQL sunucusunda yoktur → hata → yukarıdaki mesaj (mesaj bunu açıkça belirtir). VERIFIED- Hedef sürücüde yer yoksa
File.Copyhatası aynı mesajla yutulur; geçici.bakuygulama klasöründe kalabilir (File.Deletekopya başarısızsa çalışmaz). INFERRED For Each f … Process.Start("explorer.exe", FolderName)klasördeki dosya sayısı kadar Explorer açar (tek dosya beklendiğinden 1). VERIFIED
7. Riskler
- Yedek yalnız ana makinede alınabilir; otomatik/zamanlanmış yedek mekanizması ERP'de yok (notlarda "günlük SQL yedekleri" ayrı süreç). VERIFIED
- DB adı SQL metnine doğrudan eklenir (
"BACKUP DATABASE " & DbName); ad bağlantı dizesinden geldiği için düşük risk. - DOCUMENTS gibi ikinci veritabanı yedeklenmez (bkz. INT-DOCUMENTS-DB). INFERRED
.bakşifresiz; USB ile taşınan yedek müşteri verisi içerir. INFERRED
8. Kanıt listesi
ERPPRO/Backup/Backup.vb:5-123ERPPRO/Form/Genel/FrmMainForm.vb:684-688- Not:
kb_src/notes/integrations.jsoniçinde yedekleme için ayrı kayıt yok; INT-RDP-SUNUCU "günlük SQL yedekleri yedek sunucuya ertesi gün 10:00'da restore" sürecini anar (AS-DOCUMENTED).
9. UNKNOWN
- Sunucu tarafındaki zamanlanmış yedek işi (SQL Agent/maintenance plan) — bu depoda yok.
- Yedek geri yükleme (RESTORE) ekranı — kodda yok.
