def create_new_table(): tables = get_schema_info(schemainfo) jghstat07 = [t for t in tables if t.tablename == "jghstat07"][0] db = getDBHandle() # print jghstat07.sql_create() db.query(jghstat07.sql_create()) # table_id = 32 # field_id = 333 table_id = Tabelle().getNewId() # print jghstat07.sql_insert(table_id) db.query(jghstat07.sql_insert(table_id)) for f in jghstat07.fields: field_id = Feld().getNewId() # print f.sql_insert(field_id) db.query(f.sql_insert(field_id)) j07 = Tabelle(tabelle="jghstat07") logging.info("Neue Tabelle für %s: %s" % (j07["name"], "jghstat07")) if config.BERLINER_VERSION: merkmale = "merkmale_berlin.py" else: merkmale = "merkmale_standard.py" create_new_kategorien(jghstat07, join(config.EBKUS_HOME, "sql", merkmale)) for f in jghstat07.fields: fupd = Feld() v = Code(code=f.verwtyp, kat_code="verwtyp") fupd["verwtyp"] = v["id"] if f.verwtyp in "kb": kat = Kategorie(code=f.kat_code) fupd["kat_id"] = kat["id"] fupd["kat_code"] = kat["code"] if f.verwtyp in "fk": # kodierte Felder sind Fremdschlüssel nach code fupd["ftab_id"] = Tabelle(tabelle=f.ftable)["id"] if f.verwtyp in "f": # Name für inverse Beziehung fupd["inverse"] = f.inverse feld = Feld(feld=f.fieldname, tab_id=j07["id"]) feld.update(fupd) site = Code(kat_code="dbsite", code=config.SITE) t = TabellenID() t["table_id"] = j07["id"] t["table_name"] = j07["tabelle"] t["dbsite"] = site["id"] t["minid"] = site["mini"] t["maxid"] = site["maxi"] t["maxist"] = 1 t.insert() return True