From 76f03fa857321cafe425b621a0fe1c5398319409 Mon Sep 17 00:00:00 2001 From: James Miller Date: Fri, 21 Feb 2020 17:34:43 -0600 Subject: [PATCH] fix gendb.py to do armor traits; fix #73 --- data/yaml/gendb.py | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/data/yaml/gendb.py b/data/yaml/gendb.py index 228b9c7..a1da7a9 100644 --- a/data/yaml/gendb.py +++ b/data/yaml/gendb.py @@ -146,7 +146,7 @@ def do_armor(data, conn): id INTEGER PRIMARY KEY, trait_id INTEGER NOT NULL, armor_id INTEGER NOT NULL, - FOREIGN KEY (trait_id) REFERENCES traits(trait_id), + FOREIGN KEY (trait_id) REFERENCES trait(trait_id), FOREIGN KEY (armor_id) REFERENCES armor(armor_id) ); """ @@ -207,7 +207,26 @@ def do_armor(data, conn): else: conn.commit() - # traits in armor + # traits for armor into table trait_armor + # TODO refactor short_name to name in trait + stmt = """ + INSERT INTO trait_armor (trait_id, armor_id) + VALUES ((SELECT trait_id FROM trait WHERE short_name=?),(SELECT armor_id FROM armor WHERE name=?)); + """ + inp_data = [] + for i in data['armor']: + if i['traits'] != None: + for j in i['traits']: + inp_data.append((j, i['name'])) + try: + conn.executemany(stmt, inp_data) + except sqlite3.Error as e: + print("Error creating trait_armor entries: {}".format(e)) + except: + print("Error creating trait_armor entries something other than sqlite3 error") + else: + conn.commit() + # sources in everything # linking it up