rake db:migrate在主环境中挂起

时间:2015-01-13 11:13:47

标签: ruby-on-rails ruby postgresql

我尝试执行rake db:migrate命令,但它挂起,我找到了类似的帖子,但无法得到任何正确的解决方案。 我可以在开发环境中执行此操作而没有任何问题,但在master上它会挂起:

bundle exec bin/rake db:migrate   RAILS_ENV=master
==  AddPublishToPages: migrating ==============================================
-- add_column(:pages, :publish, :boolean)

我执行了命令并等了大约60分钟,但我什么都没得到,这就是log/master.log显示的内容:

Migrating to AddPublishToPages (20150108140428)
   (0.3ms)  BEGIN

ruby​​,rails rake versions:

ruby -v
ruby 1.9.3p194 (2012-04-20 revision 35410) [x86_64-linux]
--

bin/rake --version
rake, version 10.0.4
--

bin/rails --version
Rails 3.2.12

bundle -v
Bundler version 1.1.3

任何想法?

1 个答案:

答案 0 :(得分:0)

问题已解决,问题是该特定表上有许多锁定会话,这就是rake db:migrate无法在该特定表上获取访问权限的原因。因此执行以下查询显示了表上的锁定会话数:

SELECT *
  FROM pg_locks l
  JOIN pg_class t ON l.relation = t.oid AND t.relkind = 'r'
 WHERE t.relname = 'pages';

所以我刚刚重新启动postgresql服务器并解决了问题。