2009-02-10 7 views

Trả lời

25

Rails 3 trở lên sử dụng đoạn mã sau:

rails generate migration add_fieldname_id_to_tablename fieldname:string 

Rails 2

ruby script/generate migration add_fieldname_to_tablename fieldname:string 

này không còn hoạt động và trả về lỗi sau đây trong Rails 3:

ruby: Không có tệp hoặc thư mục nào - tập lệnh/tạo (LoadError)

+0

Cảm ơn, sẽ là tốt đẹp để tấn công sự kết hợp không làm việc, mặc dù, nó gây nhầm lẫn một chút ... Hoặc có thể làm cho một số loại tiêu đề (Rails <= 2, Rails > = 3 ví dụ). – Wiseman

+0

Cảm ơn Wiseman, chỉ cần chỉnh sửa để tính đến điều đó, có tốt hơn không? – BookOfGreg

+0

Có, hoàn hảo, cảm ơn :) – Wiseman

12

Câu trả lời tốt nhất mà tôi đã tìm thấy cho đến nay được điều hành này từ gốc dự án của bạn:

ruby script/generate migration add_d_column_to_myModel 

Sau đó chỉnh sửa các tập tin di cư mới nằm trong db/chuyển đổi sang giống như thế:

def self.up 
    add_column :myModel, :d, :string 
    end 

    def self.down 
    remove_column :myModel, :d 
    end 

Bước cuối cùng sẽ là cập nhật lượt xem của bạn cho phù hợp.

trả lời tìm thấy here

chức năng Bảng tìm thấy here

+0

Bối rối - tại sao bạn đặt câu hỏi nếu bạn có câu trả lời hay? Tại sao không đăng bài này trong câu hỏi ban đầu và yêu cầu các giải pháp tốt hơn? – zenazn

+1

Tôi nghĩ rằng bạn đã trả lời câu hỏi của riêng bạn. Tuy nhiên, một điều tôi sẽ nói là trong một số trường hợp, bạn có thể chỉnh sửa trực tiếp di chuyển mô hình. Di chuyển là tuyệt vời khi bạn có một trang web trong sản xuất, nhưng để phát triển liên tục, bạn thường có sự sang trọng của thổi đi DB và bắt đầu lại. –

+2

Tôi trả lời câu hỏi của riêng mình vì 2 lý do. Đầu tiên, đây là câu trả lời hay nhất tôi tìm thấy, nhưng tôi mới làm quen với Rails và nghĩ rằng có thể có một cách tốt hơn tôi không tìm thấy. Thứ hai, câu hỏi đã không được đăng trên StackOverflow, vì vậy tôi quyết định thêm nó. –

19
ruby script/generate migration add_fieldname_to_tablename fieldname:string 

này là phương pháp phím tắt để thực hiện chính xác những gì bạn muốn. nếu bạn cần kiểm soát nhiều hơn, hoặc nếu bạn có nhiều cột để thêm, câu trả lời của Andrew H cũng sẽ hoạt động tốt.

+0

cũng sẽ cập nhật lượt xem này không? – femi

+3

Không, nó sẽ không cập nhật các chế độ xem. – cynicalman

+0

Đây từng là câu trả lời được chấp nhận nhưng tôi đã thay đổi nó do ghi chú trong phản hồi của NeoNMD về câu trả lời này. –