As shown in the title of this article, it is an article written to show how to drop table created and recreate the table utilizing migration script in a Laravel web-based application. It is done by executing the command available and it is provided by default inside the root folder which is generated upon creating a Laravel web-based application project. The command is executed by using a PHP Artisan command. So, below is the command pattern for doing that :
php artisan migrate:fresh
Below is the command execution in a real situation :
root@hostname:/var/www/html/laravel# php artisan migrate:fresh Dropped all tables successfully. Migration table created successfully. Migrating: 2014_10_12_000000_create_users_table Migrated: 2014_10_12_000000_create_users_table Migrating: 2014_10_12_100000_create_password_resets_table Migrated: 2014_10_12_100000_create_password_resets_table Migrating: 2017_11_02_150552_create_tickets_table Migrated: 2017_11_02_150552_create_tickets_table Migrating: 2017_11_02_151921_create_categories_table Migrated: 2017_11_02_151921_create_categories_table Migrating: 2017_11_02_154132_create_comments_table Migrated: 2017_11_02_154132_create_comments_table Migrating: 2017_11_03_060734_create_services_table Migrated: 2017_11_03_060734_create_services_table Migrating: 2017_11_03_095254_create_units_table Migrated: 2017_11_03_095254_create_units_table Migrating: 2017_11_05_120717_role Migrated: 2017_11_05_120717_role Migrating: 2017_11_05_120721_user_role Migrated: 2017_11_05_120721_user_role Migrating: 2017_11_05_151111_test Migrated: 2017_11_05_151111_test root@hostname:/var/www/html/laravel#
The above command is executing all of the available migration script file exist in folder ‘/database/migrations’. Below are the contents of the folder :
user@hostname:/var/www/html/laravel/database/migrations$ pwd /var/www/html/laravel-support-ticket/database/migrations user@hostname:/var/www/html/laravel/database/migrations$ ls -al total 52 drwxrwxr-x 3 www-data user 4096 Nov 6 00:03 . drwxrwxr-x 5 www-data user 4096 Aug 30 16:55 .. -rw-rw-r-- 1 www-data user 990 Nov 5 19:05 2014_10_12_000000_create_users_table.php -rw-rw-r-- 1 www-data user 683 Aug 30 16:55 2014_10_12_100000_create_password_resets_table.php -rw-rw-r-- 1 www-data user 592 Nov 2 22:05 2017_11_02_150552_create_tickets_table.php -rw-rw-r-- 1 www-data user 601 Nov 2 22:19 2017_11_02_151921_create_categories_table.php -rw-r--r-- 1 www-data user 595 Nov 2 22:41 2017_11_02_154132_create_comments_table.php -rw-rw-r-- 1 www-data user 631 Nov 3 14:36 2017_11_03_060734_create_services_table.php -rw-rw-r-- 1 www-data user 622 Nov 3 16:53 2017_11_03_095254_create_units_table.php -rw-rw-r-- 1 www-data user 557 Nov 6 00:03 2017_11_05_120717_role.php -rw-rw-r-- 1 www-data user 579 Nov 6 00:03 2017_11_05_120721_user_role.php -rw-rw-r-- 1 www-data user 411 Nov 5 22:11 2017_11_05_151111_test.php -rw-rw-r-- 1 www-data user 601 Nov 2 22:06 2017_11_02_150646_create_categories_table.php -rw-rw-r-- 1 www-data user 601 Nov 2 22:12 2017_11_02_151257_create_categories_table.php user@hostname:/var/www/html/laravel/database/migrations$
It is also specified in the table exist in the laravel web-based application project.
mysql> select * from migrations; +----+------------------------------------------------+-------+ | id | migration | batch | +----+------------------------------------------------+-------+ | 1 | 2014_10_12_000000_create_users_table | 1 | | 2 | 2014_10_12_100000_create_password_resets_table | 1 | | 3 | 2017_11_02_150552_create_tickets_table | 1 | | 4 | 2017_11_02_151921_create_categories_table | 1 | | 5 | 2017_11_02_154132_create_comments_table | 1 | | 6 | 2017_11_03_060734_create_services_table | 1 | | 7 | 2017_11_03_095254_create_units_table | 1 | | 8 | 2017_11_05_120717_role | 1 | | 9 | 2017_11_05_120721_user_role | 1 | | 10 | 2017_11_05_151111_test | 1 | +----+------------------------------------------------+-------+ 10 rows in set (0,01 sec) mysql>
The status of the migration script file is stored in the field named ‘batch’. Every migration process executed the batch value will be updated and added. At first, the table is empty. After the first migration script file execution, the table will be filled with the name of the script in the migration field and the number or the time its migration script is being executed in the batch field.
If it is being reset by executing the command ‘php artisan migrate:reset’, it will then delete all of the entry script in the table migrations. The other one, php artisan migrate:refresh’ will reset or delete all the entry script in the table migrations and runs all the migration script again. So, in the end the batch status will be reset into 1.
One thought on “How to Drop Table Created and Recreate the Table with Migration Script in Laravel using PHP Artisan Command”