Sau khi hoàn thành phần Routing, Controller và Blade, chúng ta đã có thể xây dựng giao diện cho ứng dụng.
Tuy nhiên, mọi website thực tế đều cần lưu trữ dữ liệu như người dùng, bài viết, danh mục hay đơn hàng.
Đó là lúc Database trở thành thành phần không thể thiếu.
Trong bài học này, chúng ta sẽ tìm hiểu cách kết nối Laravel với MySQL và chạy Migration đầu tiên để tạo cơ sở dữ liệu theo chuẩn của Laravel.
Database trong Laravel
Laravel hỗ trợ nhiều hệ quản trị cơ sở dữ liệu như:
MySQL
MariaDB
PostgreSQL
SQLite
SQL Server
Trong khóa học này, chúng ta sẽ sử dụng MySQL vì đây là hệ quản trị phổ biến nhất trong các dự án PHP.
Chuẩn bị MySQL
Trước tiên hãy tạo một database mới.
Ví dụ:
CREATE DATABASE laravel12;
Bạn có thể tạo bằng:
phpMyAdmin
MySQL Workbench
DBeaver
Hoặc sử dụng dòng lệnh MySQL.
File cấu hình .env
Laravel sử dụng file .env để lưu các thông tin cấu hình của dự án.
Mở file:
.env
Tìm đến phần Database:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel12
DB_USERNAME=root
DB_PASSWORD=
Ý nghĩa của từng thông số:
DB_CONNECTION: Loại cơ sở dữ liệu.
DB_HOST: Địa chỉ máy chủ.
DB_PORT: Cổng kết nối.
DB_DATABASE: Tên cơ sở dữ liệu.
DB_USERNAME: Tài khoản đăng nhập.
DB_PASSWORD: Mật khẩu.
Laravel sẽ đọc các thông tin này mỗi khi kết nối Database.
Kiểm tra kết nối
Sau khi cấu hình xong, hãy khởi động ứng dụng:
php artisan serve
Nếu truy cập website không gặp lỗi kết nối Database, nghĩa là Laravel đã đọc đúng thông tin trong file .env.
Nếu cấu hình sai, bạn có thể gặp các lỗi như:
Access denied
Unknown database
Connection refused
Hãy kiểm tra lại tên database, tài khoản, mật khẩu hoặc dịch vụ MySQL đã được khởi động hay chưa.
Chú ý: phải Chạy Migration trước:
php artisan migrateMigration là gì?
Trong Laravel, chúng ta không tạo bảng trực tiếp bằng phpMyAdmin.
Thay vào đó, Laravel sử dụng Migration để quản lý cấu trúc cơ sở dữ liệu bằng mã nguồn.
Có thể hiểu Migration giống như "phiên bản hóa" (version control) cho Database.
Mỗi thay đổi về bảng dữ liệu đều được lưu thành một file Migration, giúp dễ dàng theo dõi, chia sẻ và đồng bộ giữa các thành viên trong nhóm.
Thư mục Migration
Tất cả Migration được lưu tại:
database/
└── migrations/
Ngay khi tạo project Laravel, bạn sẽ thấy sẵn một số Migration như:
users
password_reset_tokens
cache
jobs
Đây là các bảng mặc định phục vụ hệ thống.
Chạy Migration đầu tiên
Laravel cung cấp Artisan để tạo toàn bộ bảng chỉ với một lệnh:
php artisan migrate
Khi chạy lệnh này, Laravel sẽ:
Đọc toàn bộ file Migration.
Tạo các bảng trong Database.
Ghi lại lịch sử Migration vào bảng
migrations.
Nếu thành công, bạn sẽ thấy các bảng mặc định xuất hiện trong Database.
Bảng migrations
Laravel tự động tạo bảng:
migrations
Bảng này dùng để lưu:
Migration nào đã chạy.
Thời điểm chạy.
Thứ tự chạy.
Nhờ đó Laravel biết file nào cần thực thi ở những lần tiếp theo và tránh chạy lặp lại.
Kiểm tra kết quả
Mở phpMyAdmin hoặc công cụ quản lý Database, bạn sẽ thấy các bảng như:
users
password_reset_tokens
sessions
cache
cache_locks
jobs
job_batches
failed_jobs
migrations
(Tùy theo phiên bản Laravel và các tùy chọn khi tạo dự án, danh sách bảng mặc định có thể khác nhau.)
Điều này cho thấy Laravel đã kết nối thành công với MySQL và thực hiện Migration.
Một số lệnh Migration hữu ích
Chạy Migration:
php artisan migrate
Quay lại lần Migration gần nhất:
php artisan migrate:rollback
Làm mới toàn bộ Migration:
php artisan migrate:fresh
Làm mới và chạy Seeder:
php artisan migrate:fresh --seed
Những lệnh này sẽ được sử dụng thường xuyên trong quá trình phát triển ứng dụng.
Lưu ý khi làm việc với Database
Không chỉnh sửa trực tiếp cấu trúc bảng trên môi trường phát triển nếu dự án đang sử dụng Migration.
Mọi thay đổi về Database nên được quản lý bằng Migration để đảm bảo tính đồng bộ.
Không chia sẻ file
.envvì có thể chứa thông tin nhạy cảm như tài khoản và mật khẩu Database.Thêm
.envvào.gitignorekhi làm việc với Git.
Tổng kết
Trong bài học này, chúng ta đã:
Hiểu vai trò của Database trong Laravel.
Tạo Database MySQL.
Cấu hình kết nối thông qua file
.env.Chạy Migration đầu tiên bằng Artisan.
Tìm hiểu bảng
migrations.Làm quen với các lệnh Migration cơ bản.
Ở bài tiếp theo, chúng ta sẽ đi sâu vào Migration, học cách tự tạo bảng, định nghĩa các kiểu dữ liệu, khóa ngoại (foreignId) và quản lý thay đổi cấu trúc cơ sở dữ liệu theo đúng quy trình phát triển chuyên nghiệp trong Laravel.
x1




Không có nhận xét nào:
Đăng nhận xét