Eu tive esse problema, mas com a timestamps
função. Gerava automaticamente um índice em updated_at que excedia o limite de 63 caracteres:
def change
create_table :toooooooooo_loooooooooooooooooooooooooooooong do |t|
t.timestamps
end
end
Nome do índice 'index_tooooooooo_looooooooooooooooooooooooooooong_on_updated_at' na tabela 'toooooooooo_loooooooooooooooooooooooooooooong' é muito longo; o limite é de 63 caracteres
Eu tentei usar timestamps
para especificar o nome do índice:
def change
create_table :toooooooooo_loooooooooooooooooooooooooooooong do |t|
t.timestamps index: { name: 'too_loooooooooooooooooooooooooooooong_updated_at' }
end
end
No entanto, isso tenta aplicar o nome do índice aos campos updated_at
e created_at
:
O nome do índice 'too_long_updated_at' na tabela 'toooooooooo_loooooooooooooooooooooooooooooong' já existe
Por fim, desisti timestamps
e apenas criei os carimbos de data e hora:
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
Isso funciona, mas eu adoraria saber se é possível com o timestamps
método!