我尝试执行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
任何想法?
答案 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
服务器并解决了问题。