2011-10-21 20 views
7

Tôi không chắc chắn đây có phải là lỗi hay không hoặc liệu điều này có thực sự xóa tệp migration.rb không. Tôi đã từng tạo ra để tạo ra sự di cư sau:Tệp migration.rb đã bị xóa? Tiềm năng lỗi trong đường ray?

$ rails generate migration add_delta_to_submissions

invoke active_record 
    create db/migrate/20111020175649_add_delta_to_submissions.rb 

sau đó tôi nhận ra rằng tôi quên không bao gồm bất kỳ cột, vì vậy tôi sử dụng mũi tên lên trong giao diện điều khiển và ghi đè lên tạo ra với tiêu diệt:

$ rails destroy migration add_delta_to_submissions

invoke active_record 
    remove db/migrate/20111020175649_add_delta_to_submissions.rb 

Tất cả tốt cho đến giờ, bây giờ là lúc để chạy di chuyển với cột tôi cần. Đây là nơi mà các vấn đề do thỏa thuận - Tôi sử dụng mũi tên lên một lần nữa - nhưng chỉ một lần - và bổ sung thông tin cột của tôi:

$ rails destroy migration add_delta_to_submissions delta:integer

invoke active_record 
    remove migration.rb 

Tôi nhận ra tôi nên có lẽ không được sử dụng các mũi tên lên cho các lệnh dễ bay hơi như GENERATE và DESTROY (bài học kinh nghiệm!), nhưng lệnh đó đã trở lại cho biết nó đã xóa tệp migration.rb. Tôi thậm chí không biết có tệp migration.rb - đặc biệt không phải tệp có thể được xóa dễ dàng như vậy.

Đối với đá, tôi quyết định thử và lừa lệnh console bằng cách thêm chữ x đến hết di cư từ - và nhận được tin nhắn này:

$ rails destroy migrationx add_delta_to_submissions delta:integer

Could not find generator migrationx. 

Vì vậy, tôi nghĩ rằng có có thể là một lỗi với lệnh hủy đường ray. Một khi nó nhận ra rằng không còn một tệp add_delta_to_submissions.rb nữa, nó chỉ bị bẻ khóa và tắt trên .rb để di chuyển từ (hoặc bất kỳ từ nào sau DESTROY). Điều đó có vẻ hơi nguy hiểm ....

Bất kể điều đó - Tôi tò mò muốn biết liệu tôi có bằng cách nào đó đã xâm nhập môi trường RAILS của tôi (đường ray 3.1, ruby ​​1.8.7) hay không bây giờ tệp migration.rb đã bị xóa. Nếu vậy - các lựa chọn của tôi để sửa chữa tình huống đó là gì?

Rất cám ơn trước ...

+0

Điều tương tự cũng xảy ra với tôi. Bạn có hiểu điều gì đã xảy ra không? – marimaf

+1

Điều tương tự cũng xảy ra với tôi khi tôi chạy lệnh hủy nhưng được đính kèm .rb vào cuối tên di chuyển (vì tôi già). Tôi nghĩ rằng nó là vô hại nhưng là một lỗi của một số loại trong máy phát điện dù sao. –

Trả lời

1

Bạn có git trên hệ thống của mình không? Điều tương tự cũng xảy ra hôm nay và tôi chạy:

git diff | grep migration 

Không có gì xuất hiện trên hệ thống của tôi. Tôi đã tìm kiếm tệp và vẫn không thể tìm thấy bất kỳ di chuyển.rb nào trên bất kỳ dự án Rails 3.1 nào của tôi. Có lẽ có thể bỏ qua nó mà không có bất kỳ tác hại?

+0

Tôi có nghĩa là các dự án và tệp khác của Rails. Lấy làm tiếc. –

+0

Bạn có thể chỉnh sửa nhận xét của mình thành câu trả lời. – meagar

2

Nó cũng xảy ra khi bạn gõ một tên di cư không tồn tại như tham số để tiêu diệt lệnh

$rails migration destroy non-existing-migration-name 

invoke active_record 
remove migration.rb 

Nhưng tôi nghĩ rằng đó là vô hại.

+0

Điều đó cũng xảy ra với tôi. –

0

Điều tương tự đã xảy ra với tôi.

Có vẻ như có một tệp migration.rb trong ActiveRecord và mặc dù bạn có thể extend ActiveRecord::Base, tôi không chắc bạn thực sự có thể truy cập các tệp đó từ đâu đó trong thư mục dự án đường ray của bạn hay không.

Có vẻ như có một số tiền lệ cho deleting the migration file manually thay vì thông qua lệnh tự động hủy đường ray.

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