19

Próbowałem uruchomić $ bundle exec rake db:reset i okazało się, że opierając się na konsoli

Couldn't drop db/development.sqlite3 : #<Errno::EACCES: Permission denied - c:/sample_app/db/development.sqlite3> 
db/development.sqlite3 already exists 
-- create_table("users", {:force=>true}) 
    -> 0.3940s 
-- add_index("users", ["email"], {:name=>"index_users_on_email", :unique=>true}) 

    -> 0.1280s 
-- initialize_schema_migrations_table() 
    -> 0.0010s 
-- assume_migrated_upto_version(20120419034627, ["c:/sample_app/db/migrate 
"]) 
    -> 0.0040s 

Jak mogę go rozwiązać?

Edit byłem po samouczek i mówi mi, aby uruchomić powyższe polecenie, aby usunąć wszystkie dane z bazy bezpiecznie. Używam też konta administratora.

+0

tego sprawdzić. To będzie pomocne http://stackoverflow.com/questions/4116067/rails-how-to-recreate-the-database – naren

+0

Dzięki za informację, ale mówią o komendach, ale mam polecenie, które wypisuje powyższy komunikat o błędzie – WowBow

Odpowiedz

41

Po wykonaniu db:reset, po kolei działają db:drop i db:setup. Twój error message oznacza, że ​​nie można usunąć db/development.sqlite.

Jeśli jesteś w systemie Windows, być może musisz zatrzymać serwer i konsolę Rails. W przeciwnym razie sprawdź, co uniemożliwia usunięcie pliku. Może to być problem z uprawnieniami. Restart może również rozwiązać problem.

+2

Ponownie uruchomiłem wszystko, co używa zasobów szyn i wszystko jest już w porządku. – WowBow

+3

Miałem ten sam problem, zatrzymanie serwera szyn było wszystkim, co musiałem zrobić. Dzięki! – Shawn

+0

ta odpowiedź jest poprawna! Miałem ten sam problem i zatrzymałem serwer na jakiś czas, aby polecenie zadziałało. – muhnizar

1

Wiem, że to stary post, ale właśnie miałem ten problem (nadal problemy sqlite3 z Windows), a podczas ponownego uruchamiania, zamykanie wiersza poleceń i zatrzymywanie serwera nie działało, udało mi się go rozwiązać przez faktycznie działa każdy z htanta powyższych poleceń kolejno: 1. bundle exec rake db: drop 2. bundle exec rake db: create 3. bundle exec rake db: migrować

Jeśli db: Reset tylko te komendy mimo wszystko, nie rozumiem, dlaczego to nie działa, ale poszczególne polecenia czynią?

+0

zobacz mój komentarz powyżej. spróbuj 'db: migrate: reset', aby uruchomić wszystkie te polecenia. –

+0

Dziękuję, @ ​​grist. Łamanie poleceń działało, gdy nic innego nie miało miejsca. – Jaime

1

Próbowałem rozwiązać ten sam problem. Zatrzymanie serwera Rails w systemie Windows nie pomogło, ale zrestartowanie całego środowiska spowodowało, że tricks, exec exec rake db: reset przeszedł, ale pamiętaj, aby nie uruchamiać serwera wcześniej, ponieważ wywoła ten sam błąd. Kontynuuj z

$ bundle exec rake db:reset 
$ bundle exec rake db:populate 
$ bundle exec rake test:prepare 

i następnie uruchom serwer Rails.

0

Inną możliwą odpowiedzią jest to, że plik bazy danych jest otwarty. Zamknij te pliki i zatrzymaj serwer. Powinien działać.

0

do usunięcia całej bazy danych po prostu dać rake db: setup spada i ponownie tworzy bazę danych dla ciebie