Untitled
unknown
plain_text
9 months ago
1.8 kB
5
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