我发现了一种通过binds与Flask连接到多个数据库的方法。
事实提出问题:
db.session.query(THIRDPARTYMODEL).filter_by(id=id)
如何连接到第三方数据库并使用SQLAlchemy ORM查询它而不必担心Flask Migrate尝试在第三方数据库上生成新表?
Flask-Migrate不会自动迁移多个数据库,默认情况下只从Flask-SQLAlchemy迁移主数据库。
问题是,如果您创建了属于另一个数据库的其他模型,Alembic会将它们视为该主数据库的一部分,因此它将编写包含整个模型集的主数据库的迁移。
为了让事情按照您想要的方式工作,您需要确保在调用manage.py db ...
命令集时不会导入那些不属于主数据库的其他模型。
您还可以告诉Flask-Migrate和Alembic在初始化迁移时使用flask db init --multidb
来支持迁移多个数据库。