Problem

I have been having nightmares not being able to add a new column to my users table. Can’t seem to figure it out.

I tried to edit the migration file using…

<?php

public function up()

{


    Schema::create(‘users’, function ($table) {


        $table->integer(“paid”);


    });

}

In terminal, I execute php artisan migrate:install and migrate.

How do I add new columns?

Solution

You cannot update any migrations that have been migrated already. If it is added to the migrations table already, it wont process it again. Your solution is to create a new migration, for which you may use the migrate:make command on the Artisan CLI. Use a specific name to avoid clashing with existing models

for Laravel 5 :

php artisan make:migration add_paid_to_users_table table=users

You will be using the Schema::table() method (since you’re accessing the existing table, and not creating a new one). And you can add a column like this:

public function up()

{


    Schema::table(‘users’, function($table) {


        $table->integer(‘paid’);


    });

}

and don’t forget to add the rollback option:

public function down()

{


    Schema::table(‘users’, function($table) {


        $table->dropColumn(‘paid’);


    });

}

Then you can run your migrations:

And for Laravel 5:

Edit:

use $table->integer('paid')->after('any_column'); to add this field after specific column.