ruby-on-rails - make - rails migration up down
Añadir columna de ID en una migración (3)
Tengo una aplicación Rails, donde uno de los modelos no tiene la columna de id
. Investigando un poco encontré la migración que lo creó:
create_table(:the_model, :id => false) do |t|
# columns
end
Ahora, en una nueva migración, quiero agregar la columna de id
de una manera estándar de Rails (sin usar SQL de base de datos específica). ¿Cómo puedo hacer eso?
Ya probé esto sin éxito:
change_table(:the_model, :id => true) do |t|
end
No es necesario mencionar :integer
rails g migration add_id_to_model id:primary_key
funcionó para mí.
Puede agregar manualmente la columna id:
add_column :table_name, :id, :primary_key
o borre (o realice una copia de seguridad) de sus datos, vuelva a esta migración, elimine la opción :id => false
y vuelva a migrar.
Ya tienes tu respuesta, pero aquí hay una sola línea que hace todo en este caso
rails generate migration AddIdToModel id:integer
Mire la sintaxis del nombre del archivo de migración Agregar nombreColumna a Nombre de tabla siguiendo la descripción de la columna. Se generará algo como abajo.
class AddIdToModel < ActiveRecord::Migration
def change
add_column :models, :id, :integer
end
end
Ahora puedes cambiar esta línea si sientes algo más. y simplemente ejecuta rake db:migrate
.