def add_column(mod, col): # check for dependencies if mod.db_table_name not in EXISTING_TABLES: create_table(mod) else: if col in EXISTING_TABLES[mod.db_table_name]: return # Column already exists!? column = None for c in mod.db_columns: if c.name == col: column = c break if not column: raise Exception("Trying to create undefined column!") if column.foreign_key: m, c = column.foreign_key M = model_list.get(m) if M.db_table_name not in EXISTING_TABLES: create_table(M) elif c not in EXISTING_TABLES[M.db_table_name]: add_column(M, c) alter_stmt = "ALTER TABLE %s ADD COLUMN %s" % (mod.db_table_name, str(column)) cursor = World.get_world().db.conn.cursor() cursor.execute(alter_stmt) EXISTING_TABLES[mod.db_table_name].append(col)
def add_column(mod, col): # check for dependencies if mod.db_table_name not in EXISTING_TABLES: create_table(mod) else: if col in EXISTING_TABLES[mod.db_table_name]: return # Column already exists!? column = None for c in mod.db_columns: if c.name == col: column = c break if not column: raise Exception('Trying to create undefined column!') if column.foreign_key: m, c = column.foreign_key M = model_list.get(m) if M.db_table_name not in EXISTING_TABLES: create_table(M) elif c not in EXISTING_TABLES[M.db_table_name]: add_column(M, c) alter_stmt = 'ALTER TABLE %s ADD COLUMN %s' % (mod.db_table_name, str(column)) cursor = World.get_world().db.conn.cursor() cursor.execute(alter_stmt) EXISTING_TABLES[mod.db_table_name].append(col)
def create_table(model): if model.db_table_name in EXISTING_TABLES: return # check for dependencies dependencies = [ col.foreign_key for col in model.db_columns if col.foreign_key and col.foreign_key[0] != model.db_table_name ] for mod, col in dependencies: M = model_list.get(mod) if not M: raise Exception("Dependency on unknown model: %s" % str(mod)) if M.db_table_name not in EXISTING_TABLES: create_table(M) elif col not in EXISTING_TABLES[M.db_table_name]: add_column(M, col) # generate create table string table_string = [] table_string.append("CREATE TABLE IF NOT EXISTS %s (" % model.db_table_name) columns_string = [] for col in model.db_columns: columns_string.append(str(col)) for extra in model.db_extras: columns_string.append(unicode(extra)) table_string.append(",".join(columns_string)) table_string.append(")") create_stmt = "".join(table_string) cursor = World.get_world().db.conn.cursor() cursor.execute(create_stmt) EXISTING_TABLES[model.db_table_name] = [col.name for col in model.db_columns]
def create_table(model): if model.db_table_name in EXISTING_TABLES: return # check for dependencies dependencies = [ col.foreign_key for col in model.db_columns if col.foreign_key and col.foreign_key[0] != model.db_table_name ] for mod, col in dependencies: M = model_list.get(mod) if not M: raise Exception('Dependency on unknown model: %s' % str(mod)) if M.db_table_name not in EXISTING_TABLES: create_table(M) elif col not in EXISTING_TABLES[M.db_table_name]: add_column(M, col) # generate create table string table_string = [] table_string.append('CREATE TABLE IF NOT EXISTS %s (' % model.db_table_name) columns_string = [] for col in model.db_columns: columns_string.append(str(col)) for extra in model.db_extras: columns_string.append(unicode(extra)) table_string.append(','.join(columns_string)) table_string.append(')') create_stmt = "".join(table_string) cursor = World.get_world().db.conn.cursor() cursor.execute(create_stmt) EXISTING_TABLES[model.db_table_name] = [ col.name for col in model.db_columns ]