Flask-Migrate 在表修改时挂起

Sob*_*gen 7 python postgresql flask-migrate

我在使用 Flask-Migrate 运行升级命令时遇到问题。最初我试图一次修改三个表但它挂了,我把它缩小到一个特定的表(其他升级没有问题)。我没有看到数据库上的任何锁。我正在使用 Postgres,目前只是在开发环境中工作。migrate 命令似乎工作正常并且生成的upgrade方法没有任何问题(见代码)

def upgrade():
    # ### commands auto generated by Alembic - please adjust! ###
    op.drop_column('equipment', 'criteria_notes')
    # ### end Alembic commands ###
Run Code Online (Sandbox Code Playgroud)

一旦我运行升级命令,我就会卡在这里:

>flask db upgrade
INFO  [alembic.runtime.migration] Context impl PostgresqlImpl.
INFO  [alembic.runtime.migration] Will assume transactional DDL.
INFO  [alembic.runtime.migration] Running upgrade 76bf72d8e0e4 -> 1723c01f0606, empty message
Run Code Online (Sandbox Code Playgroud)

带有闪烁的光标。当我退出命令窗口(我正在使用 Windows)时,没有应用任何更改。

我试过了

  • 重启电脑
  • 使用 pgAdmin 寻找锁或其他会话
  • 修改其他表,能够添加和删除列

Dav*_*mic 5

您可能有其他进程连接到此数据库。

这发生在我身上,我将 celery、uwsgi 和一个单独的自定义进程都连接到生产服务器上的 Flask DB,我想知道为什么升级会挂起。

一旦我手动关闭这些进程,升级脚本就可以正常运行而不会挂起。

就我而言,我在意识到这一点之前也尝试过重新启动,但这没有帮助,因为这些其他进程被编程为在启动时启动。


use*_*806 0

就我而言,这是由于桌子上的锁造成的。

select * from pg_locks; 
Run Code Online (Sandbox Code Playgroud)

在 postgres 中向我展示了发生了什么。