Có vẻ như điều sau là đúng:
-
20120525005302_create_users.rb
sẽ cố gắng tạousers
trong cơ sở dữ liệu của bạn. -
20120611000411_devise_create_users.rb
cũng sẽ cố gắng tạousers
trong cơ sở dữ liệu. - Cơ sở dữ liệu của bạn hiện đã có
users
trong đó, vì vậy quá trình di chuyển không thành công trong lần di chuyển thứ hai.
Để có được users
bảng trong cơ sở dữ liệu của bạn để tương ứng đúng với 20120611000411_devise_create_users.rb
di chuyển, bạn có thể thực hiện một trong hai điều:
- Cuộn lại (hoặc thả) cơ sở dữ liệu, rồi chạy lại quá trình di chuyển. (Bạn có thể xóa
20120525005302_create_users.rb
nếu nó trống.) - Sửa đổi
20120611000411_devise_create_users.rb
của bạn di chuyển để loại bỏ mọiusers
hiện có trước khi làm bất cứ điều gì khác. - Sửa đổi
20120611000411_devise_create_users.rb
của bạn di chuyển như sau:- Thay vì tạo
users
bảng, sửa đổi bảng hiện có. - Thêm và sửa đổi các thành phần cơ sở dữ liệu để tương ứng
- Thay vì tạo
Nói chung, nếu ứng dụng của bạn ở "trạng thái sơ sinh", thì việc tạo lại cơ sở dữ liệu có xu hướng là một cách nhanh chóng để xây dựng cấu trúc ban đầu của ứng dụng. Tuy nhiên, nếu bạn đã có dữ liệu quan trọng trong users
của mình , bạn sẽ muốn giữ lại bảng đó và tiếp tục bằng cách sửa đổi 20120611000411_devise_create_users.rb
di chuyển để thay đổi cơ sở dữ liệu một cách không phá hủy.
Tài liệu tham khảo