У меня была эта проблема, но с timestamps
функцией. Он автоматически генерировал индекс на updated_at, который превысил ограничение в 63 символа:
def change
create_table :toooooooooo_loooooooooooooooooooooooooooooong do |t|
t.timestamps
end
end
Имя индекса 'index_toooooooooo_loooooooooooooooooooooooooooooong_on_updated_at' в таблице 'toooooooooo_loooooooooooooooooooooooooooooooong' слишком длинное; ограничение составляет 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_updated_at' в таблице 'toooooooooo_loooooooooooooooooooooooooooooong' уже существует
Наконец, я сдался 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
методом!