【发布时间】:2012-02-17 13:52:30
【问题描述】:
我正在使用 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
【问题讨论】:
-
你能登录一个适当特权的PostgreSQL用户,然后
select * from pg_stat_activity -
我当然可以。我刚刚通过 pgAdmin III 执行了这个查询: -- 执行查询:select * from pg_stat_activity 总查询运行时间:11 毫秒。检索到 4 行。
-
@derobert,感谢您的回复,但今天早上迁移对我有用。没什么不同 - 相同的迁移文件。也许计算机只需要重新启动?奇怪。
-
嗯,很高兴它起作用了……它可能在一夜之间启动了 PosgreSQL 的 autovacuum 或 auto-stats 集合。顺便说一句:pg_stat_activity 选择的想法是你会看到迁移正在运行什么查询。当您刚刚粘贴行数时有点失败,没有行...
标签: ruby ruby-on-rails-3 dbmigrate