2011-07-26 46 views
9

Mọi người có thể chỉ cho tôi cách chỉnh sửa di chuyển sau để thay đổi số :phone thành chuỗi không?Di chuyển: thay đổi cột từ số nguyên thành chuỗi

class CreateContactInfos < ActiveRecord::Migration 
    def change 
    create_table :contact_infos do |t| 
     t.integer :phone 
     t.string :facebook 
     t.references :user 

     t.timestamps 
    end 
    add_index :contact_infos, :user_id 
    end 
end 

Cảm ơn bạn trước!

Trả lời

20

Tôi đoán bạn đã di cư mà bạn đang hiển thị, để tạo ra một trong đó bạn muốn đặt:

change_column :contact_infos, :phone, :string 
+0

Cảm ơn, một lần nữa: D – imjp

+10

Nên là ': string', không phải': văn bản' có nghĩa là văn bản trên 255 ký tự, trừ khi bạn có kế hoạch lưu trữ số điện thoại thực sự dài. – tmandry

1

Tôi đã thêm một số giải thích hơn để this.We cần phải tạo ra một sự chuyển đổi mới

rails g migration change_phone_to_be_string_in_contact_infos

Nếu chúng ta mở ra cuộc di cư chúng ta sẽ thấy một cái gì đó như thế này

class ChangePhoneToBeStringInContactInfos < ActiveRecord::Migration[5.0] 
def change 
end 
end 

Điều chúng tôi gọi là di cư này sẽ không ảnh hưởng đến những gì chúng ta cần làm tiếp theo, nhưng trong tương lai, chúng tôi và các nhà phát triển khác sẽ cảm ơn chúng tôi vì đã đặt tên cho việc di chuyển của chúng tôi một cách thích hợp.

Như bạn có thể thấy phương pháp thay đổi đang trống. Chúng tôi cần phải thêm một số mã theo cách thủ công tại đây.

class ChangePhoneToBeStringInContactInfos < ActiveRecord::Migration[5.0] 
def change 
    change_column :customers, :phone, :string 
end 
end 

Sau khi lưu tệp này, chỉ cần làm rake db: di chuyển chúng tôi có thể thấy những thay đổi chúng tôi muốn.

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