Можно ли использовать autoload
для таблицы в Flask-SQLAlchemy
при использовании вторичной базы данных?
Я пытался настроить bind_key
в config.py
, чтобы иметь доступ к двум отдельные базы данных, но я не могу получить его в autoload
таблицу из вторичной базы данных db2
from flask import Flask, jsonify, abort, request
from flask_sqlalchemy import SQLAlchemy
from flask_migrate import Migrate
app = Flask(__name__)
app.config.from_pyfile('config.py')
db = SQLAlchemy(app)
migrate = Migrate(app, db)
class TAB1(db.Model):
__tablename__ = 'TABLE1'
__bind_key__ = 'db1'
__table_args__ = {
'autoload': True,
'autoload_with': db.engine
}
class TAB2(db.Model):
__bind_key__ = 'db2'
__tablename__ = 'TABLE2'
__table_args__ = {
'autoload': True,
'autoload_with': db.engine
}
config.py
SQLALCHEMY_DATABASE_URI = "mysql+mysqlconnector://root:example@database1-db:9001/database1"
SQLALCHEMY_BINDS = {
'db2': "postgres://postgres:example@database2-db:9002/database2",
'db1': SQLALCHEMY_DATABASE_URI
}
Я получаю сообщение об ошибке:
sqlalchemy.exc.NoSuchTableError: `TABLE2`
Я подозреваю, что мне нужно изменить autoload_with
, чтобы каким-то образом относиться к bind_key
, но не могу понять, как?