-- ========================================================== -- DMS v1.8.0 Schema Part 1/3: DROP Statements -- รันไฟล์นี้ก่อน เพื่อล้างตารางเดิมทั้งหมด -- ========================================================== -- ========================================================== -- DMS v1.8.0 Document Management System Database -- Deploy Script Schema -- Server: Container Station on QNAP TS-473A -- Database service: MariaDB 11.8 -- database web ui: phpmyadmin 5-apache -- database development ui: DBeaver -- backend service: NestJS -- frontend service: next.js -- reverse proxy: jc21/nginx-proxy-manager:latest -- cron service: n8n -- ========================================================== -- [v1.8.0 UPDATE] Prepare migration -- Update: Upgraded from v1.7.0 -- Last Updated: 2026-02-27 -- Major Changes: -- 1. ปรับปรุง: -- 1.1 TABLE correspondences -- - INDEX idx_doc_number (correspondence_number), -- - INDEX idx_deleted_at (deleted_at), -- - INDEX idx_created_by (created_by), -- ========================================================== SET NAMES utf8mb4; SET time_zone = '+07:00'; -- ปิดการตรวจสอบ Foreign Key ชั่วคราวเพื่อให้สามารถลบตารางได้ทั้งหมด SET FOREIGN_KEY_CHECKS = 0; DROP VIEW IF EXISTS v_document_statistics; DROP VIEW IF EXISTS v_documents_with_attachments; DROP VIEW IF EXISTS v_user_all_permissions; DROP VIEW IF EXISTS v_audit_log_details; DROP VIEW IF EXISTS v_user_tasks; DROP VIEW IF EXISTS v_contract_parties_all; DROP VIEW IF EXISTS v_current_rfas; DROP VIEW IF EXISTS v_current_correspondences; -- DROP PROCEDURE IF EXISTS sp_get_next_document_number; -- 🗑️ DROP TABLE SCRIPT: LCBP3-DMS v1.4.2 -- คำเตือน: ข้อมูลทั้งหมดจะหายไป กรุณา Backup ก่อนรันบน Production SET FOREIGN_KEY_CHECKS = 0; -- ============================================================ -- ส่วนที่ 1: ตาราง System, Logs & Preferences (ตารางปลายทาง/ส่วนเสริม) -- ============================================================ DROP TABLE IF EXISTS backup_logs; DROP TABLE IF EXISTS search_indices; DROP TABLE IF EXISTS notifications; DROP TABLE IF EXISTS audit_logs; -- [NEW v1.4.2] ตารางการตั้งค่าส่วนตัวของผู้ใช้ (FK -> users) DROP TABLE IF EXISTS user_preferences; -- [NEW v1.4.2] ตารางเก็บ Schema สำหรับ Validate JSON (Stand-alone) DROP TABLE IF EXISTS json_schemas; -- [v1.5.1 NEW] ตาราง Audit และ Error Log สำหรับ Document Numbering DROP TABLE IF EXISTS document_number_errors; DROP TABLE IF EXISTS document_number_audit; DROP TABLE IF EXISTS document_number_reservations; -- ============================================================ -- ส่วนที่ 2: ตาราง Junction (เชื่อมโยงข้อมูล M:N) -- ============================================================ DROP TABLE IF EXISTS correspondence_tags; DROP TABLE IF EXISTS asbuilt_revision_shop_revisions_refs; DROP TABLE IF EXISTS shop_drawing_revision_contract_refs; DROP TABLE IF EXISTS contract_drawing_subcat_cat_maps; -- ============================================================ -- ส่วนที่ 3: ตารางไฟล์แนบและการเชื่อมโยง (Attachments) -- ============================================================ DROP TABLE IF EXISTS contract_drawing_attachments; DROP TABLE IF EXISTS circulation_attachments; DROP TABLE IF EXISTS shop_drawing_revision_attachments; DROP TABLE IF EXISTS asbuilt_drawing_revision_attachments; DROP TABLE IF EXISTS correspondence_attachments; DROP TABLE IF EXISTS attachments; -- ตารางหลักเก็บ path ไฟล์ -- ============================================================ -- ส่วนที่ 4: ตาราง Workflow & Routing (Process Logic) -- ============================================================ -- Correspondence Workflow -- ============================================================ -- ส่วนที่ 5: ตาราง Mapping สิทธิ์และโครงสร้าง (Access Control) -- ============================================================ DROP TABLE IF EXISTS role_permissions; DROP TABLE IF EXISTS user_assignments; DROP TABLE IF EXISTS contract_organizations; DROP TABLE IF EXISTS project_organizations; -- ============================================================ -- ส่วนที่ 6: ตารางรายละเอียดของเอกสาร (Revisions & Items) -- ============================================================ DROP TABLE IF EXISTS transmittal_items; DROP TABLE IF EXISTS shop_drawing_revisions; DROP TABLE IF EXISTS asbuilt_drawing_revisions; DROP TABLE IF EXISTS rfa_items; DROP TABLE IF EXISTS rfa_revisions; DROP TABLE IF EXISTS correspondence_references; DROP TABLE IF EXISTS correspondence_recipients; DROP TABLE IF EXISTS correspondence_revisions; -- [Modified v1.4.2] มี Virtual Columns -- ============================================================ -- ส่วนที่ 7: ตารางเอกสารหลัก (Core Documents) -- ============================================================ DROP TABLE IF EXISTS circulations; DROP TABLE IF EXISTS transmittals; DROP TABLE IF EXISTS contract_drawings; DROP TABLE IF EXISTS shop_drawings; DROP TABLE IF EXISTS asbuilt_drawings; DROP TABLE IF EXISTS rfas; DROP TABLE IF EXISTS correspondences; -- ============================================================ -- ส่วนที่ 8: ตารางหมวดหมู่และข้อมูลหลัก (Master Data) -- ============================================================ -- [NEW 6B] ลบตารางใหม่ที่เพิ่มเข้ามาเพื่อป้องกัน Error เวลา Re-deploy DROP TABLE IF EXISTS correspondence_sub_types; DROP TABLE IF EXISTS disciplines; DROP TABLE IF EXISTS shop_drawing_sub_categories; DROP TABLE IF EXISTS shop_drawing_main_categories; DROP TABLE IF EXISTS contract_drawing_sub_cats; DROP TABLE IF EXISTS contract_drawing_cats; DROP TABLE IF EXISTS contract_drawing_volumes; DROP TABLE IF EXISTS circulation_status_codes; DROP TABLE IF EXISTS rfa_approve_codes; DROP TABLE IF EXISTS rfa_status_codes; DROP TABLE IF EXISTS rfa_types; DROP TABLE IF EXISTS correspondence_status; DROP TABLE IF EXISTS correspondence_types; DROP TABLE IF EXISTS document_number_counters; -- [Modified v1.4.2] มี version column DROP TABLE IF EXISTS document_number_formats; DROP TABLE IF EXISTS tags; -- ============================================================ -- ส่วนที่ 9: ตารางผู้ใช้ บทบาท และโครงสร้างรากฐาน (Root Tables) -- ============================================================ DROP TABLE IF EXISTS organization_roles; DROP TABLE IF EXISTS roles; DROP TABLE IF EXISTS permissions; DROP TABLE IF EXISTS contracts; DROP TABLE IF EXISTS projects; DROP TABLE IF EXISTS refresh_tokens; DROP TABLE IF EXISTS users; -- Referenced by user_preferences, audit_logs, etc. DROP TABLE IF EXISTS organizations; -- Referenced by users, projects, etc.