php - renombrar - Las migraciones de Laravel cambian el valor predeterminado de la columna
refrescar una migracion laravel (3)
Tengo una tabla con un valor predeterminado ya asignado. Para un ejemplo podemos ver lo siguiente:
Schema::create(''users'', function (Blueprint $table) {
$table->increments(''id'')->unsigned();
$table->integer(''active'')->default(1);
});
Ahora quiero cambiar mi valor predeterminado en el campo activo. Estoy esperando hacer algo como esto:
if (Schema::hasTable(''users'')) {
Schema::table(''users'', function (Blueprint $table) {
if (Schema::hasColumn(''users'', ''active'')) {
$table->integer(''active'')->default(0);
}
});
}
Pero claro que me dice que la columna ya está ahí. ¿Cómo puedo simplemente actualizar el valor predeterminado de la columna x sin quitar la columna?
Puedes usar el método change()
:
Schema::table(''users'', function ($table) {
$table->integer(''active'')->default(0)->change();
});
A continuación, ejecute migrate
comando migrate
.
Actualizar
Para Laravel 4 usa algo como esto:
DB::statement(''ALTER TABLE `users` CHANGE COLUMN `active` `active` INTEGER NOT NULL DEFAULT 0;'');
Método up()
lugar de Schema::table();
cláusula.
Tienes que llamar a la change() para actualizar la columna.
if (Schema::hasTable(''users'')) {
Schema::table(''users'', function (Blueprint $table) {
if (Schema::hasColumn(''users'', ''active'')) {
$table->integer(''active'')->default(0)->change();
}
});
}
ejecute el siguiente código en CLI
php artisan migration:refresh
cambiará tu esquema de tabla
tus datos se perderán