Tôi có một bảng có tên là profiles
với một số cột.Đường ray 3.1 thêm cột có thể di chuyển có thể thay đổi được
Bây giờ tôi muốn thêm một vài cột vào bảng này bằng cách sử dụng change
-method trong đường ray 3.1. Tôi tạo ra một sự chuyển đổi với đoạn mã sau:
def change
change_table :profiles do |t|
t.string :photo
t.string :name
t.references :user
end
end
Việc chuyển hoạt động hoàn hảo, nhưng khi tôi muốn rollback tôi nhận được
SQLite3::SQLException: duplicate column name: photo: ALTER TABLE "profiles" ADD "photo" varchar(255)
Bất cứ ý tưởng tại sao?
gì về việc thêm một tài liệu tham khảo với add_column? Tôi đoán tôi có thể làm điều đó như thế này: http://stackoverflow.com/questions/493777/add-column-for-references-rails/493802#493802 Nhưng sẽ linh hoạt hơn để có thể thêm trực tiếp vào quá trình di chuyển bằng cách nào đó. – martnu
@martnu: Thêm tham chiếu chỉ thêm trường ID kiểu số nguyên vào bảng - bạn có thể sao chép nó bằng 'add_column: profiles,: user_id,: integer'. – sevenseacat
'tham chiếu' cũng thêm một chỉ mục trên cột' assoc_id', có ích. – Jeriko