ari*_*kfr 6 python sqlalchemy flask-sqlalchemy alembic flask-migrate
我们正在使用SQLAlchemy和Alembic(以及Flask-SQLAlchemy和Flask-Migrate)。如何检查是否有待处理的迁移?
我尝试查看Alembic和Flask-Migrate的文档,但找不到答案。
您可以通过以下方式以编程方式执行此操作:
from alembic import config
from alembic import script
from alembic.runtime import migration
import sqlalchemy
import exceptions
engine = sqlalchemy.create_engine(DATABASE_URL)
alembic_cfg = config.Config('alembic.ini')
script_ = script.ScriptDirectory.from_config(alembic_cfg)
with engine.begin() as conn:
context = migration.MigrationContext.configure(conn)
if context.get_current_revision() != script_.get_current_head():
raise exceptions.DatabaseIsNotUpToDate('Upgrade the database.')
Run Code Online (Sandbox Code Playgroud)
我还发布了带有此检查的要点。
您可以使用current子命令确定您的项目是否为最新迁移:
最新迁移时的示例输出:
(venv) $ python app.py db current
f4b4aa1dedfd (head)
关键是(head)出现在修订号之后。这告诉您这是最近的迁移。
以下是我添加新迁移后但在升级数据库之前发生的变化:
(venv) $ python app.py db current
f4b4aa1dedfd
我跑后db upgrade得到:
(venv) $ python app.py db current
f3cd9734f9a3 (head)
希望这可以帮助!
| 归档时间: |
|
| 查看次数: |
1225 次 |
| 最近记录: |