У мене було це питання, але з timestamps
функцією. Автогенерація індексу на updated_at перевищувала межу 63 символу:
def change
create_table :toooooooooo_loooooooooooooooooooooooooooooong do |t|
t.timestamps
end
end
Назва індексу 'index_toooooooooo_loooooooooooooooooooooooooooooong_on_update_at' на таблиці 'toooooooooo_loooooooooooooooooooooooooooooong' занадто довга; ліміт - 63 символи
Я намагався використовувати timestamps
для вказівки назви індексу:
def change
create_table :toooooooooo_loooooooooooooooooooooooooooooong do |t|
t.timestamps index: { name: 'too_loooooooooooooooooooooooooooooong_updated_at' }
end
end
Однак це намагається застосувати ім'я індексу як до полів, так updated_at
і до created_at
:
Назва індексу "too_long_update_at" у таблиці "toooooooooo_loooooooooooooooooooooooooooooooong" вже існує
Нарешті я здався timestamps
і просто створив часові позначки довгим шляхом:
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
Це працює, але я хотів би почути, чи можливо це за допомогою timestamps
методу!