63 lines
2.5 KiB
PL/PgSQL
63 lines
2.5 KiB
PL/PgSQL
-- ============================================================================
|
|
-- LightRAG Multi-Tenant Schema Migration - Drop Unused Tables
|
|
-- Version: 3.0.0
|
|
-- Date: December 4, 2025
|
|
-- Purpose: Remove empty "modern" tables that are not used by the storage engine
|
|
--
|
|
-- These tables were designed but never implemented in the storage engine.
|
|
-- All actual data storage uses LIGHTRAG_* tables with workspace column.
|
|
--
|
|
-- Usage:
|
|
-- PGPASSWORD=lightrag123 psql -h localhost -p 15432 -U lightrag -d lightrag_multitenant -f 003_drop_unused_tables.sql
|
|
-- ============================================================================
|
|
|
|
BEGIN;
|
|
|
|
-- Verify tables are empty (safety check)
|
|
DO $$
|
|
DECLARE
|
|
cnt INTEGER;
|
|
BEGIN
|
|
SELECT COUNT(*) INTO cnt FROM documents;
|
|
IF cnt > 0 THEN RAISE EXCEPTION 'documents table is not empty (% rows)', cnt; END IF;
|
|
|
|
SELECT COUNT(*) INTO cnt FROM document_status;
|
|
IF cnt > 0 THEN RAISE EXCEPTION 'document_status table is not empty (% rows)', cnt; END IF;
|
|
|
|
SELECT COUNT(*) INTO cnt FROM entities;
|
|
IF cnt > 0 THEN RAISE EXCEPTION 'entities table is not empty (% rows)', cnt; END IF;
|
|
|
|
SELECT COUNT(*) INTO cnt FROM relations;
|
|
IF cnt > 0 THEN RAISE EXCEPTION 'relations table is not empty (% rows)', cnt; END IF;
|
|
|
|
SELECT COUNT(*) INTO cnt FROM embeddings;
|
|
IF cnt > 0 THEN RAISE EXCEPTION 'embeddings table is not empty (% rows)', cnt; END IF;
|
|
|
|
SELECT COUNT(*) INTO cnt FROM kv_storage;
|
|
IF cnt > 0 THEN RAISE EXCEPTION 'kv_storage table is not empty (% rows)', cnt; END IF;
|
|
|
|
SELECT COUNT(*) INTO cnt FROM lightrag_tenants;
|
|
IF cnt > 0 THEN RAISE EXCEPTION 'lightrag_tenants table is not empty (% rows)', cnt; END IF;
|
|
|
|
SELECT COUNT(*) INTO cnt FROM lightrag_knowledge_bases;
|
|
IF cnt > 0 THEN RAISE EXCEPTION 'lightrag_knowledge_bases table is not empty (% rows)', cnt; END IF;
|
|
|
|
RAISE NOTICE 'All tables verified empty - safe to drop';
|
|
END $$;
|
|
|
|
-- Drop tables (in correct order due to FK dependencies)
|
|
DROP TABLE IF EXISTS embeddings CASCADE;
|
|
DROP TABLE IF EXISTS document_status CASCADE;
|
|
DROP TABLE IF EXISTS relations CASCADE;
|
|
DROP TABLE IF EXISTS entities CASCADE;
|
|
DROP TABLE IF EXISTS documents CASCADE;
|
|
DROP TABLE IF EXISTS kv_storage CASCADE;
|
|
DROP TABLE IF EXISTS lightrag_knowledge_bases CASCADE;
|
|
DROP TABLE IF EXISTS lightrag_tenants CASCADE;
|
|
|
|
-- Record migration
|
|
INSERT INTO schema_migrations (version, description, status, applied_at)
|
|
VALUES ('3.0.0', 'Drop unused modern tables', 'applied', NOW())
|
|
ON CONFLICT (version) DO UPDATE SET status = 'applied', applied_at = NOW();
|
|
|
|
COMMIT;
|