Sobigen
Sobigen

Reputation: 2179

Flask-Migrate hangs on table modificiation

I have an issue on running the upgrade command with Flask-Migrate. Originally I was trying to modify three tables at once and it hung, I narrowed it down to a specific table (the other upgrades worked without issue). I don't see any locks on the database. I'm using Postgres and just working in a development environment at the moment. The migrate command seems to work fine and generates the upgrade method without any issues (see code)

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

Once I run the upgrade command I get stuck here:

>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

with a blinking cursor. When I exit out of the command window (I'm using windows) no changes have been applied.

I've tried

Upvotes: 12

Views: 5865

Answers (5)

Nana Kweku Adumatta
Nana Kweku Adumatta

Reputation: 111

Had the same issue with heroku postgres. When the db is modified locally, the application starts to act wierd. What I do is I restart the dynos for the application

In cases where the application and the db are in different containers, restart the application.

Upvotes: 0

AllanM007
AllanM007

Reputation: 85

I had this same issue with MySql due to locks and this command did the trick for me.

sudo service mysql restart

Upvotes: 3

Pavan Varyani
Pavan Varyani

Reputation: 1526

I had the same issue, this one happened to me because of locks,verify it using

select * from pg_locks; 

There were many PIDs corresponding to each lock,I restarted the postgresql service then ran the upgrade command it worked

sudo systemctl restart postgresql
flask db upgrade

Upvotes: 2

David Simic
David Simic

Reputation: 2101

You likely have other processes connected to this DB.

This happened to me, I had celery, uwsgi, and a separate custom process all connected to the flask DB on a production server, and I was wonder why the upgrades were hanging.

Once I shut these processes down manually the upgrade script ran fine without hanging.

In my case I also tried rebooting before realizing this, and this did not help because these other processes were programmed to startup on boot.

Upvotes: 7

user249806
user249806

Reputation: 299

In my case it was due to locks on the table.

select * from pg_locks; 

in postgres showed me what was happening.

Upvotes: 0

Related Questions