При попытке обновить базу данных postgresql в Azure загрузка зависает не менее часа без сообщений об ошибках. flask db migrate
работает нормально, без ошибок и предупреждений
Я нашел несколько ссылок на ответственные блокировки, но то, что я смог найти, похоже, указывает на то, что проблема не в этом.
Когда я сбрасываю базу данных, на основе SELECT * FROM pg_locks;
действуют следующие блокировки:
locktype | database | relation | page | tuple | virtualxid | transactionid | classid | objid | objsubid | virtualtransaction | pid | mode | granted | fastpath
------------+----------+----------+------+-------+------------+---------------+---------+-------+----------+--------------------+-----+-----------------+---------+----------
relation | 14335 | 11577 | | | | | | | | 7/21 | 148 | AccessShareLock | t | t
virtualxid | | | | | 7/21 | | | | | 7/21 | 148 | ExclusiveLock | t | t
(2 rows)
, который я понимаю, относится к активному соединению pgsql, в котором я делаю запрос.
Однако после запуска flask db upgrade
замки изменяются на:
locktype | database | relation | page | tuple | virtualxid | transactionid | classid | objid |
objsubid | virtualtransaction | pid | mode | granted | fastpath
---------------+----------+----------+------+-------+------------+---------------+---------+-------+-
---------+--------------------+-----+-----------------------+---------+----------
relation | 14335 | 11577 | | | | | | | | 11/21 | 588 | AccessShareLock | t | t
virtualxid | | | | | 11/21 | | | | | 11/21 | 588 | ExclusiveLock | t | t
relation | 14335 | 18183 | | | | | | | | 9/4 | 140 | AccessShareLock | t | t
relation | 14335 | 18180 | | | | | | | | 9/4 | 140 | AccessShareLock | t | t
relation | 14335 | 2685 | | | | | | | | 9/4 | 140 | AccessShareLock | t | t
relation | 14335 | 2684 | | | | | | | | 9/4 | 140 | AccessShareLock | t | t
relation | 14335 | 3455 | | | | | | | | 9/4 | 140 | AccessShareLock | t | t
relation | 14335 | 2663 | | | | | | | | 9/4 | 140 | AccessShareLock | t | t
relation | 14335 | 2662 | | | | | | | | 9/4 | 140 | AccessShareLock | t | t
relation | 14335 | 2615 | | | | | | | | 9/4 | 140 | AccessShareLock | t | t
relation | 14335 | 1259 | | | | | | | | 9/4 | 140 | AccessShareLock | t | t
virtualxid | | | | | 9/4 | | | | | 9/4 | 140 | ExclusiveLock | t | t
virtualxid | | | | | 8/187 | | | | | 8/187 | 524 | ExclusiveLock | t | t
relation | 14335 | 18210 | | | | | | | | 7/11 | 132 | AccessShareLock | t | t
relation | 14335 | 18209 | | | | | | | | 7/11 | 132 | AccessShareLock | t | t
relation | 14335 | 18207 | | | |
...
relation | 14335 | 24607 | | | | | | | | 9/4 | 140 | ShareRowExclusiveLock | t | f
relation | 14335 | 24607 | | | | | | | | 9/4 | 140 | AccessExclusiveLock | t | f
(58 rows)
Команда обновления Flb dB выводит
INFO [alembic.runtime.migration] Context impl PostgresqlImpl.
INFO [alembic.runtime.migration] Will assume transactional DDL.
INFO [alembic.runtime.migration] Running upgrade db53564bee93 -> 49f15097679f, empty message
а потом просто зависает.
Я не знаю, почему он зависает и почему нигде нет сообщений об ошибках, указывающих на то, почему для перенастройки db требуется так много времени. Ранее я мог применить миграцию к этой же базе данных, но теперь она просто зависает.