In progress: Jeeves communication is now based on SQLAlchemy
This commit is contained in:
parent
0fdc029153
commit
28726fee01
21 changed files with 637 additions and 78 deletions
|
|
@ -7,7 +7,7 @@
|
|||
"""
|
||||
|
||||
|
||||
from models import Articles, Customers, InvoiceRows, OrderRows
|
||||
from models.meta import Articles, Customers, InvoiceRows, OrderRows
|
||||
|
||||
from sqlalchemy import desc
|
||||
from sqlalchemy.inspection import inspect
|
||||
|
|
@ -19,9 +19,10 @@ class Process():
|
|||
"""docstring for Process"""
|
||||
def __init__(self, jvs_query, db_session):
|
||||
super(Process, self).__init__()
|
||||
# Refactor code to use RawSession instead of raw jvs queries
|
||||
self.query = jvs_query
|
||||
self.session = db_session
|
||||
self.logger = logging.getLogger("PyJeeves.process")
|
||||
self.logger = logging.getLogger("PyJeeves." + __name__)
|
||||
|
||||
def _update_model(self, model, kwargs):
|
||||
for k, v in kwargs.items():
|
||||
|
|
@ -47,6 +48,7 @@ class Process():
|
|||
|
||||
if _data:
|
||||
self.logger.info("Syncing %s" % jvs_tbl)
|
||||
nth_item = 0
|
||||
for item in _data:
|
||||
_filter_kwargs = {k: item.get(k) for k in _p_keys}
|
||||
_existing = self.session.query(model).\
|
||||
|
|
@ -57,6 +59,12 @@ class Process():
|
|||
else:
|
||||
_new = model(**item)
|
||||
self.session.add(_new)
|
||||
|
||||
if nth_item % 1000 == 0 and nth_item != 0:
|
||||
self.session.commit()
|
||||
nth_item += 1
|
||||
|
||||
self.session.commit()
|
||||
else:
|
||||
self.logger.info("No sync made for %s" % jvs_tbl)
|
||||
|
||||
|
|
@ -65,4 +73,3 @@ class Process():
|
|||
self._sync_model(Articles, 'Articles')
|
||||
self._sync_model(InvoiceRows, 'InvoiceRows')
|
||||
self._sync_model(OrderRows, 'OrderRows')
|
||||
self.session.commit()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue