如何在我自己的数据库上使用flask Migrate和SQLAlchemy,并连接到我不想迁移的第三方数据库?

问题描述 投票:1回答:1

我发现了一种通过binds与Flask连接到多个数据库的方法。

事实提出问题:

  1. 我用SQLAlchemy定义了自己的数据库模型。
  2. 我使用Flask-Migrate生成我的数据库
  3. 我希望连接到第三方数据库并使用SQLAlchemy ORM
  4. 我希望使用SQLAlchemy ORM以如下方式查询第三方数据库:db.session.query(THIRDPARTYMODEL).filter_by(id=id)
  5. 我很担心,一旦我定义了新模型并使用Flask Migrate,它将尝试创建一个新的迁移并创建我已经拥有的表。
  6. 我希望同时使用我自己的数据库和第三方数据库。

如何连接到第三方数据库并使用SQLAlchemy ORM查询它而不必担心Flask Migrate尝试在第三方数据库上生成新表?

python-3.x orm flask sqlalchemy flask-migrate
1个回答
1
投票

Flask-Migrate不会自动迁移多个数据库,默认情况下只从Flask-SQLAlchemy迁移主数据库。

问题是,如果您创建了属于另一个数据库的其他模型,Alembic会将它们视为该主数据库的一部分,因此它将编写包含整个模型集的主数据库的迁移。

为了让事情按照您想要的方式工作,您需要确保在调用manage.py db ...命令集时不会导入那些不属于主数据库的其他模型。

您还可以告诉Flask-Migrate和Alembic在初始化迁移时使用flask db init --multidb来支持迁移多个数据库。

© www.soinside.com 2019 - 2024. All rights reserved.