Cách tạo database trong Laravel qua Migration và .env

Khi xây dựng ứng dụng web với Laravel, việc quản lý và thiết kế cơ sở dữ liệu không còn là những câu lệnh SQL thủ công dễ nhầm lẫn. Nhờ sự kết hợp hoàn hảo giữa tệp cấu hình môi trường .env và hệ thống Migration, việc khởi tạo và đồng bộ database trở nên trực quan, an toàn và chuyên nghiệp hơn bao giờ hết. Bài viết này sẽ hướng dẫn bạn toàn bộ quy trình cách tạo database trong Laravel từ khai báo đến thực thi tạo cấu trúc dữ liệu trong Laravel.

1. Bản chất của .env và Migration trong quản lý Database

Trước khi bắt tay vào code, chúng ta cần phân định rõ vai trò của hai thành phần cốt lõi này:

  • Tệp .env: Nơi lưu trữ thông số kết nối (tên database, host, port, tài khoản, mật khẩu). Nó cho biết Laravel sẽ “giao tiếp” với cơ sở dữ liệu nào.
  • Migration: Được ví như “git cho cơ sở dữ liệu”. Thay vì tạo bảng trực tiếp trên phpMyAdmin hay MySQL Workbench, bạn viết các file migration bằng PHP để định nghĩa bảng, cột, kiểu dữ liệu. Điều này giúp chia sẻ cấu trúc database cho cả team một cách dễ dàng.
READ  Cách tạo relationship trong Laravel: One-to-Many, Many-to-Many

Nếu bạn mới bắt đầu tiếp cận với cấu trúc của framework và các khái niệm vỡ lòng, hãy tham khảo ngay các bài viết tại chuyên mục thủ thuật để có cái nhìn tổng quan vững chắc nhất.

2. Khai báo thông tin Database trong file .env

Bước đầu tiên để Laravel nhận diện không gian lưu trữ dữ liệu là cấu hình trong file .env nằm ở thư mục gốc của project:

Đoạn mã

DB_CONNECTION=mysql

DB_HOST=127.0.0.1

DB_PORT=3306

DB_DATABASE=quan_ly_san_pham

DB_USERNAME=root

DB_PASSWORD=

Trong đó, tham số DB_DATABASE=quan_ly_san_pham chính là tên cơ sở dữ liệu mà ứng dụng của bạn sẽ tương tác.

Lưu ý quan trọng: Laravel không tự động tạo ra một database trống trên MySQL chỉ thông qua việc khai báo tên trong file .env. Bạn cần truy cập vào hệ quản trị cơ sở dữ liệu của mình (qua XAMPP, Laragon hoặc công cụ quản lý) và tạo thủ công một database trống có tên trùng khớp với khai báo (ví dụ: quan_ly_san_pham).

3. Tạo file Migration đầu tiên bằng Artisan CLI

Sau khi đã có cơ sở dữ liệu trống, việc tạo các bảng (tables) sẽ được thực hiện thông qua công cụ dòng lệnh Artisan.

Ví dụ, để tạo một bảng lưu trữ thông tin sản phẩm (products), bạn mở terminal và chạy lệnh:

Bash

php artisan make:migration create_products_table

Ngay lập tức, Laravel sẽ sinh ra một file PHP nằm trong thư mục database/migrations/. Bạn mở file này lên và định cấu trúc các cột dữ liệu trong phương thức up():

READ  Cách phân quyền Laravel với Middleware và Spatie Permission

PHP

use Illuminate\Database\Migrations\Migration;

use Illuminate\Database\Schema\Blueprint;

use Illuminate\Support\Facades\Schema;

return new class extends Migration

{

    public function up(): void

    {

        Schema::create(‘products’, function (Blueprint $table) {

            $table->id(); // Khóa chính tự tăng

            $table->string(‘name’); // Tên sản phẩm

            $table->text(‘description’)->nullable(); // Mô tả chi tiết

            $table->decimal(‘price’, 10, 2); // Giá tiền

            $table->integer(‘stock’)->default(0); // Số lượng tồn kho

            $table->timestamps(); // created_at và updated_at

        });

    }

    public function down(): void

    {

        Schema::dropIfExists(‘products’);

    };

};

4. Thực thi Migration để khởi tạo bảng trên MySQL

Khi đã định nghĩa xong cấu trúc bảng trong file migration, việc đưa các bảng này lên cơ sở dữ liệu quan_ly_san_pham vô cùng đơn giản bằng một lệnh duy nhất:

Bash

php artisan migrate

Lệnh này sẽ quét qua toàn bộ các file migration chưa được chạy trong thư mục và thực thi chúng lần lượt. Nếu thành công, bạn sẽ thấy các bảng như users, failed_jobs, và đặc biệt là bảng products xuất hiện trong database của bạn.

Các lệnh quản lý Migration hữu ích khác:

  • php artisan migrate:rollback: Hoàn tác (xóa) nhóm migration chạy gần nhất (hữu ích khi bạn muốn sửa lại bảng vừa tạo).
  • php artisan migrate:fresh: Xóa toàn bộ các bảng hiện có trong database và chạy lại tất cả migration từ đầu (thường dùng khi reset dữ liệu test).

Lời kết

Việc kết hợp chặt chẽ giữa file cấu hình .env và hệ thống Migration giúp việc quản lý cơ sở dữ liệu trong Laravel trở nên chuyên nghiệp, minh bạch và dễ dàng kiểm soát phiên bản. Để tiếp tục hành trình làm chủ lập trình web và khám phá thêm nhiều kỹ thuật tối ưu hóa mã nguồn hiệu quả, bạn có thể truy cập website Học Laravel để đón đọc những chuỗi kiến thức thực chiến mới nhất mỗi ngày.

READ  Xử Lý Errors Và Lỗi Logging Trong Laravel

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *