2016-08-27 17 views
5

Tôi muốn đặt lại cơ sở dữ liệu của dự án đường ray 5 của tôi, nhưng lệnh rails db:reset không hoạt động.đường ray 5 db: đặt lại không hoạt động

errormessage:

Permission denied @ unlink_internal - C:/sites5/dawnrebirth/db/development.sqlite3 
Couldn't drop database 'db/development.sqlite3' 
rails aborted! 
Errno::EACCES: Permission denied @ unlink_internal - C:/sites5/dawnrebirth/db/development.sqlite3 
bin/rails:4:in `require' 
bin/rails:4:in `<main>' 
Tasks: TOP => db:drop:_unsafe 
(See full trace by running task with --trace) 

Trả lời

12

Thông thường khi rake db:reset không chạy hoặc làm việc cho tôi, tôi chỉ xóa tệp development.sqlite3 và schema.rb và chạy lại lệnh rake db:migrate để tạo lại cả hai tệp. Nhưng hãy lưu ý để Không bao giờ thử điều này trong một môi trường sản xuất xin vui lòng.

+0

Điều này hoạt động ngay bây giờ, thx – Max

0

Hình như đường ray cố gắng để xóa các tập tin nhưng không thành công. Kiểm tra như sau:

  • là ứng dụng của bạn đang chạy và được kết nối với tệp cơ sở dữ liệu? - Chấm dứt ứng dụng trước khi thực hiện rake db:reset.
  • là một số quy trình khác (ví dụ trình xem cơ sở dữ liệu) được kết nối với tệp cơ sở dữ liệu? - Tương tự như trên, chấm dứt nó trước khi đặt lại.
  • trong trường hợp xấu nhất (bạn không thể xác định nội dung nào đang chặn tệp), rake db:reset ngay sau khi khởi động lại có xác suất cao để chạy thành công.
0

Khi bạn làm rake db: đặt lại, nó đang chạy db: drop và db: setup theo trình tự.

1.Có lẽ bạn cần phải dừng máy chủ và bảng điều khiển Rails của mình.

2.Khởi động lại cũng có thể giải quyết được sự cố.

1

tôi đã nói thêm đầu vào của tôi cho đường ray 5 như một câu trả lời, vì vậy theo yêu cầu ...

Thứ nhất, ngăn chặn các máy chủ ray.

Thứ hai, chạy các lệnh 3 ...

rails db:drop 
rails db:schema:load 
rails db:reset 

Tôi ghét đào qua tác phẩm, vì vậy đây là dễ dàng hơn & nhanh hơn cho tôi vì đi xóa một số tập tin. Caveat: Cho dù bạn đang sử dụng sửa chữa của tôi hay không - luôn luôn sao lưu lược đồ của bạn một nơi nào đó mỗi ngày (như với một hệ thống repo ... github/bitbucket).

I believe 'cào' có thể được sử dụng thay cho đường ray cho các phiên bản trước đường ray 5, nhưng đã không kiểm tra lại đường ray 3 hoặc 2.

Như @ govind-shaw nói ... một trong hai cách, bạn phải dừng máy chủ đường ray & khởi động lại.

Các vấn đề liên quan