Cómo agregar una nueva columna a la tabla existente en una migración

Cómo agregar una nueva columna a la tabla existente en una migración

Problema

He tenido pesadillas que no pueden agregar una nueva columna a mi usuarios mesa. Parece que no puedo resolverlo.

Traté de editar el archivo de migración usando ..

función pública up ()

Esquema :: create ('Users', function ($ table)
$ table-> integer ("pagado");
);

En terminal, ejecuto PHP Artisan Migrate: instalar y emigrar.

¿Cómo agrego nuevas columnas??

Solución

No puede actualizar ninguna migración que haya migrado ya. Si ya se agrega a la tabla de migraciones, no lo procesará nuevamente. Su solución es crear una nueva migración, para la cual puede usar el migrar: hacer Comando sobre el CLI artesanal. Use un nombre específico para evitar el enfrentamiento con los modelos existentes

Para Laravel 5+:

Php Artisan Make: Migration add_paid_to_users_table - -table = usuarios

Utilizará el método de esquema :: table () (ya que está accediendo a la tabla existente y no crea una nueva). Y puede agregar una columna como esta:

función pública up ()

Esquema :: table ('usuarios', function ($ table)
$ table-> integer ('pagado');
);

Y no olvide agregar la opción de reversión:

Función pública Down ()

Esquema :: table ('usuarios', function ($ table)
$ table-> dropcolumn ('pagado');
);

Entonces puedes ejecutar tus migraciones:

PHP Artisan Migrate

Y para Laravel 5:

  • Creador de esquemas
  • Migraciones

Editar:

usar $ table-> integer ('pagado')-> después ('any_column'); Para agregar este campo después de una columna específica.