Esempio n. 1
0
def index_ddl(tables, engine, drop=False):

    output = []

    for table in tables:
        for index in table.indexes:

            if not drop:
                ddl = CreateIndex(index)
            else:
                ddl = DropIndex(index)

            output.append(str(ddl.compile(dialect=engine.dialect)).strip())
            output.append(';\n\n')

    return output
Esempio n. 2
0
def index_ddl(tables, engine, drop=False):

    output = []

    for table in tables:
        indexes = sorted(list(table.indexes), key=lambda k: k.name,
                         reverse=drop)
        for index in indexes:

            if not drop:
                ddl = CreateIndex(index)
            else:
                ddl = DropIndex(index)

            output.append(str(ddl.compile(dialect=engine.dialect)).strip())
            output.append(';\n\n')

    return output
def create_table_indexes_ddl(tableObj, engine, debug_level=-1):
    ddl_text = ''
    indexes = sorted(list(tableObj.indexes),
                     key=lambda k: k.name,
                     reverse=False)
    for index in indexes:
        ddl_obj = CreateIndex(index)
        try:
            ddl_string = str(ddl_obj.compile(dialect=engine.dialect)).strip()
        except Exception as e:
            # if e.message.find('it has no name')<0:
            #     print(e)
            ddl_string = ''
        if ddl_string:
            if not ddl_text:
                ddl_text = ddl_string
            else:
                ddl_text = ddl_text + '\n' + ddl_string
    ddl_string = ddl_text
    if int(debug_level) > 0:
        msg = f"table [[{tableObj.name}]] create_table_indexes_DDL: [{ddl_string}]"
        log_message(msg)
    return ddl_string