Skip to content

Commit 5bb3103

Browse files
committed
improve sync_dbs
1 parent ec29653 commit 5bb3103

File tree

2 files changed

+11
-3
lines changed

2 files changed

+11
-3
lines changed

xedocs/json_records.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,8 +77,10 @@ def read(self, schema=None) -> List[dict]:
7777
docs =[]
7878
if schema is not None:
7979
docs = [schema(**doc).pandas_dict() for doc in docs]
80-
df = pd.DataFrame(docs)
80+
df = pd.DataFrame(docs, columns=list(schema.__fields__))
8181
idx_names = list(schema.get_index_fields())
82+
if not all([n in df.columns for n in idx_names]):
83+
return df
8284
if len(idx_names) == 1:
8385
idx_names = idx_names[0]
8486
df = df.set_index(idx_names)

xedocs/xedocs.py

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -173,9 +173,15 @@ def sync_dbs(from_db, to_db, schemas=None):
173173
if isinstance(to_db, str):
174174
to_db = getattr(xedocs.databases, to_db)()
175175

176+
results = {}
176177
for name, accessor in tqdm(from_db.items(), desc="Syncing databases"):
177178
if schemas is None or name in schemas:
178-
docs = accessor.find_docs()
179+
sort=None
180+
if "time" in accessor.schema.get_index_fields():
181+
sort = "time"
182+
docs = accessor.find_docs(sort=sort)
179183
if name not in to_db:
180184
continue
181-
to_db[name].insert(docs)
185+
results[name] = to_db[name].insert(docs, raise_on_error=False)
186+
187+
return results

0 commit comments

Comments
 (0)