[PYTHON] Flask-Migrate beendet das Upgrade der Flask-Datenbank nicht

Überblick

Ich werde die Lösung erklären, wenn die Verarbeitung mit der folgenden Konsolenausgabe verstopft ist, wenn "flask db upgrade" mit Flask-Migrate ausgeführt wird. In dieser Situation können Sie den Prozess nicht mit Strg + C beenden. Selbst wenn Sie das Terminal schließen, werden die Änderungen im DB-Schema nicht berücksichtigt.

 $ flask db upgrade
INFO  [alembic.runtime.migration] Context impl PostgresqlImpl.
INFO  [alembic.runtime.migration] Will assume transactional DDL.
INFO  [alembic.runtime.migration] Running upgrade 576e5f4a0fe7 -> 2b28fe44cc94, empty message

Die Ursache ist wahrscheinlich ein verstopfter Prozess, der den störenden Prozess beendet. Es ist fast das gleiche, aber ich zeige Ihnen, wie Sie 4 Muster lösen. Da 2 bis 4 nicht verifiziert wurden, kann es möglicherweise nicht gelöst werden.

Methode 1 (Beenden Sie den Prozess vom Terminal aus)

Beenden Sie den Vorgang auf dem Terminal. Wenn Sie den Befehl ps ausführen, wird eine Liste der ausgeführten Prozesse angezeigt, sodass Sie den entsprechenden Prozess darin finden und ihn mit dem Befehl kill zwangsweise beenden können.

##Untersuchen Sie den Prozess, den postgres ausführt
ps aux | grep postgres
##Beenden Sie den entsprechenden Prozess
kill <<Prozess ID>> # ex) kill 12345

Methode 2 (Prozess von PostgreSQL beenden)

Mach es auf Postgres. Möglicherweise können Sie den Vorgang nicht auf diese Weise beenden.

##Untersuchen Sie den gesperrten Prozess
SELECT * FROM pg_locks;  #Die Nummer in der PID-Spalte ist die Prozess-ID

##Beenden Sie den Vorgang
SELECT pg_cancel_backend(Prozess ID);

Methode 3 (postgresql neu starten)

Methode 4 (Terminal neu starten)

Recommended Posts

Flask-Migrate beendet das Upgrade der Flask-Datenbank nicht
Flask Tutorial # 3 ~ DB Linkage ~