def constraint_ddl(tables, engine, drop=False): output = [] for table in tables: for constraint in table.constraints: # Avoid duplicating primary key constraint definitions (they are # included in CREATE TABLE statements). if not isinstance(constraint, PrimaryKeyConstraint): if not drop: ddl = AddConstraint(constraint) else: ddl = DropConstraint(constraint) output.append(str(ddl.compile(dialect=engine.dialect)).strip()) output.append(';\n\n') return output
def create_table_constraints_ddl(tableObj, engine, debug_level=-1): ddl_text = '' constraints = tableObj.constraints for constraint in constraints: ddl_obj = AddConstraint(constraint) 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_constraints_DDL: [{ddl_string}]" log_message(msg) return ddl_string
def constraint_ddl(tables, engine, drop=False): output = [] for table in tables: constraints = sorted(list(table.constraints), key=lambda k: k.name, reverse=drop) for constraint in constraints: # Avoid duplicating primary key constraint definitions (they are # included in CREATE TABLE statements). if not isinstance(constraint, PrimaryKeyConstraint): if not drop: ddl = AddConstraint(constraint) else: ddl = DropConstraint(constraint) output.append(str(ddl.compile(dialect=engine.dialect)).strip()) output.append(';\n\n') return output