Hỗ trợ đồ án, khóa luận Web, App, AI - Uy tín, chất lượng!
Hỗ trợ đồ án, khóa luận Web, App, AI - Uy tín, chất lượng!
Trang Chủ Hướng Dẫn Đồ Án Cách tạo file SQL seed để thêm dữ liệu mẫu cho Database
Hướng Dẫn Đồ Án

Cách tạo file SQL seed để thêm dữ liệu mẫu cho Database

Chia sẻ
Chia sẻ

Trong quá trình phát triển đồ án hoặc xây dựng ứng dụng web, việc thêm dữ liệu mẫu (seed data) vào cơ sở dữ liệu giúp việc kiểm thử, trình diễn chức năng và phát triển trở nên thuận tiện hơn. Thay vì phải nhập thủ công, có thể sử dụng file SQL seed để tự động hóa quá trình chèn dữ liệu.

Bài viết này hướng dẫn cách tạo và chạy file SQL seed để thêm dữ liệu mẫu vào cơ sở dữ liệu một cách nhanh chóng và hiệu quả.

Seed data là gì và tại sao nên dùng?

Seed data là tập hợp các dữ liệu khởi tạo (dữ liệu mẫu) được đưa vào cơ sở dữ liệu ngay từ đầu. Loại dữ liệu này thường bao gồm:

  • Người dùng mẫu

  • Sản phẩm mẫu

  • Danh mục, vai trò người dùng

  • Bài viết thử, đơn hàng mẫu, v.v.

Sử dụng seed data mang lại nhiều lợi ích:

  • Giúp hiển thị đầy đủ chức năng khi demo đồ án

  • Hỗ trợ kiểm thử logic ứng dụng mà không cần tạo dữ liệu thủ công

  • Dễ tái sử dụng khi làm việc nhóm hoặc deploy sang môi trường khác

Lên kế hoạch dữ liệu seed phù hợp

Trước khi bắt tay vào viết file SQL, cần xác định rõ bảng nào cần dữ liệu mẫu, số lượng bản ghi hợp lý và mối quan hệ giữa các bảng. Dữ liệu seed không nên quá nhiều, nhưng đủ để thể hiện luồng chính của hệ thống.

Một số loại dữ liệu thường được seed trong đồ án:

  • Người dùng (users): với tên, email, mật khẩu giả lập

  • Vai trò (roles) hoặc quyền truy cập

  • Sản phẩm (products) nếu là đồ án thương mại điện tử

  • Bài viết (posts) trong ứng dụng blog

  • Đơn hàng (orders), bình luận (comments), thể loại (categories),…

Mẹo: Chỉ seed dữ liệu tĩnh, không nên seed dữ liệu phát sinh liên tục hoặc liên quan đến bảo mật (ví dụ: mật khẩu thật, token thật, dữ liệu cá nhân thật,…).

Cách tạo file seed dạng SQL thủ công

Một file seed đơn giản có thể chỉ là một tập tin .sql chứa các lệnh INSERT.

Ví dụ: tạo file seed.sql cho bảng usersproducts:

-- Seed dữ liệu cho bảng users
INSERT INTO users (id, name, email) VALUES
(1, 'Nguyen Van A', 'a@example.com'),
(2, 'Tran Thi B', 'b@example.com'),
(3, 'Le Van C', 'c@example.com');

-- Seed dữ liệu cho bảng products
INSERT INTO products (id, name, price, stock) VALUES
(1, 'Áo thun', 150000, 10),
(2, 'Quần jeans', 300000, 5),
(3, 'Giày sneaker', 700000, 8);

Sau khi tạo file, có thể chạy lệnh để thực thi file này vào database.

Cách chạy file seed vào cơ sở dữ liệu

Với PostgreSQL

Sử dụng dòng lệnh psql:

psql -U postgres -d ten_database -f seed.sql

Ví dụ:

psql -U postgres -d doan_cuoiky -f seed.sql

Với MySQL

Sử dụng dòng lệnh mysql:

mysql -u root -p ten_database < seed.sql

Ví dụ:

mysql -u root -p doan_cuoiky < seed.sql

Nhập mật khẩu khi được yêu cầu. Sau khi chạy xong, dữ liệu mẫu sẽ được thêm vào CSDL.

Seed dữ liệu trong môi trường phát triển với Docker

Nếu đồ án sử dụng PostgreSQL hoặc MySQL chạy trong container Docker, cần đảm bảo file seed được mount đúng vào container hoặc chạy bằng lệnh docker exec.

Với PostgreSQL:

docker exec -i ten_container psql -U postgres -d ten_database < seed.sql

Với MySQL:

docker exec -i ten_container mysql -u root -p123456 ten_database < seed.sql

Tùy thuộc vào môi trường thiết lập, có thể cần thay đổi -p hoặc tên container.

Kết hợp seed với công cụ ORM

Nếu đồ án sử dụng ORM như Sequelize, Prisma, TypeORM,… có thể sử dụng command hoặc script tích hợp sẵn để seed dữ liệu tự động.

Ví dụ seed với Sequelize CLI:

  • Tạo file seed trong thư mục seeders/

'use strict';

module.exports = {
  up: async (queryInterface, Sequelize) => {
    await queryInterface.bulkInsert('Users', [
      { name: 'Nguyễn Văn A', email: 'a@example.com', createdAt: new Date(), updatedAt: new Date() },
      { name: 'Trần Thị B', email: 'b@example.com', createdAt: new Date(), updatedAt: new Date() },
    ], {});
  },

  down: async (queryInterface, Sequelize) => {
    await queryInterface.bulkDelete('Users', null, {});
  }
};
  • Chạy command:

npx sequelize-cli db:seed:all

ORM giúp đảm bảo dữ liệu seed đúng định dạng model, đặc biệt tiện khi cấu trúc bảng thay đổi.

Lưu ý khi tạo file seed

  • Đảm bảo bảng đã được tạo trước khi chạy seed (có thể dùng chung với migration)

  • Nên thêm TRUNCATE TABLE đầu mỗi section nếu cần reset dữ liệu cũ

  • Không nên seed dữ liệu thực tế (như mật khẩu thật, thông tin nhạy cảm)

  • Dữ liệu seed có thể được dùng trong CI/CD hoặc quá trình kiểm thử tự động

Ví dụ reset bảng trước khi seed:

TRUNCATE TABLE users RESTART IDENTITY CASCADE;

Kết luận

Tạo file seed SQL là phương pháp hiệu quả để thêm dữ liệu mẫu vào cơ sở dữ liệu trong quá trình làm đồ án hoặc phát triển ứng dụng. Chỉ cần một file .sql, một vài lệnh INSERT, và một câu lệnh thực thi là có thể tái sử dụng, chia sẻ và triển khai dữ liệu mẫu một cách dễ dàng.

Tham Gia Nhóm – Hỗ Trợ Lập Trình

Hỗ Trợ Đồ Án – ThueDoAn.vn

Liên quan
Hướng Dẫn Đồ Án

Checklist 10 bước kiểm tra cuối cùng trước khi nhấn nút nộp đồ án

Thời điểm chuẩn bị nhấn nút nộp đồ án luôn mang lại...

Hướng Dẫn Đồ Án

Tuyệt chiêu đối phó với những giảng viên hướng dẫn ‘khó tính’ nhất

Giai đoạn làm đồ án tốt nghiệp luôn đi kèm với vô...

Hướng Dẫn Đồ Án

Tại sao việc quản lý Source Code bằng Git lại quan trọng hơn bạn nghĩ?

Trong thế giới lập trình hiện đại, mã nguồn chính là linh...

Hướng Dẫn Đồ Án

Những chức năng ‘thừa’ khiến bạn tốn thời gian mà không được cộng điểm

Làm đồ án tốt nghiệp là một cuộc đua thực thụ với...

Hướng Dẫn Đồ Án

Cách xử lý khi đề tài bị trùng lặp ý tưởng với các khóa trước quá nhiều

Lựa chọn đề tài đồ án luôn là bước khởi đầu đầy...

Hướng Dẫn Đồ Án

Làm sao để giải trình với giảng viên khi code bị nghi ngờ là đi chép?

Trong quá trình thực hiện đồ án, việc tham khảo mã nguồn...

Hướng Dẫn Đồ Án

Cảnh báo: Những nguồn share code ‘rác’ trên mạng cần tuyệt đối tránh

Trong quá trình làm đồ án, việc tìm kiếm sự hỗ trợ...

Hướng Dẫn Đồ Án

Sai lầm khi chọn công nghệ quá khó so với năng lực thực tế của bản thân

Chọn đề tài và công nghệ cho đồ án luôn là bước...

Liên Hệ
Liên hệ để được tư vấn & hỗ trợ đồ án CNTT nhé bạn!