Skip to main content

Laravel Migration (Update column, dropColumn) simplest and easiest way!

↬HOW TO UPDATE/DROP COLUMN WITHOUT LOOSING DATA? 



LARAVEL MIGRATION: UPDATING A COLUMN WITHOUT LOOSING DATA: 

Example:
Suppose i have a database table which has this fields:

id
slider_title
slider_description

and the migration of that table looks like this:


Schema::create('slide_cases', function (Blueprint $table) {
  $table->bigIncrements('id');
  $table->string('slider_title')->nullable();
  $table->string('slider_description')->nullable();
  $table->timestamps();
});

Now, if i want to change the slide_description field data type from string to longText using laravel migration, simply do the following steps: 

1) Open your command prompt and type:


     php artisan make:migration update_slider_description_in_slide_cases --table=slide_cases


➽PLEASE KEEP IN  MIND that slide_cases is my table name; so you have to give your table name in that place :)

2) Now, in your newly created migration file for updating slider_description do the followings:

Schema::table('slide_cases', function (Blueprint $table) {
  $table->longText('slider_description')->nullable()->change();
});

➽PLEASE KEEP IN  MIND that while updating in laravel migration you have to give change() at last :)

3) Finally you are ready to migrate now! ;)
    In your command prompt just type:
    
                php artisan migrate

I hope you have finally solved the problem :D Let me know your feedback.


LARAVEL MIGRATION: DROP/DELETE A COLUMN WITHOUT LOOSING DATA: 

Example:
Suppose i have a database table which has this fields:

id
member_name
member_address



and the migration of that table looks like this:


Schema::create('team_members', function (Blueprint $table) {
  $table->bigIncrements('id');
  $table->string('member_name');
  $table->string('member_address');
  $table->timestamps();
});

Now, if i want to drop the member_address field data using laravel migration, simply do the following steps: 

1) Open your command prompt and type:


php artisan make:migration drop_member_address_in_team_members --table=team_members


➽PLEASE KEEP IN  MIND that team_members is my table name; so you have to give your table name in that place :)

2) Now, in your newly created migration file for dropping member_address do the followings:

Schema::table('team_members', function (Blueprint $table) {
             $table->dropColumn('designation');
        });

 ➽PLEASE KEEP IN  MIND that while dropping column in laravel migration you have to write dropColumn() :)

3) Finally you are ready to migrate now! ;)
    In your command prompt just type:
    
                php artisan migrate

I hope you have finally solved the problem :D Let me know your feedback.

Comments

Popular posts from this blog

SQL: sneak peek

show databases; use mysql; show tables; select * from component; describe component; create database sql_intro; show databases; use sql_intro; create table emp_details (Name varchar(25), Age int, gender char(1), doj date, city varchar(15), salary float); describe emp_details; insert into emp_details  values("Jimmy",35,"M","2005-05-30","Chicago",70000), ("Shane",30,"M","1999-06-25","Seattle",55000), ("Marry",28,"F","2009-03-10","Boston",62000), ("Dwayne",37,"M", "2011-07-12","Austin", 57000), ("Sara",32,"F","2017-10-27","New York",72000), ("Ammy",35,"F","2014-12-20","Seattle",80000); select * from emp_details; select distinct city from emp_details; select count(name) as count_name from emp_details; select avg(salary) from emp_details; select name, age...

SQLSTATE[42S01]: Base table or view already exists: 1050 Table 'users' already exists

While migration to db you often face/might face this error which says the table name that you wrote is already exists in the database. so in that case one of the solutions that you can try is wrapping up your create schema with this: if(!Schema::hasTable('users')){ } Example: if (! Schema :: hasTable ( 'users' )){              Schema :: create ( 'users' ,  function  ( Blueprint   $table ) {                  $table -> bigIncrements ( 'id' );                  $table -> bigInteger ( 'role_id' )-> unsigned ()-> nullable ();                  $table -> foreign ( ' role_id ' )-> references ( 'id' )-> on ( 'roles' ) ...