У меня есть пакет базы данных, который содержит несколько модулей, а именно student_table и модуль db,
в student_table у меня есть определение, это определение, как это
from sqlalchemy import Table, MetaData, String, Column, Integer
metadata = MetaData()
class User(object):
def __init__(self, user_id, name):
self.user_id = user_id
self.name = name
user_table = Table('twitter_user', metadata,
Column('id', Integer, primary_key=True),
Column('name', String(100))
)
и в db.py у меня есть функции создания базы данных, которые как это
def prepareDB():
"""
sets global variables based to access database
"""
read_settings()
engine = create_engine('mysql://'+setting_data["database_username"]+':'+setting_data["database_password"]+'@'+setting_data["database_host"]+'/'+setting_data["database_name"]+'?charset=utf8')
Session = sessionmaker(bind=engine)
global session
session = Session()
metadata.create_all(engine)
mapper(database.User, database.user_table)
Моя проблема в том, что метаданные требуются модулем db для создания движка, а также модулем студента для определения, однако я не вижу способа сделать это без создания циклической зависимости.
что я могу сделать, чтобы исправить эту ситуацию.