Tôi có một vấn đề, đó là tôi có một di chuyển trong Rails thiết lập cài đặt mặc định cho một cột, như ví dụ này:
def self.up
add_column :column_name, :bought_at, :datetime, :default => Time.now
end
Giả sử, tôi muốn bỏ cài đặt mặc định đó trong lần di chuyển sau, làm thế nào để tôi làm điều đó với việc sử dụng di chuyển đường ray?
Cách giải quyết hiện tại của tôi là việc thực thi lệnh sql tùy chỉnh trong di chuyển đường ray, như thế này:
def self.up
execute 'alter table column_name alter bought_at drop default'
end
Nhưng tôi không thích cách tiếp cận này, vì bây giờ tôi phụ thuộc vào cách cơ sở dữ liệu cơ bản diễn giải lệnh này. Trong trường hợp thay đổi cơ sở dữ liệu, truy vấn này có thể không hoạt động nữa và quá trình di chuyển sẽ bị phá vỡ. Vì vậy, có cách nào để thể hiện hoàn tác cài đặt mặc định cho một cột trong đường ray không?
CHARACTER VARYING
các cột, chỉ cần đặt nó thànhNULL::character varying
.