Supongamos que creé una tabla tableen una aplicación Rails. Algún tiempo después, agrego una columna que se ejecuta:
rails generate migration AddUser_idColumnToTable user_id:string.
Entonces me doy cuenta de que necesito agregar user_idcomo índice. Conozco el add_indexmétodo, pero ¿dónde debería llamarse este método? ¿Se supone que debo ejecutar una migración (en caso afirmativo, cuál?), Y luego agregar manualmente este método?
ruby-on-rails
indexing
migration
usuario1611830
fuente
fuente

:tablees el nombre real de la tabla, por lo que, en el caso de unauserstabla, lo sustituiría:userspor:table.Si necesita crear una
user_id, sería razonable suponer que está haciendo referencia a una tabla de usuarios. En cuyo caso la migración será:Este comando generará la siguiente migración:
Después de ejecutar
rake db:migratetanto unauser_idcolumna como un índice, se agregarán a laproductstabla.En caso de que solo necesite agregar un índice a una columna existente, por ejemplo,
namede unausertabla, la siguiente técnica puede ser útil:rails generate migration AddIndexToUsers name:string:indexgenerará la siguiente migración:Elimina la
add_columnlínea y ejecuta la migración.En el caso descrito, podría haber emitido un
rails generate migration AddIndexIdToTable index_id:integer:indexcomando y luego eliminar laadd_columnlínea de la migración generada. Pero prefiero recomendar deshacer la migración inicial y agregar una referencia en su lugar:fuente
Agregue en la migración generada después de crear la columna lo siguiente (ejemplo)
fuente
Para referencias puede llamar
Si en el futuro necesita agregar un índice general, puede iniciar este
Generar codigo:
fuente
Puede usar esto, solo piense que Job es el nombre del modelo al que está agregando index cader_id :
fuente