我正在使用PostgreSQL,Rails 3.1.3和Ruby 1.9.3。我正在努力使用db:migrate
概述here。
这就是我在终端上看到的:
funkdified@funkdified-laptop:~/railsprojects/hartl$ bundle exec rake db:migrate --trace
** Invoke db:migrate (first_time)
** Invoke environment (first_time)
** Execute environment
** Invoke db:load_config (first_time)
** Invoke rails_env (first_time)
** Execute rails_env
** Execute db:load_config
** Execute db:migrate
== AddEmailUniquenessIndex: migrating ========================================
-- add_index(:users, :email, {:unique=>true})
然后代码挂起。有什么想法吗?
来自:development.log
[1m[36m (0.1ms)[0m [1mSHOW search_path[0m
[1m[35m (0.5ms)[0m SELECT "schema_migrations"."version" FROM "schema_migrations"
Migrating to CreateUsers (20120124022843)
Migrating to AddEmailUniquenessIndex (20120124093922)
[1m[36m (0.1ms)[0m [1mBEGIN[0m
[1m[35m (3.6ms)[0m SELECT distinct i.relname, d.indisunique, d.indkey, t.oid
FROM pg_class t
INNER JOIN pg_index d ON t.oid = d.indrelid
INNER JOIN pg_class i ON d.indexrelid = i.oid
WHERE i.relkind = 'i'
AND d.indisprimary = 'f'
AND t.relname = 'users'
AND i.relnamespace IN (SELECT oid FROM pg_namespace WHERE nspname = ANY (current_schemas(false)) )
ORDER BY i.relname
答案 0 :(得分:11)
我遇到了类似的问题,一个非常简单的迁移暂停了,没有明显的原因。我认为问题与无法获得数据库连接有关。我退出了我在另一个终端打开的rails控制台会话,然后立即完成了迁移,没有任何问题。
答案 1 :(得分:6)
我遇到了同样的问题..我发现有空闲的交易阻止了对此表的进一步查询..
执行命令
heroku pg:ps --app=...
查看数据库进程。你必须杀死空闲进程:
heroku pg:kill 913 --force --app=...
(913是空闲过程的ID - >根据您的需要更改)