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' *
Я мог бы найти другой пост с кем-то, предлагающим использовать "метаданные" но я не смог найти правильный способ использовать это.
У кого-нибудь есть идея решить эту проблему?
Спасибо !