Database và migration
Database chính là PostgreSQL 16. Schema được quản lý bằng Flyway migration trong backend/src/main/resources/db/migration. Khi báo cáo, hãy tách rõ ba thứ: bảng nghiệp vụ, file migration và dữ liệu đang có trong DB sống.
Nhóm bảng chính
| Nhóm | Bảng tiêu biểu | Ý nghĩa |
|---|---|---|
| Identity | users, organizations, user_external_identities |
Tài khoản, role, org, login ngoài |
| Course authoring | courses, chapters, lessons, sections |
Draft/course content của teacher; content_blocks là cột JSONB trong lessons |
| Publication | course_publications |
Snapshot learner-facing sau khi duyệt |
| Learning | enrollments, student_lesson_progress, certificates |
Ghi danh, tiến độ, chứng chỉ |
| Assessment | quizzes, questions, quiz_attempts, assignments, assignment_submissions |
Quiz, bài tập, chấm điểm |
| Media/upload | upload_sessions, video_assets, video_ingest_jobs |
Upload, ingest, playback |
| Payment | payment_transactions, revenue_splits, payout_requests |
Thanh toán, refund, chia doanh thu |
| AI/Wiii | chat_sessions, chat_messages, ai_insights, ai_alerts |
Chat/insight/cảnh báo AI |
Số bảng hiện tại
Catalog sinh từ Flyway cho thấy schema hiện có 78 application tables và 2 materialized views. 107 là số file migration SQL, không phải số bảng. Version cuối là V135 vì migration có gap version và có hotfix dạng V54.1, nên không suy ra “135 file” hay “135 bảng” từ số version.
Nếu mở DBeaver trên DB sống, có thể thấy thêm flyway_schema_history; bảng đó là bảng quản trị Flyway, không tính vào bảng nghiệp vụ LMS. Xem chi tiết từng bảng, cột, index, migration nguồn và danh sách đầy đủ 107 file SQL ở SQL schema catalog. Xem ảnh ERD, row estimate và đối chiếu DB sống ở DB sống và ERD DBeaver.
public có 78 bảng nghiệp vụ, 2 materialized views và migration mới nhất là V135__video_storage_governance.sql.”
Quy tắc Flyway
- Không sửa migration cũ đã chạy.
- Tạo migration mới theo dạng
Vxxx__short_description.sql. - Schema production do Flyway quản lý, không dựa vào
ddl-auto update. - Nếu thêm FK lớn, nhớ xem index ở phía referencing table.
Timeline migration
Xem Database timeline để nhớ các mốc như V70, V74, V92, V119, V130, V135 và bảng domain -> tables -> code.
DBeaver
Để trình bày database tổng, DBeaver ER diagram vẫn phù hợp. Tuy nhiên ERD tổng rất dày, nên cách nói tốt nhất là: mở bản đồ domain dễ học trước, sau đó mới mở ảnh ERD tổng nếu thầy muốn xem toàn schema.
- Mở schema
public. - Chọn nhóm bảng trọng tâm hoặc toàn schema.
- Zoom vừa đủ thấy cluster bảng.
- Nếu quá rối, chụp từng domain: identity, course, assessment, learning, payment, media.
- Không chiếu password, file key SSH,
.envhoặc connection string đầy đủ.