Tôi đã google'd aroung một chút và dường như không có câu trả lời thỏa mãn cho vấn đề của tôi.Di chuyển đường ray - change_column với loại chuyển đổi
Tôi có một bảng có cột kiểu chuỗi. Tôi muốn chạy sau di cư:
class ChangeColumnToBoolean < ActiveRecord::Migration
def up
change_column :users, :smoking, :boolean
end
end
Khi tôi chạy này tôi nhận được lỗi sau
PG::Error: ERROR: column "smoking" cannot be cast automatically to type boolean
HINT: Specify a USING expression to perform the conversion.
: ALTER TABLE "users" ALTER COLUMN "smoking" TYPE boolean
Tôi biết tôi có thể thực hiện chuyển đổi này sử dụng SQL tinh khiết nhưng vẫn nó sẽ đẹp hơn nếu tôi có thể làm điều đó với Rails. Tôi đã đi qua mã Rails và dường như theres không có khả năng như vậy, nhưng có lẽ ai đó biết một cách?
Tôi không quan tâm đến: - tinh khiết SQL - thả các cột - tạo cột khác, chuyển đổi dữ liệu, thả ban đầu và sau đó đổi tên
Nhưng đó là cách duy nhất như xa như tôi biết .. bạn phải tạo cột, di chuyển và loại bỏ cũ cột ... – ZedTuX