5
我想使這個多對多的聯接工作與Flask-SQLAlchemy和兩個MySQL數據庫,它是非常接近,除非它使用錯誤的數據庫連接表。這裏的基本知識...多對多多數據庫加入Flask-SQLAlchemy
我有main_db
和vendor_db
。這些表設置爲main_db.users
,main_db.user_products
(關係表),然後設置爲vendor_db.products
。應該很清楚這些都是如何連接的。
,我塞汀了數據庫這樣的:
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://user:[email protected]/main_db'
app.config['SQLALCHEMY_BINDS'] = {
'vendor_db': 'mysql://user:[email protected]/vendor_db'
}
模型定義的設置是這樣的:
from app import db
# Setup relationship
user_products_tbl = db.Table('user_products', db.metadata,
db.Column('user_id', db.Integer, db.ForeignKey('users.user_id')),
db.Column('product_id', db.Integer, db.ForeignKey('products.product_id'))
)
class User(db.Model):
__tablename__ = 'users'
id = db.Column('user_id', db.Integer, primary_key=True)
products = db.relationship("Product", secondary=user_products_tbl,
backref="users", lazy="dynamic")
class Product(db.Model):
__bind_key__ = 'vendor_db'
__tablename__ = 'products'
id = db.Column('product_id', db.Integer, primary_key=True)
name = db.Column(db.String(120))
的問題是,當我嘗試獲取用戶的產品,它試圖使用vendor_db
作爲連接表而不是main_db
。任何想法,我可以使它main_db
而不是?我已經嘗試在關係表定義上設置另一個綁定到main_db
並設置info={'bind_key': 'main_db'}
,但沒有運氣。謝謝!