2009-02-10 7 views

Respuesta

25

Carriles 3 y por encima de utilizar el siguiente código:

rails generate migration add_fieldname_id_to_tablename fieldname:string 

Carriles 2

ruby script/generate migration add_fieldname_to_tablename fieldname:string 

Esto ya no funciona y devuelve el siguiente error en Rails 3:

ruby: No existe tal archivo o directorio - script/generate (LoadError)

+0

Gracias, sería bueno eliminar la combinación que no funciona, sin embargo, confunde un poco ... O se puede hacer algún tipo de encabezados (Rails <= 2, Rails > = 3, por ejemplo). – Wiseman

+0

Gracias Wiseman, solo editado para tomar eso en cuenta, ¿es eso mejor? – BookOfGreg

+0

Sí, perfecto, gracias :) – Wiseman

12

La mejor respuesta que he encontrado hasta ahora es ejecutar este proyecto desde su raíz:

ruby script/generate migration add_d_column_to_myModel 

luego editar el nuevo archivo de migración situado en db/migración a ser algo como:

def self.up 
    add_column :myModel, :d, :string 
    end 

    def self.down 
    remove_column :myModel, :d 
    end 

El último paso será actualizar sus puntos de vista en consecuencia.

respuesta encontró here

funciones de tabla encontraron here

+0

Confundido: ¿por qué hizo la pregunta si tenía una buena respuesta? ¿Por qué no publicar esto en la pregunta original y pedir mejores soluciones? – zenazn

+1

Creo que respondió su propia pregunta. Sin embargo, una cosa que diré es que en algunos casos puede editar la migración del modelo directamente. Las migraciones son geniales cuando tiene un sitio en producción, pero para el desarrollo continuo, a menudo puede darse el lujo de volar la base de datos y comenzar de nuevo. –

+2

Respondí mi propia pregunta por 2 razones. Primero, esta fue la mejor respuesta que encontré, pero soy nuevo en Rails y pensé que podría haber una mejor manera de no encontrarla. Segundo, la Pregunta no había sido publicada en StackOverflow, así que decidí agregarla. –

19
ruby script/generate migration add_fieldname_to_tablename fieldname:string 

este es el método de acceso directo para hacer exactamente lo que quiere. si necesita más control, o si tiene muchas columnas para agregar, la respuesta de Andrew H también funcionará bien.

+0

¿Esto actualizará las vistas también? – femi

+3

No, no actualizará las vistas. – cynicalman

+0

Esta solía ser la respuesta aceptada pero la cambié debido a la nota en la respuesta de NeoNMD sobre esta respuesta. –

Cuestiones relacionadas