Laravel Q & A


How to generate database migrations in Laravel?

Generating database migrations in Laravel is akin to drafting blueprints for your database structure—it allows you to define and manage changes to your database schema in a systematic and organized manner. Here’s a user-friendly guide on how to generate database migrations in Laravel:


Understanding Migrations: In Laravel, migrations are PHP classes that represent changes to your application’s database schema. Each migration file contains instructions for creating or modifying database tables, columns, indexes, and other schema elements.


Using Artisan Commands: Laravel provides a convenient Artisan command, php artisan make:migration, for generating migration files. You can use this command to create new migrations for adding, modifying, or deleting database tables and columns.


Creating New Migrations: To create a new migration, simply run the make:migration command followed by a descriptive name for your migration. For example, php artisan make:migration create_users_table will generate a new migration file for creating a users table.


Defining Schema Changes: Once the migration file is created, you can use Laravel’s fluent schema builder to define the changes you want to make to your database schema. The schema builder provides methods for creating tables, adding columns, defining indexes, and setting constraints.


Running Migrations: After defining your migration files, you need to run the php artisan migrate command to apply the migrations and update your database schema. Laravel keeps track of which migrations have been executed, so it will only run migrations that haven’t been applied yet.


Rolling Back Migrations: In addition to applying migrations, Laravel allows you to roll back migrations using the php artisan migrate:rollback command. This command reverts the last batch of migrations that were applied, effectively undoing the changes made to your database schema.


Rolling Back Specific Migrations: If you need to roll back specific migrations, you can use the –step option with the migrate:rollback command to specify the number of migrations to roll back. For example, php artisan migrate:rollback –step=1 will roll back the last migration that was applied.


Migration Status: To view the status of your migrations and check which migrations have been applied or not, you can use the php artisan migrate:status command. This command displays a list of all migrations along with their current status (applied or not applied).


By following these steps, you can effectively generate and manage database migrations in your Laravel application, ensuring that your database schema evolves smoothly alongside your application’s development.


Previously at
Flag Argentina
time icon
Experienced Full Stack Engineer with expertise in Laravel and AWS. 7 years of hands-on Laravel development, leading impactful projects and teams.