Skip to main content

Create MySQL tables

Create MySQL tables

Creating MySQL database tables from Laravel

To follow Laravel standards, We should create a table using Laravel artisan commands. It will help to other teammates automatically update database changes just with one command. To create a table use below command.

php artisan make:migration create_yourTableName_table

It will create a table and you can also check the migrate files in the below path

mylaravel\database\migrations\

Let's create sample table name called "posts"

php artisan make:migration create_posts_table

Creating "posts" Table




After run this command, Migration file will be created. you can check the migration folder


Migration file

Let's add some columns in the posts table
public function up()
    {
        Schema::create('posts', function (Blueprint $table) {
            $table->id();
            $table->string('slug');
            $table->text('body');
            $table->timestamp('publised_at')->nullable();
            $table->timestamps();
        });
    }
before running migration, Let's see the MySQL database

Before running migrate

After running migration php artisan migrate

 

It will add some default Laravel migrations also, now check at database

posts table created


columns are added


Suppose If I want to add another column to the "posts" table. Like 'title' column.

In this case, you can simple run the migration command
php artisan make:migration add_title_to_posts_table

Creates one more migration file




Migration file



As discussed it creates one more migration file, now we need to add our "title" column here as well as we need to write down() method for drop the changes.

Add title column


run the migrate command again





Title column added


Will do this kind of approach if your project is on production. otherwise you can add "title" in "posts" migration file directly. 

At the same way if want to undo the last migration. You can run
php artisan migrate:rollback

Undo the last migration





Now you can add the "title" column directly to "posts" migration file.

"title" column added at "posts" migration file.


But here, After add the "title" column in "posts" migration file. And run the 

php artisan migrate


Nothing to migrate

it will run nothing, Because that migration file already read. so you need to rollback all tables once again.
php artisan migrate:rollback

Rollback all tables


and again need to run the command
php artisan migrate

now it will create all tables once again.

Note: every time you do this, all table data will be deleted.
Important: so that's when you are in production, you will be careful with this actions
So now, if you refresh MySQL tables, all tables are created.

All tables are created with my additional "title" column

In the second approach, You can run the 
php artisan migrate:fresh

this command will drop all the tables and create new fresh tables
Created all tables












Comments

Popular posts from this blog

Data Types in Python

Data Types  In C# or Java, You need to declare a variable specify them integer, string, and decimal. But in Python no need to specify. We can declare variables like Example: C# or Java int age = 28; string Name = "Siddhu"; Example: Python age = 28 Name = "Siddhu" So, you don't need to declare variable types in python. This is an advantage in Python, But still have few Disadvantages too. Example: In my Python function def add_numbers(x,y): print(x+y) add_numbers(20,50) //Output: 70 add_numbers(20,"Something") //Error:"Traceback (most recent call last): File "C:/Users/siddhartha.e/PycharmProjects/siddhu-py/my1stpycode.py", line 8, in add_numbers(50,"Something") File "C:/Users/siddhartha.e/PycharmProjects/siddhu-py/my1stpycode.py", line 4, in add_numbers print(a + b) TypeError: unsupported operand type(s) for +: 'int' and 'str'" ...

Database and Migrations

Database and Migrations You can config Database in the .env file. By default, Laravel has MySQL configuration. For example, I configured my details DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=Laravel_tutorials DB_USERNAME=root DB_PASSWORD= So how it connects the database, In your root folder config/database.php file will read the .env file configuration. Migrations: Migrations are most likely a version control for your database. Advantages You can easily allow your team to modify database schema and share to everyone in the application No headache to add a new column in the database manually. This migration will help all teammates into one path. Now check with artisan command php artisan migrate php artisan migrate This command will create basic users,password_resets and migrations tables. Here migrations table will track of all migrates You can undo previous migration using rollback command php artisan ...

Laravel form validations

 Laravel Validations: List of types "first_name" => 'required|alpha:ascii|min:3|max:100',// alpha:ascii (only accepts a-z) "middle_name" => 'string', "last_name" => 'required|string', "email" => 'required|email|unique:users,email', "password" => 'required|string|confirmed', "sex" => 'required|string', "phone_no" => 'required|string', "account_type" => 'required|string', "dob" => 'required|date_format:d-m-Y', // date with format "nationality" => 'required|string', "company" => 'required|string', "company_sector" => 'required|string', "company_address" => 'required|string' "bank_account_no" => 'required|min_digits:3|max_digits:5', "role" => 'required|in:admin,editor,viewer', ...