Veritabanını Remote Data İle Senkron. Hk.
-
Scraper bot ile bir siteden ürün çekip SQLite veritabanına kaydediyorum. Ürünleri "INSERT OR REPLACE" ile giriyorum böylece yeni ürünler veritabanına eklenirken, değişiklik yapılanlar veritabanında da değişiyor. Ancak problem sitede stokta kalmayan ürünler. Siteden silinen ürünlerin veritabanından da silinmesini hangi yolla sağlayabilirim? Aklımda bir yöntem var ama oldukça kıllı. Fikirlerinize açığım.
-
Senin söylediiğin yöntemi hatırlamıyom şimdi o telegramdan konuştugumuz konuyu yani.
Şöyle birşey miydi ? Veya Böyle yapabilir misin ?
@Not DB'ci değilim .Bütün ürünlerin sayısını al eğer sende ki ile eşitse işlem yapma eşit değilse senin istediğin işlemi yapsın.Ha bu da sıkıntıya sebep olur 1 item silinip 1 item eklenmişse eklenen item sende olmayacak.
Neyse zaten kafam sikilmişti bilen birisi vardır hemide up olsun -
logizle diye bir tablo yap.
sitede yaptığın işlemleri o tabloya kaydet
program her güncellemede o tablodaki sorguları localde çalıştırsın sonra ordan silsinki mükerrer yapmasın.
buda bir yol.
-
İşlem yaptığın her kayıt için bir date fieldını update edebilirsin. Varsa, yeniyse yada değiştiyse işlem tarihi at. Update görmeyen kayıtlar silinmiştir.
Yada gün içinde çok kez çalıştırıyorum vs diyorsan check isimli bir fieldın olsun. İşleme başlamadan önce tüm check fieldlarını 0 yaparsın. Her işlem yaptığına 1 koyar işlem sonunda tüm 0 olanları silersin.
Birkaç yöntem daha sayarım ama onlar fazla kod hammeliyesi gerektirir.
-
@DuPi tam anlayamadım hocam biraz açar mısın?
@S2buyuk İkinci yazdığın aklıma yattı hocam bir deneyeceğim.
-
hocam şöyleki,
mesela webte bir kayıt sildin. onun sql kodunu veya o kaydı sildiğine dair bilgiyi başka bir tabloya atsın. (tablo adı a olsun)
localdeki programın her güncellemede a tablosunu kontrol edip. ordaki işlemleri localde ki veritabanında da işlesin. ( yaptığı işlemleri sonradan ya silsin yada check ile yaptığını belirtsin)
-
krypt bunu yazdı
Scraper bot ile bir siteden ürün çekip SQLite veritabanına kaydediyorum. Ürünleri "INSERT OR REPLACE" ile giriyorum böylece yeni ürünler veritabanına eklenirken, değişiklik yapılanlar veritabanında da değişiyor. Ancak problem sitede stokta kalmayan ürünler. Siteden silinen ürünlerin veritabanından da silinmesini hangi yolla sağlayabilirim? Aklımda bir yöntem var ama oldukça kıllı. Fikirlerinize açığım.
veritabanından dump alıp her ürünü site içerisinde aratmak arta kalan ürünlere kalayı basmak
kıllı olan bu mu acaba
çözebilduysanız açıklar mısınız kafama takıldı
-
Aklimdaki fikir neydi acaba unuttum. Olayı s2buyuk'un ikinci yazdığı şekilde hallettim. Gayet basit ve işimi görüyor.