हमने जो किया वह निष्पादित होने से पहले प्रश्नों को पकड़ने के लिए sqlalchemy के ईवेंट तंत्र का उपयोग करना था और स्कीमा को बदलने के लिए एक उपसर्ग जोड़ना था:
def before_cursor_execute(conn, cursor, statement, parameters, context, executemany):
schema_name = <Logic to resolve schema name>
statement = "SET search_path TO '%s'; %s" % (schema_name, statement)
return statement, parameters
......
(later in the code)
listen(Engine, 'before_cursor_execute', before_cursor_execute, retval=True)
इस तरह, हम एलेम्बिक के माइग्रेट को कई बार चला सकते हैं, यह सुनिश्चित करते हुए कि प्रत्येक बार स्कीमा_नाम सही ढंग से हल किया गया है, और सब कुछ सुचारू रूप से काम करता है