Tuve este problema, pero con la timestamps
función. Generaba automáticamente un índice en updated_at que excedía el límite de 63 caracteres:
def change
create_table :toooooooooo_loooooooooooooooooooooooooooooong do |t|
t.timestamps
end
end
El nombre del índice 'index_toooooooooo_loooooooooooooooooooooooooooooong_on_updated_at' en la tabla 'toooooooooo_loooooooooooooooooooooooooooooong' es demasiado largo; el límite es de 63 caracteres
Traté de usar timestamps
para especificar el nombre del índice:
def change
create_table :toooooooooo_loooooooooooooooooooooooooooooong do |t|
t.timestamps index: { name: 'too_loooooooooooooooooooooooooooooong_updated_at' }
end
end
Sin embargo, esto intenta aplicar el nombre de índice a los campos updated_at
y created_at
:
El nombre de índice 'too_long_updated_at' en la tabla 'toooooooooo_loooooooooooooooooooooooooooooong' ya existe
Finalmente me di por vencido timestamps
y creé las marcas de tiempo en el largo camino:
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
¡Esto funciona pero me encantaría saber si es posible con el timestamps
método!