Flask Sqlalchemy: relacje między różnymi modułami

Podążam za samouczkiem Flask-SQLAlchemy. Mam Flask 0.9, sqlalchemy 0.7.8 i flask-sqlalchemy 0.16 na pythonie 2.6.

Próbuję stworzyć relację „jeden do wielu”, tak jak w ich tutorialu.

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'))

Po tym mogę utworzyć bazę danych:

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

Działa dobrze, gdy obie klasy są tworzone w tym samym pliku.

Nie działa już, gdy chcę to utworzyć za pomocą 2 różnych plików (2 różne moduły).

To jest tylkoprzykład (Próbuję zrobić coś znacznie bardziej skomplikowanego z dużą ilością klas i potrzebuję relacji między dwoma różnymi modułami, ale uprościłem to, aby moje pytanie było łatwiejsze do zrozumienia).

Mam 2 moduły: Osoba i adres, obie mają:

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

a każdy z nich ma deklarację wcześniej napisanej klasy.

Moją główną funkcją jest trzeci moduł:

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()

Nadal pojawia się błąd w Eclipse:

* sqlalchemy.exc.NoReferencedTableError: Klucz obcy powiązany z kolumną „Adres.person_id” nie mógł znaleźć tabeli „osoba”, za pomocą której można wygenerować klucz obcy do kolumny docelowej „sid” *

Mogłem znaleźć inny post z kimś sugerującym użycie „metadanych”, ale nie mogłem znaleźć odpowiedniego sposobu na jego użycie.

Czy ktoś ma pomysł, aby to rozwiązać?

Dzięki !

questionAnswers(1)

yourAnswerToTheQuestion