From 4daf672f25812e5808333587ccc8cc38dc97b382 Mon Sep 17 00:00:00 2001 From: Brady James Garvin <bgarvin@cse.unl.edu> Date: Sun, 18 Jul 2021 13:04:58 -0500 Subject: [PATCH] Added a guard to prevent duplicate starter data. --- diner_installer.py | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/diner_installer.py b/diner_installer.py index 6ab1443..cbca811 100644 --- a/diner_installer.py +++ b/diner_installer.py @@ -2,7 +2,11 @@ from sys import stderr from sqlalchemy.exc import SQLAlchemyError -from diner import DinerDatabase, Menu, Item, Order, OrderItem +from diner import DinerDatabase, Persisted, Menu, Item, Order, OrderItem + + +def already_has_data(session): + return any(session.query(table).first() is not None for table in Persisted.metadata.sorted_tables) def add_starter_data(session): @@ -27,9 +31,12 @@ def main(): diner_database.ensure_tables_exist() print('Tables created.') # session = diner_database.create_session() - # add_starter_data(session) - # session.commit() - # print('Records created.') + # if already_has_data(session): + # print('Not creating records because some already exist.') + # else: + # add_starter_data(session) + # session.commit() + # print('Records created.') except SQLAlchemyError as exception: print('Database setup failed!', file=stderr) print(f'Cause: {exception}', file=stderr) -- GitLab