2011-12-21 27 views
5

Tôi mới vào RoR và tôi tiếp tục nhận được thông báo lỗi này:

$ rake db:migrate 
== CreateUsers: migrating ==================================================== 
-- create_table(:users) 
rake aborted! 
An error has occurred, this and all later migrations canceled: 

SQLite3::SQLException: table "users" already exists: CREATE TABLE "users" ("id" 
INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar(255), "email" varchar 
(255), "created_at" datetime, "updated_at" datetime) 

Tasks: TOP => db:migrate 
(See full trace by running task with --trace) 

Tôi đã tìm kiếm một giải pháp trong 3 ngày , nhưng tôi dường như không thể tìm thấy bất cứ điều gì phù hợp với tôi.

Cảm ơn bạn đã trợ giúp của bạn :) PS - Tôi đang chạy khỏi Windows.

Trả lời

7

table "users" already exists có vẻ là vấn đề. Bạn đã cố gắng xóa bảng theo cách thủ công khỏi cơ sở dữ liệu của mình với một số SQLITE admin tool chưa?

Hoặc bạn có thể bao gồm bảng xóa trong tập lệnh di chuyển của mình (nên được gọi là create_users.rb bên trong thư mục db/migrate của bạn). Bên def up chèn drop_table :users:

 def up 
     drop_table :users 

     create_table :users do |t| 
     t.string :name 
     #... 

     t.timestamps 
     end 

Oh và tôi nhớ theo thời RoR tôi rằng tên bảng "Người dùng" có thể gây ra các vấn đề sau này. Có thể điều này có liên quan.

+0

Cảm ơn Pete! Điều này đã làm việc! – Michele

+0

cảm ơn. Tôi cũng gặp vấn đề này. Giải quyết bằng cách xóa cơ sở dữ liệu của tôi –

1

Vì bảng đã tồn tại, bạn cần xóa/xóa bảng trước khi thực hiện di chuyển.

Cách dễ dàng, GUI để thực hiện việc này là với Trình duyệt cơ sở dữ liệu SQLite (http://sourceforge.net/projects/sqlitebrowser/).

Nhấp vào nút có biểu tượng Bảng X. Chọn Bảng Người dùng bấm Xóa.

Sau đó chạy rake db:migrate

Bada bùng nổ bada bing

5

Không chắc chắn nếu bạn là làm theo hướng dẫn Michael Hartl về RoR.

Nhưng ai đó đã nói rằng có một vấn đề trong các bước của hướng dẫn http://archive.railsforum.com/viewtopic.php?id=44944

rake db:drop:all < ---------- sẽ lau tất cả mọi thứ sau đó chạy rake db:migrate nữa nên khắc phục vấn đề.

Chúc may mắn

+0

Tôi đã phải chạy 'rake db: create' sau khi' rake db: drop: all' trước khi tôi có thể chạy 'rake db: migrate'. –

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