Danh sách lỗi thường gặp
| Stt | Tên lỗi | Prompt |
|---|---|---|
| 1 | ⚠️ Lỗi Layout |
✅ Auditing Codebase Layout Errors |
| 2 | ⚠️ Lỗi auto submit |
✅ |
| 3 | ⚠️ Lỗi TypeScript |
✅ |
| 4 | ⚠️ Lỗi hiển thị Unicode |
✅ |
| 5 | ⚠️ Lỗi CSS cũ |
✅ Auditing Legacy CSS Errors |
| 6 | ⚠️ Business logic trộn trong UI |
✅ Auditing Business Logic Separation |
| 7 | ⚠️ Thiếu application layer hook |
✅ Auditing Application Layer Hooks |
| 8 | ⚠️ TemplateEditor UX thô sơ |
✅ |
| 9 | ⚠️ Hardcode CSS |
✅ Auditing Hardcoded CSS Styles |
| 10 | ⚠️ Lỗi Format (UI/Frontend) |
✅ Auditing Frontend UI Formatting |
| 11 | ⚠️ Lỗi Naming Convention (Backend/Supabase) |
✅ Auditing Backend Naming Conventions |
| 12 | ⚠️ Lỗi Tech bebt |
✅ Auditing Tech Debt Source Code |
| 13 | ⚠️ Lỗi: duplicate key value violates unique constraint |
✅ Auditing Duplicate Key Constraints |
| 14 | ⚠️ Lỗi: Could not find the function |
✅ |
| 15 | ⚠️ Lỗi: function generate_next_doc_number |
✅ Fixing RPC Function Signature |
| 16 | ⚠️ Không refactor sau khi “vibe xong” |
✅ |
15. Lỗi: function generate_next_doc_number
Lỗi function generate_next_doc_number(unknown, unknown, unknown, integer) does not exist xảy ra vì trong đợt chuẩn hóa "Level 9 Architecture RPC" gần đây, tiện ích nội bộ generate_next_doc_number vô tình bị đổi tên thành rpc_generate_next_doc_number.
Thực tế, không giống như trigger sẽ tự động cập nhật tên mới, PostgreSQL sẽ không tự động cập nhật phần thân mã nguồn (phần body PL/pgSQL) của các hàm phụ thuộc (bao gồm tất cả các hàm rpc_create_order, rpc_create_yarn_receipt, v.v.). Điều đó dẫn đến khi chúng ta đang save dữ liệu, hệ thống chạy lệnh gọi generate_next_doc_number(...) bên trong cấu trúc lưu database nhưng nhận lại lỗi không thấy hàm. Đồng thời file src/api/helpers/next-doc-number.ts ở Client cũng vẫn đang trỏ về cấu trúc kiểu nguyên thủy.
Phương pháp và kết quả xử lý
Thay vì phải đập đi xây lại 9 hàm rpc_create_* có thể gây sai sót logic, thiết kế tối ưu nhất và an toàn là thiết lập lại tên gốc của Helper nội bộ này (vì bản chất nó luôn là Helper chứ không thao tác chuẩn hóa như Data Mutation RPC).
- Khởi tạo Database Migration mới: Sinh Migration Rollback
20260418000001_revert_doc_number_rename.sql. - Hủy bỏ tác vụ cấu hình nhầm
ALTER FUNCTION public.rpc_generate_next_doc_number RENAME TO generate_next_doc_number; - Push cấu hình tự động thông qua
npx supabase db push.
Báo cáo công việc (Verify & Report)
- Modified:
supabase/migrations/20260418000001_revert_doc_number_rename.sql(New Migration). - Trạng thái Database: Remote Database đã được apply thành công
supabase db push. - Mã nguồn Typescript: An toàn vì không bị lệch hàm ở
/src/api/helpers/next-doc-number.ts. Bạn có thể thao tác submit Tạo Phiếu bình thường trở lại. Hệ thống hoàn toàn không có lỗi Linter cũng như Typecheck tiếp diễn.
Hãy thử lưu lại phiếu và trải nghiệm nhé. Nếu có khúc mắc thêm xin tương tác lại!
#PostgreSQL #Supabase #DatabaseMigration #FixBugs #ERPDevelopment #TechDebt