2010-09-15 21 views
7

Tôi đã bắt đầu học ray3 vài ngày trước và kể từ hôm nay, mỗi khi tôi chạy thử nghiệm đơn vị cho mô hình của mình, tôi nhận được thông báo lỗi này:Rails3 ActiveRecord :: StatementInvalid: ... không có bảng nào trong mọi thử nghiệm

ActiveRecord::StatementInvalid: SQLite3::SQLException: no such table: users: DELETE FROM "users" WHERE 1=1

các thử nghiệm diễn ra suôn sẻ ngày hôm qua, tôi chạy chúng ngày hôm nay (quay trở lại tất cả mọi thứ sang trạng thái từ khi họ đang làm việc) ... và tôi vẫn nhận được lỗi.

Tôi đang sử dụng đường ray 3 phát hành trên Windows7 64 bit, SQLite 3.7.2, ruby ​​187 (nhưng tôi có nhiều cài đặt ruby ​​- sử dụng pik để chọn 187)

Bất kỳ ý tưởng về sửa chữa vấn đề này?

Trả lời

11

Cần kiểm tra xem cơ sở dữ liệu thử nghiệm của bạn có được thiết lập đúng cách bằng lược đồ từ cơ sở dữ liệu phát triển của bạn hay không. Bạn có thể đạt được điều này với:

rake db:test:prepare 
+0

Và đừng quên 'rake db: tạo RAILS_ENV = test' trước đó. –

13

Nếu bạn tạo mô hình bằng trình tạo đường ray, bạn có thể đã bỏ qua các tệp cố định đang cố gắng truy cập vào bảng không còn ở đó nữa. Đối với tôi, xóa tệp yml đã giải quyết được sự cố.

Điều này đã được trả lời tại đây: https://stackoverflow.com/a/6222934

+0

Đồ đạc thường được nạp vào các mô hình; Nếu một bảng không còn tồn tại, bạn sẽ nhận được lỗi này; Loại bỏ các đồ đạc tải vào bảng không tồn tại; – FlyingV

+0

Có, hoặc nó có thể xảy ra nếu bạn đã đổi tên một số kiểu máy và cũng không được đổi tên thành tệp cố định. – Magne

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