php - todas - ¿Cómo agregar una columna en una tabla usando la migración de laravel 5 sin perder sus datos?
php artisan migrate table (2)
Tengo una tabla de base de datos existente y quiero agregarle una columna. Sin embargo, mientras ejecuto el comando de php artisan migrate
, no dice nada para migrar. Pero ya agregué un esquema para agregar columnas de tabla. He leído algunos artículos y enlaces en los que debería ejecutar la php artisan migrate:refresh
primero antes de agregar las nuevas columnas. El problema es que borrará mis datos existentes en mi tabla. ¿Hay alguna forma de realizar la migración y agregar columnas en mi tabla con éxito sin eliminar mis datos? Por favor, ayúdame con esto. Muchas gracias. Aquí está mi código de migración.
public function up()
{
//
Schema::create(''purchase_orders'', function(Blueprint $table){
$table->increments(''id'');
$table->string(''po_code'');
$table->text(''purchase_orders'');
$table->float(''freight_charge'');
$table->float(''overall_total'');
$table->timestamps();
});
Schema::table(''purchase_orders'', function(Blueprint $table){
$table->string(''shipped_via'');
$table->string(''terms'');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
//
Schema::drop(''purchase_orders'');
}
Quiero agregar la columna shipped_via
y los terms
en mi tabla purchase_orders
.
Laravel tiene una tabla en su base de datos donde realiza un seguimiento de todas las migraciones que ya se ejecutan. Por lo tanto, solo cambiando el archivo de migración, Laravel no ejecutará automáticamente esa migración. Porque la migración ya está ejecutada por Laravel.
Entonces, lo mejor que puede hacer es crear una nueva migración y colocar el fragmento de código que ya tiene (¡estaba en el camino correcto!).
public function up()
{
//
Schema::table(''purchase_orders'', function(Blueprint $table){
$table->string(''shipped_via'');
$table->string(''terms'');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
//
}
No es necesario que rellene la función down en caso de que la tabla se vea descartada por la migración de la compra de sus pedidos actuales.
Para migrar la nueva migración simplemente ejecute:
php artisan migrate
Utilice el siguiente comando para modificar la tabla existente
php artisan make:migration add_shipped_via_and_terms_colums_to_purchase_orders_table --table=purchase_orders
use --create
para crear la nueva tabla y --table
para modificar la tabla existente.
Ahora se creará un nuevo archivo de migración. Dentro de la función up()
en este archivo agregue estas líneas
Schema::table(''purchase_orders'', function(Blueprint $table){
$table->string(''shipped_via'');
$table->string(''terms'');
});
Y luego ejecute php artisan migrate