使用db.create_all()运行迁移

时间:2019-05-29 11:14:20

标签: postgresql flask sqlalchemy database-trigger alembic

我需要编写自己的Trigger才能更新Postgres数据库中的某些搜索向量,而Alembic / Sqlalchemy无法自动生成这些向量。

为此,我将自定义SQL添加到了迁移文件中。使用我的开发机,一切正常。但是我注意到在运行测试时会创建触发器。

为了进行测试,我使用了最纯净的毒药。我的conftest.py像这样创建数据库:

@pytest.fixture
def db(app):
    _db.app = app

    with app.app_context():
        _db.create_all()

    Role.insert_roles()  # insert roles

    yield _db  # teardown

    _db.session.close()
    _db.drop_all()

但是此脚本仅创建原始表。我应该更改什么,以便每次创建新数据库时都执行我的自定义SQL?

谢谢

1 个答案:

答案 0 :(得分:0)

我找到了解决方案。我添加了触发DDL,如在此问题中建议的那样:SQLAlchemy declarative: defining triggers and indexes (Postgres 9)