Skip to main content

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
php artisan migrate
This command will create basic users,password_resets and migrations tables.

PHP Artisan Migrate DatabaseHere migrations table will track of all migrates

You can undo previous migration using rollback command

php artisan migrate:rollback

PHP Artisan Migrate rollback
PHP Artisan Migrate rollback
PHP Artisan Migrate rollback database
PHP Artisan Migrate rollback database
All these migrations will store at database/migrations.

Modify Column name:

Suppose If I want to rename the Column name. To do this go to the migrations files at database/migrations.

 Now I'll modify the user's table column name filed "name" to "username" 

$table->string('name'); to  $table->string('username');

Now you have two options to modify this in the database.

Option 1
php artisan migrate:rollback
php artisan migrate
Option 2
php artisan migrate: fresh
Note: This command drops all the tables. So never run this command when your project on Production

Let's make the new migrate file.

php artisan make:migration create_projets_table


php artisan make:migration create_projets_table
php artisan make:migration create_projets_table
Note: All php artisan make: * commands generate new files and classes.

Hint: Whenever you stuck with command. You can take "help" from help tag. Ex: php artisan help make: migration

After running this command, Check the root folder at database/migrations. The new file will be created.

Inside the file, By default Larvel creates up() and Down() methods.

What is up() and down() methods? How it works?
    up() method allows running migrate function. Which means when you run migrate. It will run the up() method. 
Similarly. Down() method works as undoing the up() method. We can say that migrate: rollback. So up() create the table and down() drops the table.
By default, Schema builds like below.

public function up()
  {
   Schema::create('projets', function (Blueprint $table) {
    $table->bigIncrements('id');
    $table->timestamps();
   });
  }
Now add few more column fields (title,description) in this projects table.
public function up()
  {
   Schema::create('projets', function (Blueprint $table) {
    $table->bigIncrements('id');
    $table->string('title');
    $table->text('description');
    $table->timestamps();
   });
  }
php artisan migrate
codesponsors.com

As well as undoing


codesponsors.com

if you comment down() method inside the code. Rollback will not work. because it is not defined to down() method to rollback.

public function down()
 {
        //Schema::dropIfExists('projets');
    }


To check migration files status that those files are running or not with below commands

php artisan migrate:status

To check if there is any pending migrate files to run

php artisan migrate --pretend

In Laravel, you can't directly run a single migration file using php artisan migrate like you can with seeders. However, there are a few ways to handle running a specific migration:
php artisan migrate --path=/database/migrations/2024_01_01_123456_create_users_table.php
###

Comments

Popular posts from this blog

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', ...

React Js Commands

React JS Commands and Useful purposes  To Install react app: npx create-react-app app-name To Install react app: npx create-react-app . To check npm version: npm --version Inside that directory, you can run several commands:   npm start     Starts the development server.   npm run build     Bundles the app into static files for production.   npm test     Starts the test runner.   npm run eject     Removes this tool and copies build dependencies, configuration files     and scripts into the app directory. If you do this, you can’t go back! node -v (To check node version) The latest recommended command to create a new React app is: npx create-react-app@latest my-app Replace my-app with your desired project name. This approach uses the latest version of Create React App and works if Node.js (version 14+) and npm (version 5.2+) are installed Modern Alternatives If you prefer a faster, lighter setup, many developers n...

Advanced Objects Introduction in JS

  Advanced Objects Introduction Remember, objects in JavaScript are containers that store data and functionality. In this lesson, we will build upon the fundamentals of creating objects and explore some advanced concepts. So if there are no objections, let’s learn more about objects! In this lesson we will cover these topics: how to use the this keyword. conveying privacy in JavaScript methods. defining getters and setters in objects. creating factory functions. using destructuring techniques. The this Keyword Objects are collections of related data and functionality. We store that functionality in methods on our objects: const goat = {    dietType : 'herbivore' ,    makeSound () {      console . log ( 'baaa' );   } }; In our  goat  object we have a  .makeSound()  method. We can invoke the  .makeSound()  method on  goat . goat . makeSound (); // Prints baaa Nice, we have a  goat  ob...