What Will I Learn?
Rollback and dropping have the same functionality but they have a clear distinction. Here's what you'll learn so you understand how to differentiate the two :
- You will learn to use dropping in laravel
- You will learn to use rollback in laravel
Requirements
to follow this tutorial. you only need to provide some tools. so this is list of the requirements for the user:
- Xampp 5.6.3
- Framework Laravel 5.4
- Composer
- Atom text editor
Difficulty
- Basic
Preliminary
Dropping is a feature used to delete in a database. dropping is used to delete a table in the database or delete a column from the table. this feature can also be used to delete multiple columns in one command but can not be used to delete multiple tables.
Rollback is a feature used to return or cancel. Rollback is usually used to undo the last action of migration. Rollback can be interpreted as a restore that is used when there is an error that occurs in the migration.Rollback process is used to return to starting point before migration. Rollback can be done in several ways and one of them we can determine how many step to back who we want to rollback. if we have been doing too much migration. Rollback can also be interpreted back to the past and once you return to the past using rollback you will not be able to return to the future. so this is just a feature like undo but does not have redo. so use this feature when there is a very fatal error.
In brief, both of these features can be used to remove tables or columns from the table. but you need to remember Rollback works like undo buttons while Dropping works like a delete button. same but diffrent.
Practice using Dropping and Rollback
Here is a dropping and rollback step. we will do it in the tutorial table because this is the table we created in the previous tutorial.
step 1: Using Drop to delete column of table
before deleting the table column we will see the column structure of the tutorial table and we will try to delete some columns
here is a view of the structure of the table tutorial:
there are 9 columns visible in the table. and we will try to delete the category of column and all type of text from columns of table.The first, you must create migration.we making file migration with names is drop_column_of_table and you can use the command below :
php artisan make:migration drop_column_of_table
This is snow on command prompt:
why I always display the results of running code in the command prompt because to help you know the correct running results. now open the migration file and add this code:
public function up()
{
Schema::table('tutorial', function (Blueprint $table) {
$table->dropColumn('category');
$table->dropColumn(['title', 'author', 'contentpage']);
});
}
Here's a little explanation :
$table->dropColumn('category');
is the method used to delete a single column that iscategory.
.$table->dropColumn(['title', 'author', 'contentpage']);
is the method used to delete multiple columns or more than one column and the columns that are deleted aretitle
,author
andcontentpage.
.
after that, use this script to execute migration files that have been edited
php artisan migrate
Here is an example that runs in the command prompt:
This is a show of the tutorial table we have dropping :
step 2: Using Drop to delete table from database.
If previously we have managed to delete some columns from the tutorial table. now we will try to remove the tutorial table from the database and before deleting the table we will see the existing table in the database
here is a view of the table from my database and maybe different with you because i don't know how much table have you create before:
there are 2 tables there. and we will delete 1 table ie tutorial. before deleting it we make first file migration with name drop_table_tutorial.and you can use the command below :
php artisan make:migration drop_table_tutorial
This is snow on command prompt:
after that you can add this code on file migration above :
public function up()
{
Schema::drop('tutorial');
}
Here's a little explanation :
- Schema::drop('tutorial'); is the method used to delete the
tutorial
table
why this code is different from step 1. because we use it directly to delete the table. so we no need to use $ table
. just use the schema :: drop
. after that you can use this code for execute file migration :
php artisan migrate
and here is an example that runs in the command prompt:
and this is evidence , table tutorial have successful we delete from database.
step 3: Using Rollback with migration for comingback all.
If you already know how to dropping table. now I will teach you about rollback in the last step and I will prove this can not only be used to delete the table in the way . I will teach you use rollback with different way.
in the file migration. there is method function up ()
in execute using php artisan migrate
. so, if you want execute method function down()
. You can use php artisan migrate:rollback
. okay let's begin.
you can open file migration drop_table_tutorial and nothing code in method function down()
and then will do rollback and see result. before rollback we see status migration with this script .
php artisan migrate:status
here is display of status before rollback. if we have rollback . column of Ran will change be N
now we use rollback and we look database. what is tutorial table back because. if migration before for drop table .rollback can back table to database because we comeback to before drop table.now use this script for rollback:
php artisan migrate:rollback
and this is status now . after running rollback :
and this is result from database
now we try edit method function down()
from file migration drop_column_of_table because next rollback . that's file who be execute. you can see in the last status. rows number 2 still Y after we rollback . that will change be N. now you can add this script to method function down()
in that's file migration
public function down()
{
Schema::create('tutorial', function (Blueprint $table) {
$table->integer('post_id');
$table->increments('id');
});
}
now we will use rollback. you can use this script
php artisan migrate:rollback
and this is status after execute:
and this is database after execute:
and rollback proven is used to execute method function down()
so if you want delete table with rollback you must use this code Schema::drop('your table');
or this code Schema::dropIfExists('your table');
. now we will look structure of table tutorial to convince you. we create table tutorial with column post_id
and id
if equal means true
here is a view of the structure of the table tutorial after rollback:
rollback can be used in several ways. and if you want to try. you can use one of these codes:
migrate:rollback --step=1
is the command used to rollback according to the number you choose. so you can see in status. and here we use the 1st order to rollbackmigrate:reset
is the command used to rollback everything from start to finishmigrate:refresh
is the command used to rollback everything from start to finish and then rerun migration from start to finish
conclusion:
Schema::drop
is used to delete the table from the database$table-> dropColumn
is used to delete the column of table from the database$migrate:rollback
used to execute methodfunction down()
Curriculum
- #3 - How to Use Maintenance Mode with composer in Laravel
- #2 - How to Modifications a table database with php artisan migration in laravel
- #1 - How to Create a Table Database in Laravel With PHP Artisan Migration
Posted on Utopian.io - Rewarding Open Source Contributors
Thank you for the contribution. It has been approved.
You can contact us on Discord.
[utopian-moderator]
Hey @deathwing, I just gave you a tip for your hard work on moderation. Upvote this comment to support the utopian moderators and increase your future rewards!
@iwaydi, Upvote is the only thing I can support you.
Thanks you. You always support me @steemitstats
please vote for each other
Hey @iwaydi I am @utopian-io. I have just upvoted you!
Achievements
Suggestions
Get Noticed!
Community-Driven Witness!
I am the first and only Steem Community-Driven Witness. Participate on Discord. Lets GROW TOGETHER!
Up-vote this comment to grow my power and help Open Source contributions like this one. Want to chat? Join me on Discord https://discord.gg/Pc8HG9x
Thank you very useful for all