2010-07-29 8 views
1
SQLite3::BusyException: database is locked: CREATE UNIQUE INDEX "index_users_on_email" ON "users" ("email") 

je reçois l'erreur ci-dessus lorsque je tente de migrer une migration (écrit ci-dessous)SQLite 3 Exception Occupé dans Rails 2.3.8

class AddIndexEmailUniquenessToUsers < ActiveRecord::Migration 
    def self.up 
    add_index :users,:email,:unique => true 
    end 

    def self.down 
    remove_index :users,:email 
    end 
end 

ce qui a mal tourné. Je n'ai pas fait de verrouillage dans les transactions précédentes.

+0

J'ai eu l'erreur - il y avait une console sandbox ouverte dans mon terminal et elle avait obtenu un verrou sur le db. Je vais supprimer la question ci-dessus. ;) – Anand

+2

Une autre option est de répondre à la question vous-même. De cette façon, certains avec le même problème trouveront votre solution et vérifieront leur console. –

Répondre

3

Vous avez un processus en cours d'exécution (console rails, ./script/server, etc.) qui maintient des connexions ouvertes à la base de données empêchant la migration de modifier une table en cours d'utilisation.

Tuez-les.

Si vous ne pouvez pas trouver un coupable évident, essayez:

ps aux | grep ruby 

... pour voir une liste des processus de rubis qui pourrait se maintenir cette session db.

+2

À ajouter, j'ai utilisé des sessions de terminal mastic et j'ai dû redémarrer la session avant qu'elle ne fonctionne pour moi. – Martin