Есть приложение на Python, использующее flask-SqlAlchemy 1.4. В нём подключены две базы данных, таблицы которых ссылаются на справочник из первой базы:
class Colors(db.Model):
__bind_key__ = 'first'
id = db.Column(db.Integer, primary_key=True)
color = db.Column(db.String(6))
class Materials(db.Model):
__bind_key__ = 'first'
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(20))
color = db.Column(db.Integer, db.ForeignKey('colors.id'))
colors = db.relationship(
'Colors', backref=db.backref('materials', lazy='dynamic')
)
class Elements(db.Model):
__bind_key__ = 'second'
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(20))
color = db.Column(db.Integer, db.ForeignKey('colors.id'))
colors = db.relationship(
'Colors', backref=db.backref('elements', lazy='dynamic')
)
При попытке перехода на flask-SqlAlchemy 2.2 приложение запустилось, но после первого запроса выдало ошибку по ForeignKey на справочник из второй базы. Что вроде бы логично: во второй базе этого справочника нет, но в старой версии всё работало? Сходу не нашёл объяснения этого феномена. Объясните пожалуйста, в чём тут причина и как это грамотно обойти?