Introduction
This is an article about how to create a table in a database. Specifically, the table in a database running in MySQL database server. But in this case, the process for creating the table inside a database running in MySQL database is using Laravel migration tool. Instead of using a specific query execution, it will execute the Laravel migration script. It is very useful for collaborating with many people working the same project. Initiating database with the modification is going to have a standard result since it is using the same script with Laravel migration tool.
Create Table in MySQL Database using Laravel Migration
So, how to create a table in a database running using MySQL database without having to involve any query execution ?. The following are those steps to achieve the purpose :
-
First of all, create the Laravel-based project. Read the article with the title of ‘How to Create a Laravel Project using Composer in Microsoft Windows’ in this link for a reference and sample.
-
Following after, create the necessary database with the associated username and password for accessing it.
-
Next, the most important thing is editing the file of the database connection configuration of the Laravel-based project. It exist in the root or top level of the Laravel-based project. For an example, in this case it is ‘C:\programming\laravel\crud’. The file name is ‘.env’ so, it will exist in the path of ‘C:\programming\laravel\crud\.env’. just access the root location of the Laravel-based project. The most important part is in the following snippet code configuration :
DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE= DB_USERNAME=root DB_PASSWORD=
Adjust the above configuration code according to the database exist in the operating system. In this case, the database name is ‘db_app_laravel’. With the username of ‘root’ and the password of ‘password’, the snippet code configuration will exist as follows :
DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=db_app_laravel DB_USERNAME=root DB_PASSWORD=password
-
After that, just execute the following command pattern to create a migration script file in the command line :
php artisan make:migration migration_script_file_name
Using the above command pattern, in order to create a migration script file with the aim of creating a table with the name of ’employee’, the following is the execution of it :
C:\programming\php\laravel\crud> php artisan make:migration create_employee_table Created Migration: 2021_08_01_093359_create_employee_table C:\programming\php\laravel\crud>
Moreover, check the article with the title of ‘How to Create Migration Script in Laravel’ in this link to find more information.
-
Edit the migration script file. It is normally by default exist in the database\migrations folder. So, if in this case the root location of the Laravel-based project is in ‘C:\programming\php\laravel\crud’, the script migration file exist in C:\programming\php\laravel\crud\database\migrations folder.
As in the above output command execution, the file name is ‘2021_08_01_093359_create_employee_table’. So, edit the file to add another column or additional field. Actually, the following is the snippet code content for the table definition by default :
public function up() { Schema::create('employee', function (Blueprint $table) { $table->id(); $table->timestamps(); }); }
-
In order to create an additional column or field, just edit the above migration script by adding some more lines. In this context, editing the migration script is aiming to add two more columns. The first column is a column with the name of ‘name’ with the string type. The second column is a column with the name of ‘birthdate’ with the date type :
public function up() { Schema::create('employee', function (Blueprint $table) { $table->id(); $table->string('name'); $table->date('birthdate'); $table->timestamps(); }); }
-
After editing the migration script file, just execute the following command pattern :
php artisan migrate
Before executing it, check the current database condition. Actually, it is useful to check whether the table exist or not. For an example, also create the database too. Below are the execution queries :
mysql> create database db_app_laravel; Query OK, 1 row affected (5.68 sec) mysql> use db_app_laravel; Database changed mysql> show tables; Empty set (0.00 sec) mysql>
After that, just execute the above command pattern exist as follows :
C:\programming\php\laravel\crud> php artisan migrate Migration table created successfully. Migrating: 2014_10_12_000000_create_users_table Migrated: 2014_10_12_000000_create_users_table (1,970.20ms) Migrating: 2014_10_12_100000_create_password_resets_table Migrated: 2014_10_12_100000_create_password_resets_table (1,501.91ms) Migrating: 2019_08_19_000000_create_failed_jobs_table Migrated: 2019_08_19_000000_create_failed_jobs_table (1,697.04ms) Migrating: 2021_08_01_093359_create_employee_table Migrated: 2021_08_01_093359_create_employee_table (751.52ms) C:\programming\php\laravel\crud>
- Finally, check the existence of new created table after executing the above migration script :
mysql> use db_app_laravel; Database changed mysql> show tables; +------------------------------------+ | Tables_in_db_app_laravel | +------------------------------------+ | employee | | failed_jobs | | migrations | | password_resets | | users | +------------------------------------+ 5 rows in set (0.00 sec) mysql>
At last, seeing the output of the above command concludes the successful execution of the migration script to create a new table using Laravel migration tool.