Para generar una migración necesitas ejecutar un comando
php artisan make:migration create_contacts_table
esto generará un archivo en la database\migrations carpeta.
El archivo consta de una nueva clase que amplía la clase de migración de LARAVEL.
La nueva clase consta de 2 funciones principales up()y down().
La up() función contiene toda la información sobre la migración del archivo.
public function up()
{
Schema::create('contacts', function (Blueprint $table)
{
$table->id();
$table->string('name');
$table->string('mobile_no');
$table->boolean('status');
$table->timestamps();
});
}
mientras que down()la función contiene información sobre cómo revertir la acción de migración.
public function down()
{
Schema::dropIfExists('contacts');
}
Ejecutar y revertir la migración
Para ejecutar una migración necesitamos usar el comando
php artisan migrate
Para revertir la última migración, tenemos comando
php artisan migrate:rollback
cuando tenemos que revertir hasta pasos específicos, podemos pasar pasos en el comando de reversión como
php artisan migrate:rollback --step=3
esto revertirá la migración hasta 3 pasos a partir de la última.
Agregar/actualizar columnas en la tabla
Para realizar cualquier tarea, necesitamos generar un archivo de migración similar al que hemos creado al crear la migración.
el único cambio estará allí en el nombre de la migración, siempre intente escribir el nombre de la migración descriptivo, lo que ayuda a laravel a comprender el nombre de la tabla en las migraciones.
Por ejemplo, para actualizar la columna name, debemos ejecutar un comando como
Los modificadores de columna no son más que una función predefinida disponible en LARAVEL Migration mediante la cual puede crear cualquier columna nullable, establecer columna default y muchas más.
Agregar/Renombrar/Eliminar índices de bases de datos
Laravel Migration admite algunos tipos de ÍNDICES, por ejemplo
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
Schema::table('users', function (Blueprint $table) {
$table->index('email');
});
Para cambiar el nombre de un índice que puede utilizar, renameIndex()por ejemplo
$table->renameIndex('email', 'mobile_no');
Para colocar un índice que puede usar, dropIndex() por ejemplo
$table->dropIndex('email');
Restricciones de clave externa
Laravel también brinda soporte para crear restricciones de clave externa, que se utilizan para forzar la integridad referencial en el nivel de la base de datos.