Flask Sqlalchemy: отношения между различными модулями

Я следую учебному пособию по Flask-SQLAlchemy. У меня есть колба 0,9, sqlalchemy 0,7,8 и колба-sqlalchemy 0,16 на Python 2,6.

Я пытаюсь создать "один ко многим" отношения, как в их уроке.

class Person(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(50))
    addresses = db.relationship('Address', backref='person',
                                lazy='dynamic')

class Address(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    email = db.Column(db.String(50))
    person_id = db.Column(db.Integer, db.ForeignKey('person.id'))

После этого я могу создать базу данных:

from DataBase.Tables.MyClass import db
db.create_all()

Это хорошо работает, когда оба класса создаются в одном файле.

Это больше не работает, когда я хочу создать это через 2 разных файла (2 разных модуля).

Это простоexample (Я пытаюсь сделать что-то намного более сложное с большим количеством классов, и мне нужно, чтобы отношения существовали между двумя разными модулями, но я упросту это, чтобы мой вопрос было легче понять.)

У меня есть 2 модуля: Персона и Адрес, оба из них имеют:

app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///C:\\MyBase\\Base.sqlite'
db = SQLAlchemy(app)

и у каждого из них есть объявление класса, написанного ранее.

Моя основная функция в 3-м модуле:

from DataBase.Tables.Person import db as person_db
from DataBase.Tables.Address import db as address_db

if __name__ == "__main__":
    import DataBase.Tables.Person
    import DataBase.Tables.Address
    person_db.create_all()
    address_db.create_all()

Я все еще получаю ошибку в Eclipse:

* sqlalchemy.exc.NoReferencedTableError: внешний ключ, связанный со столбцом & quot; Address.person_id & apos; не удалось найти таблицу «персона» с помощью которого можно сгенерировать внешний ключ для целевого столбца 'sid' *

Я мог бы найти другой пост с кем-то, предлагающим использовать "метаданные" но я не смог найти правильный способ использовать это.

У кого-нибудь есть идея решить эту проблему?

Спасибо !

Ответы на вопрос(1)

Ваш ответ на вопрос