CodeIgniter Q & A


What is CodeIgniter’s migration system, and how to rollback migrations?

CodeIgniter’s migration system is a powerful tool for managing database schema changes and version control in your web applications. It allows you to define database changes as migration files and apply them consistently across different environments. Additionally, CodeIgniter provides a convenient way to rollback migrations if necessary. Here’s an overview of how the migration system works and how to rollback migrations:


Migration Basics:

– Migrations are database schema change files that define how your database should evolve over time. Each migration is a PHP script that describes a set of changes, such as creating or modifying tables, adding columns, or altering indexes.


Creating a Migration:

– To create a new migration, you can use the `make:migration` Artisan command or create a new PHP file in the `application/database/migrations` directory. The migration filename should follow a specific naming convention, including a timestamp to ensure ordering.


Defining Up and Down Methods:

– In each migration file, define an `up` method to specify the changes that should be applied to the database when you run the migration. You can use CodeIgniter’s database manipulation functions to make these changes.

– Additionally, define a `down` method to describe how to rollback the migration. This method should reverse the changes made in the `up` method.


Running Migrations:

– To apply pending migrations, use the `migrate` Artisan command or run the migration through the CodeIgniter CLI. This will execute the `up` method for each pending migration, bringing your database schema up to date.


Rollback Migrations:

– To rollback migrations, you can use the `migrate:rollback` Artisan command or the CodeIgniter CLI with the `rollback` option followed by the number of steps to rollback. For example, `migrate:rollback 1` will undo the last applied migration.

– When rolling back, CodeIgniter will execute the `down` method of the most recent batch of migrations, effectively reversing the changes.


Batching Migrations:

– Migrations can be organized into batches, which allow you to group related changes together. This helps in organizing and selectively rolling back migrations when needed.


CodeIgniter’s migration system provides a structured and efficient way to manage database schema changes. It ensures that your database remains consistent across development, staging, and production environments. By defining both the “up” and “down” methods in your migration files, you can easily apply and rollback changes, maintaining database integrity throughout your application’s lifecycle.

Previously at
Flag Argentina
time icon
Experienced Full Stack Systems Analyst, Proficient in CodeIgniter with extensive 5+ years experience. Strong in SQL, Git, Agile.