Flask-SQLAlchemy-如何从绑定(第二个数据库)自动加载表

时间:2020-07-10 10:43:29

标签: sqlalchemy flask-sqlalchemy

使用辅助数据库时,是否可以对autoload中的表使用Flask-SQLAlchemy

我尝试在bind_key中设置config.py,以便可以访问两个单独的数据库,但是无法从辅助数据库{ {1}}

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` ,但无法弄清楚怎么做?

1 个答案:

答案 0 :(得分:0)

解决了这个问题,

'autoload_with': db.get_engine(bind="db2")