Seed Data là gì?
Seed data là tập hợp các cậu lệnh sql hoặc đoạn code để đưa dữ liệu ban đầu vào CSDL.
Mục đích
-
Khởi tạo hệ thống với dữ liệu mặc định.
-
Tạo dữ liệu test nhanh chóng.
-
Hỗ trợ kiểm thử tự động (unit test, integration test).
-
Tạo môi trường demo cho khách hàng.
Cấu trúc file
-- +goose Up
INSERT INTO users (name, email)
VALUES
('Admin', '[email protected]'),
('Test User', '[email protected]');
-- +goose Down
DELETE FROM users
WHERE email IN ('[email protected]', '[email protected]');
-
Up
: thêm dữ liệu mẫu. -
Down
: xóa dữ liệu mẫu.
Sự khác biệt giữa Migration và Seed Data
Tiêu chí | Migration | Seed Data |
---|---|---|
Mục đích | Thay đổi cấu trúc DB | Thêm dữ liệu mẫu/mặc định |
Tác động | Schema | Data |
Rollback | Xóa/đổi cấu trúc | Xóa dữ liệu |
Thời điểm chạy | Khi thay đổi cấu trúc | Khi cần dữ liệu ban đầu |
Ví dụ | CREATE TABLE users |
INSERT INTO users (...) VALUES (...) |