Each migration should have an up()
method and a down()
method. The purpose of the up()
method is to perform the required operations to put the database schema in its new state, and the purpose of the down()
method is to reverse any operations performed by the up()
method. Ensuring that the down()
method correctly reverses your operations is critical to being able to rollback database schema changes.
An example migration file may look like this:
<?php
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class AddLastLoggedInToUsersTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::table('users', function (Blueprint $table) {
$table->dateTime('last_logged_in')->nullable();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::table('users', function (Blueprint $table) {
$table->dropColumn('last_logged_in');
});
}
}
When running this migration, Laravel will generate the following SQL to run against your database:
ALTER TABLE `users` ADD `last_logged_in` DATETIME NULL