1 回答

TA贡献1859条经验 获得超6个赞
好了,您将必须找到某种方法将engine变量传递给custom_db_api模块。这可能有点干净...
Base = declarative_base()
class Something(Base):
pass
def initialize(engine):
Something.__table__ = Table('something', Base.metadata, autoload_with=engine)
...或者如果您可以从某些“全局”(如)中推断出正确的引擎初始化参数sys.argv,则可以使用类似的方法...
import sys
Base = declarative_base()
if len(sys.argv) > 1 and sys.argv[1] == '--use-alt-db':
engine = create_engine('mysql://user:pass@alt_host/db_name')
else:
engine = create_engine('mysql://user:pass@main_host/db_name')
table = Table('something', Base.metadata, autoload_with=engine)
class Something(Base):
__table__ = table
有点取决于您打算如何告诉程序使用哪个DB。
添加回答
举报