Working with migrations in Laravel

Jose Marie Dimapilis
3 min readFeb 2, 2023

--

Laravel is a popular PHP framework used for web application development. One of its key features is the ability to handle database migrations in an organized and efficient manner. Migrations are a way of version controlling the database schema, making it easier to deploy changes to the database structure across different environments. In this blog, we will delve into working with migrations in Laravel.

Creating Migrations

The first step in working with migrations is to create a new migration. This can be done using the Artisan command-line tool provided by Laravel. The following command creates a new migration with the name “create_users_table”:

php artisan make:migration create_users_table

This will create a new file in the “database/migrations” directory with a timestamp prefix to ensure that migrations are run in the correct order. The migration file contains two methods: “up” and “down”. The “up” method is used to make changes to the database schema and the “down” method is used to undo these changes.

Defining Database Changes

To define the changes to be made to the database, you will use the Laravel schema builder. The schema builder provides a fluent interface for defining the columns and constraints of a table. For example, the following code creates a new table called “users” with three columns: “id”, “name”, and “email”:

public function up()
{
Schema::create('users', function (Blueprint $table) {
$table->increments('id');
$table->string('name');
$table->string('email')->unique();
$table->timestamps();
});
}

The “down” method is used to undo the changes made in the “up” method. In the case of creating a table, the “down” method would simply drop the table:

public function down()
{
Schema::dropIfExists('users');
}

Running Migrations

Once the migration file has been created, it can be run using the following Artisan command:

php artisan migrate

This will run all of the pending migrations, which are migrations that have not yet been run in the current environment. If you need to run a specific migration, you can use the following command:

php artisan migrate:status

This will show you a list of all the migrations, their status, and the date they were run. If you need to run a specific migration, you can use the following command:

php artisan migrate --path=database/migrations/2021_01_01_000000_create_users_table.php

Rolling Back Migrations

In the event that you need to roll back the latest batch of migrations, you can use the following Artisan command:

php artisan migrate:rollback

This will undo the changes made by the latest batch of migrations. If you need to roll back a specific migration, you can use the following command:

php artisan migrate:rollback --step=1

This will undo the changes made by the latest migration in the batch.

Conclusion

In conclusion, migrations in Laravel provide an efficient and organized way of managing database schema changes. With the ability to easily create, run, and roll back migrations, you can ensure that your database schema stays up to date across all environments. By using migrations, you can also keep track of changes made to the database over time, making it easier to debug and resolve issues. If you’re looking to streamline your web development process, migrations in Laravel are definitely worth exploring.

--

--

Jose Marie Dimapilis
Jose Marie Dimapilis

Written by Jose Marie Dimapilis

Sr. Lead Full-Stack Software Developer and Part-Time IT Instructor

No responses yet