Tôi đã có vấn đề này, nhưng với timestamps
chức năng. Nó đã tự động tạo một chỉ mục trên update_at vượt quá giới hạn 63 ký tự:
def change
create_table :toooooooooo_loooooooooooooooooooooooooooooong do |t|
t.timestamps
end
end
Tên chỉ mục 'index_toooooooooo_loooooooooooooooooooooooooooooong_on_updated_at' trên bàn 'toooooooooo_loooooooooooooooooooooooooooooong' quá dài; giới hạn là 63 ký tự
Tôi đã cố gắng sử dụng timestamps
để chỉ định tên chỉ mục:
def change
create_table :toooooooooo_loooooooooooooooooooooooooooooong do |t|
t.timestamps index: { name: 'too_loooooooooooooooooooooooooooooong_updated_at' }
end
end
Tuy nhiên, điều này cố gắng áp dụng tên chỉ mục cho cả hai trường updated_at
và created_at
:
Tên chỉ mục 'too_long_updated_at' trên bàn 'toooooooooo_loooooooooooooooooooooooooooooong' đã tồn tại
Cuối cùng tôi đã từ bỏ timestamps
và chỉ tạo ra dấu thời gian trên con đường dài:
def change
create_table :toooooooooo_loooooooooooooooooooooooooooooong do |t|
t.datetime :updated_at, index: { name: 'too_long_on_updated_at' }
t.datetime :created_at, index: { name: 'too_long_on_created_at' }
end
end
Cách này hiệu quả nhưng tôi rất muốn nghe nếu có thể với timestamps
phương pháp này!