def build(): with get_connection() as con: con.row_factory = sqlite3.Row cur = con.cursor() foreign_keys = get_equip_keys(cur) cur.execute("SELECT Id, ElementName FROM Elements") foreign_keys.update({row[1]: row[0] for row in cur.fetchall()}) cur.execute("PRAGMA foreign_keys = ON") cur.execute("DROP TABLE IF EXISTS EquipElementalResistances") cur.execute("CREATE TABLE EquipElementalResistances(" "Id INTEGER PRIMARY KEY AUTOINCREMENT, " "Equip INTEGER, " "Element INTEGER, " "Scheme TEXT, " "FOREIGN KEY(Equip) REFERENCES Equips(Id), " "FOREIGN KEY(Element) REFERENCES Elements(Id))") for csv_row in get_from_datamaster('EquipResistances.csv'): if csv_row.get('Category') == 'Element': cur.execute("INSERT INTO EquipElementalResistances (" "Equip, Element, Scheme)" "VALUES (\"{}\", \"{}\", \"{}\")".format( foreign_keys[csv_row.get('EquipName')], foreign_keys[csv_row.get('Resists')], csv_row.get('Scheme')))
def build(): datamaster = get_from_datamaster("EquipTraits.csv") trait_rows_with_stats_by_text = { row["Text"]: row for row in datamaster if row["TraitPropertyName"] == "Stat" } with get_connection() as con: cur = con.cursor() cur.execute("SELECT StatName, Id FROM Stats") stat_ids_by_name = { cur_row[0]: cur_row[1] for cur_row in cur.fetchall() } cur.execute("DROP TABLE IF EXISTS TraitStats") cur.execute("CREATE TABLE TraitStats(" "Id INTEGER PRIMARY KEY AUTOINCREMENT, " "Trait INTEGER, " "Stat INTEGER, " "FOREIGN KEY(Trait) REFERENCES Traits(Id) ," "FOREIGN KEY(Stat) REFERENCES Stats(Id))") for trait in traits.read(): text = trait["text"] trait_row_from_datamaster = trait_rows_with_stats_by_text.get(text) if trait_row_from_datamaster: trait_id = trait["id"] stat_id = stat_ids_by_name[ trait_row_from_datamaster["TraitPropertyValue"]] cur.execute("INSERT INTO TraitStats (" "Trait, Stat) " "VALUES (\"{}\", \"{}\")".format( trait_id, stat_id))
def build(): datamaster = get_from_datamaster("EquipTraits.csv") trait_rows_with_skills_by_text = { row["Text"]: row for row in datamaster if row["TraitPropertyName"] == "Skill" } with get_connection() as con: cur = con.cursor() cur.execute("DROP TABLE IF EXISTS TraitSkills") cur.execute("CREATE TABLE TraitSkills(" "Id INTEGER PRIMARY KEY AUTOINCREMENT, " "Trait INTEGER, " "SkillName TEXT, " "FOREIGN KEY(Trait) REFERENCES Traits(Id))") for trait in traits.read(): text = trait["text"] trait_row_from_datamaster = trait_rows_with_skills_by_text.get( text) if trait_row_from_datamaster: trait_id = trait["id"] skill_name = trait_row_from_datamaster["TraitPropertyValue"] cur.execute("INSERT INTO TraitSkills (" "Trait, SkillName) " "VALUES (\"{}\", \"{}\")".format( trait_id, skill_name))
def build(): with get_connection() as con: cur = con.cursor() cur.execute("DROP TABLE IF EXISTS Characters") cur.execute("CREATE TABLE Characters(" "Id INTEGER PRIMARY KEY AUTOINCREMENT, " "CharacterName TEXT)") for csv_row in get_from_datamaster('Characters.csv'): cur.execute("INSERT INTO Characters (" "CharacterName) " "VALUES (\"{}\")".format(csv_row.get('CharacterName')))
def build(): with get_connection() as con: cur = con.cursor() cur.execute("DROP TABLE IF EXISTS Statuses") cur.execute("CREATE TABLE Statuses(" "Id INTEGER PRIMARY KEY AUTOINCREMENT, " "StatusName TEXT, " "StatusType TEXT)") for csv_row in get_from_datamaster('Statuses.csv'): cur.execute("INSERT INTO Statuses (" "StatusName, StatusType) " "VALUES (\"{}\", \"{}\")".format( csv_row.get('StatusName'), csv_row.get('StatusType')))
def build(): with get_connection() as con: cur = con.cursor() cur.execute("DROP TABLE IF EXISTS Materials") cur.execute("CREATE TABLE Materials(" "Id INTEGER PRIMARY KEY AUTOINCREMENT, " "MaterialName TEXT, " "MaterialPrice INTEGER)") for csv_row in get_from_datamaster('Materials.csv'): cur.execute("INSERT INTO Materials (" "MaterialName, MaterialPrice) " "VALUES (\"{}\", \"{}\")".format( csv_row.get('MaterialName'), # TODO: Change this. ItemPrice? ShopPrice? PurchaseCost? csv_row.get('Price')))
def build(): with get_connection() as con: cur = con.cursor() cur.execute("DROP TABLE IF EXISTS TraitTypes") cur.execute("CREATE TABLE TraitTypes(" "Id INTEGER PRIMARY KEY AUTOINCREMENT, " "TraitTypeName TEXT)") trait_types = set([ row["TraitTypeName"] for row in get_from_datamaster('EquipTraits.csv') ]) for trait_type in trait_types: cur.execute("INSERT INTO TraitTypes (" "TraitTypeName) " "VALUES (\"{}\")".format(trait_type))
def build(): with get_connection() as con: cur = con.cursor() cur.execute("SELECT EquipSlotName, Id FROM EquipSlots") foreign_keys = {cur_row[0]: cur_row[1] for cur_row in cur.fetchall()} cur.execute("PRAGMA foreign_keys = ON") cur.execute("DROP TABLE IF EXISTS Equips") cur.execute("CREATE TABLE Equips(" "Id INTEGER PRIMARY KEY AUTOINCREMENT, " "EquipName TEXT, " "EquipSlot TEXT, " "FOREIGN KEY(EquipSlot) REFERENCES EquipSlots(Id))") for csv_row in get_from_datamaster('Equips.csv'): cur.execute("INSERT INTO Equips (" "EquipName, EquipSlot) " "VALUES (\"{}\", \"{}\")".format( csv_row.get('EquipName'), foreign_keys[csv_row.get('EquipSlotName')]))
def build(): with get_connection() as con: con.row_factory = sqlite3.Row cur = con.cursor() foreign_keys = get_equip_keys(cur) cur.execute("SELECT CharacterName, Id FROM Characters") foreign_keys.update({row[0]: row[1] for row in cur.fetchall()}) cur.execute("PRAGMA foreign_keys = ON") cur.execute("DROP TABLE IF EXISTS DefaultEquips") cur.execute("CREATE TABLE DefaultEquips(" "Id INTEGER PRIMARY KEY AUTOINCREMENT, " "Character INTEGER, " "Equip INTEGER, " "FOREIGN KEY(Character) REFERENCES Characters(Id), " "FOREIGN KEY(Equip) REFERENCES Equips(Id))") for csv_row in get_from_datamaster('DefaultEquips.csv'): cur.execute("INSERT INTO DefaultEquips (" "Character, Equip) " "VALUES (\"{}\", \"{}\")".format( foreign_keys[csv_row.get('CharacterName')], foreign_keys[csv_row.get('EquipName')]))