Отсутствуют таблицы pg_locks и pg_stat_activity при попытке диагностировать ActiveRecord :: ConcurrentMigrationError - PullRequest
0 голосов
/ 01 июня 2019

У меня застопорилась миграция Rails, поэтому я нажал ctrl-C и попытался запустить ее заново. Я получил следующую ошибку:

ActiveRecord::ConcurrentMigrationError: 

Cannot run migrations because another migration process is currently running.

Я пробовал решение в этом посте уже. Я выполнил следующую команду, но она не выдала:

richiethomas=# \c re_app_development
psql (9.6.11, server 11.2)
WARNING: psql major version 9.6, server major version 11.
         Some psql features might not work.
You are now connected to database "re_app_development" as user "richiethomas".

re_app_development=# SELECT DISTINCT age(now(), query_start) AS age, pg_stat_activity.pid,pg_locks.granted,pg_stat_activity.application_name,pg_stat_activity.backend_start, pg_stat_activity.xact_start, pg_stat_activity.state_change, pg_stat_activity.waiting, pg_stat_activity.state, pg_stat_activity.query_start, left(pg_stat_activity.query, 60)
re_app_development-#     FROM pg_stat_activity, pg_locks
re_app_development-#     WHERE pg_locks.pid = pg_stat_activity.pid
re_app_development-# 

Я был смущен, почему не было вывода, поэтому я начал с поиска таблиц pg_locks или pg_stat_activity. Ниже приведены все таблицы в моей базе данных (обратите внимание, что я немного изменил порядок таблиц, чтобы сгруппировать созданные таблицы в нижнюю группу, а таблицы, сгенерированные Rails или моими гемами, в первую группу):

re_app_development-# \dt
                   List of relations
 Schema |          Name          | Type  |    Owner     
--------+------------------------+-------+--------------
 public | ar_internal_metadata   | table | richiethomas
 public | flipper_features       | table | richiethomas
 public | flipper_gates          | table | richiethomas
 public | schema_migrations      | table | richiethomas

 public | reports                | table | richiethomas
 public | users                  | table | richiethomas
 public | categories             | table | richiethomas
 public | responses              | table | richiethomas
 public | zip_code_hpis          | table | richiethomas
 public | zip_codes              | table | richiethomas
(13 rows)

Как видите, две таблицы в приведенном выше запросе отсутствуют.

Единственное, что я могу понять, это то, что предупреждение при выборе базы данных уместно здесь:

WARNING: psql major version 9.6, server major version 11.
         Some psql features might not work.

У меня вопрос: где я могу найти эти таблицы, чтобы я мог снять блокировку и повторно запустить миграцию?

1 Ответ

0 голосов
/ 02 июня 2019

Я так и не понял, где были две отсутствующие таблицы, но я смог удалить advisory_lock, просто запустив brew services stop postgresql, а затем brew services start postgresql. Не нужно было бросать мою БД или что-то еще. : -)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...