diff --git a/ogn/collect/database.py b/ogn/collect/database.py index 2710d88..1a36dee 100644 --- a/ogn/collect/database.py +++ b/ogn/collect/database.py @@ -9,14 +9,13 @@ from ogn.collect.celery import app logger = get_task_logger(__name__) -def delete_device_infos(session, address_origin): +def update_device_infos(session, address_origin, csvfile=None): + device_infos = get_ddb(csvfile=csvfile, address_origin=address_origin) + session.query(DeviceInfo) \ .filter(DeviceInfo.address_origin == address_origin) \ .delete() - session.commit() - -def update_device_infos(session, device_infos): session.bulk_save_objects(device_infos) session.commit() @@ -30,8 +29,7 @@ def import_ddb(): logger.info("Import registered devices fom the DDB...") address_origin = AddressOrigin.ogn_ddb - delete_device_infos(app.session, address_origin) - counter = update_device_infos(app.session, get_ddb(address_origin=address_origin)) + counter = update_device_infos(app.session, address_origin) logger.info("Imported {} devices.".format(counter)) @@ -42,6 +40,5 @@ def import_file(path='tests/custom_ddb.txt'): logger.info("Import registered devices from '{}'...".format(path)) address_origin = AddressOrigin.user_defined - delete_device_infos(app.session, address_origin) - counter = update_device_infos(app.session, get_ddb(csvfile=path, address_origin=address_origin)) + counter = update_device_infos(app.session, address_origin, csvfile=path) logger.info("Imported {} devices.".format(counter)) diff --git a/ogn/commands/database.py b/ogn/commands/database.py index aa66cd6..039e89f 100644 --- a/ogn/commands/database.py +++ b/ogn/commands/database.py @@ -1,6 +1,6 @@ from ogn.commands.dbutils import engine, session from ogn.model import Base, AddressOrigin -from ogn.utils import get_ddb, get_airports +from ogn.utils import get_airports from ogn.collect.database import update_device_infos from manager import Manager @@ -51,8 +51,8 @@ def import_ddb(): print("Import registered devices fom the DDB...") address_origin = AddressOrigin.ogn_ddb - counter = update_device_infos(session, address_origin, - get_ddb(address_origin=address_origin)) + counter = update_device_infos(session, + address_origin) print("Imported %i devices." % counter) @@ -63,8 +63,9 @@ def import_file(path='tests/custom_ddb.txt'): print("Import registered devices from '{}'...".format(path)) address_origin = AddressOrigin.user_defined - counter = update_device_infos(session, address_origin, - get_ddb(csvfile=path, address_origin=address_origin)) + counter = update_device_infos(session, + address_origin, + csvfile=path) print("Imported %i devices." % counter)