2012-01-24 13 views
6

Estoy usando PostgreSQL, Rails 3.1.3 y Ruby 1.9.3. Estoy luchando para usar db:migrate como se describe here.db: migrate se cuelga en la migración simple

Esto es lo que estoy viendo en el terminal:

[email protected]:~/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}) 

y luego el código cuelga en este punto. ¿Alguna idea de por qué?

Desde: 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

¿Puede conectarse un usuario PostgreSQL apropiadamente privilegiada, y hacer 'SELECT * FROM pg_stat_activity' – derobert

+0

Estoy seguro. Acabo de ejecutar esta consulta a través de pgAdmin III: - Consulta de ejecución: select * from pg_stat_activity Duración total de la consulta: 11 ms. 4 filas recuperadas. – Abram

+0

@derobert, gracias por su respuesta, pero la migración me ha funcionado esta mañana. Nada diferente: el mismo archivo de migración. Tal vez la computadora solo necesitaba un reinicio? Extraño. – Abram

Respuesta

6

que tenían el mismo problema .. descubrí que no había transacción inactivo que bloqueó otras preguntas sobre esta mesa ..

Run:

heroku pg:ps --app=... 

Para ver los procesos de bases de datos. Tendrá que matar el proceso de reposo:

heroku pg:kill 913 --force --app=... 

(913 es el ID de proceso inactivo -> cambiar a sus necesidades)

+0

Antes de ejecutar esto, intente la migración después de ctrl c'ing su servidor de rieles y cualquier consola de rieles abiertos si los tiene. –

8

que acaba de tener un problema similar, cuando una migración muy sencilla estaba haciendo tiempo, sin razón aparente. Creo que el problema tiene que ver con no poder obtener una conexión a la base de datos. Salí de una sesión de consola de rieles que había abierto en otra terminal y luego la migración terminó de inmediato sin problemas.

+1

Mi solución fue la misma también. Cerré mi conexión en otra pestaña del terminal y la migración finalizó de inmediato. – Sisi

+0

Lo mismo aquí. He estado enfrentando este problema varias veces y fue porque tenía una ventana de terminal de consola de rieles en otra pestaña. Lo cerró, ejecutó la migración y terminó con éxito. – Francisco

Cuestiones relacionadas