Untitled
unknown
plain_text
a month ago
1.8 kB
3
Indexable
def get_global_last_sync_time(self): """ Veritabanındaki tüm tabloları tarar ve en son senkronizasyon tarihini bulur. """ try: # Veritabanındaki tüm tablo isimlerini al query = "SELECT name FROM sqlite_master WHERE type='table';" tables = self.local_db.execute(query, fetch_all=True) # Tablolar arasında en son senkronizasyon tarihini bulmak için değişken latest_sync_time = None # Her tabloyu kontrol et for table in tables: table_name = table["name"] # Tablo içinde last_synced_at sütunu varsa kontrol et check_column_query = f"PRAGMA table_info({table_name});" columns = self.local_db.execute(check_column_query, fetch_all=True) if any(column["name"] == "last_synced_at" for column in columns): # Tablo içindeki en son senkronizasyon zamanını al sync_query = f"SELECT MAX(last_synced_at) as last_synced_at FROM {table_name};" result = self.local_db.execute(sync_query, fetch_one=True) # Tarihi güncelle last_sync_time = result.get("last_synced_at") if last_sync_time: if latest_sync_time is None or last_sync_time > latest_sync_time: latest_sync_time = last_sync_time # Hiçbir tarih bulunamazsa varsayılan değer return latest_sync_time if latest_sync_time else "1970-01-01T00:00:00Z" except Exception as e: print(f"Error while fetching global last sync time: {e}") return "1970-01-01T00:00:00Z"
Editor is loading...
Leave a Comment