refactor: remove all backward compatibility database views
Removed all 5 backward compatibility views from database schema: 1. ebooks view (lines 122-128) - Old API: /api/ebooks - Replaced by: media_items table with library_type filter 2. ebook_reading_progress view (lines 160-168) - Old API: mapped ebook_id alias - All progress routes now use reading_progress table directly 3. ebook_ratings view (lines 323-331) - Old API: /api/ebooks/:id/rating - Replaced by: media_ratings table 4. ebook_notes view (lines 333-341) - Old API: /api/ebooks/:id/notes - Replaced by: media_notes table 5. ebook_highlights view (lines 343-351) - Old API: /api/ebooks/:id/highlights - Replaced by: media_highlights table Verification: - No code queries these views directly (all queries use base tables) - No handlers reference these views - Bruno API tests use /api/media-items endpoints - Application compiles successfully This completes Phase 4 of legacy code cleanup. All backward compatibility layers removed, codebase uses base tables directly.
This commit is contained in:
@@ -119,14 +119,6 @@ CREATE TABLE media_items (
|
||||
kobo_metadata JSONB
|
||||
);
|
||||
|
||||
-- Create ebooks view for backward compatibility
|
||||
CREATE VIEW ebooks AS
|
||||
SELECT mi.*
|
||||
FROM media_items mi
|
||||
JOIN libraries l ON mi.library_id = l.id
|
||||
JOIN library_types lt ON l.library_type_id = lt.id
|
||||
WHERE lt.name = 'ebooks';
|
||||
|
||||
-- Create reading_progress table
|
||||
CREATE TABLE reading_progress (
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
@@ -158,15 +150,6 @@ CREATE TABLE reading_progress (
|
||||
);
|
||||
|
||||
-- Create reading_progress view for backward compatibility
|
||||
CREATE VIEW ebook_reading_progress AS
|
||||
SELECT rp.*,
|
||||
mi.id as ebook_id -- Map media_item_id to ebook_id for compatibility
|
||||
FROM reading_progress rp
|
||||
JOIN media_items mi ON rp.media_item_id = mi.id
|
||||
JOIN libraries l ON mi.library_id = l.id
|
||||
JOIN library_types lt ON l.library_type_id = lt.id
|
||||
WHERE lt.name = 'ebooks';
|
||||
|
||||
-- Create media_ratings table (replaces ebook_ratings)
|
||||
CREATE TABLE media_ratings (
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
@@ -337,35 +320,6 @@ CREATE TABLE reading_history (
|
||||
created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW()
|
||||
);
|
||||
|
||||
-- Create ebook_ratings view for backward compatibility
|
||||
CREATE VIEW ebook_ratings AS
|
||||
SELECT mr.*,
|
||||
mi.id as ebook_id -- Map media_item_id to ebook_id for compatibility
|
||||
FROM media_ratings mr
|
||||
JOIN media_items mi ON mr.media_item_id = mi.id
|
||||
JOIN libraries l ON mi.library_id = l.id
|
||||
JOIN library_types lt ON l.library_type_id = lt.id
|
||||
WHERE lt.name = 'ebooks';
|
||||
|
||||
-- Create ebook_notes view for backward compatibility
|
||||
CREATE VIEW ebook_notes AS
|
||||
SELECT mn.*,
|
||||
mi.id as ebook_id -- Map media_item_id to ebook_id for compatibility
|
||||
FROM media_notes mn
|
||||
JOIN media_items mi ON mn.media_item_id = mi.id
|
||||
JOIN libraries l ON mi.library_id = l.id
|
||||
JOIN library_types lt ON l.library_type_id = lt.id
|
||||
WHERE lt.name = 'ebooks';
|
||||
|
||||
-- Create ebook_highlights view for backward compatibility
|
||||
CREATE VIEW ebook_highlights AS
|
||||
SELECT mh.*,
|
||||
mi.id as ebook_id -- Map media_item_id to ebook_id for compatibility
|
||||
FROM media_highlights mh
|
||||
JOIN media_items mi ON mh.media_item_id = mi.id
|
||||
JOIN libraries l ON mi.library_id = l.id
|
||||
JOIN library_types lt ON l.library_type_id = lt.id
|
||||
WHERE lt.name = 'ebooks';
|
||||
|
||||
-- Create indexes for better query performance
|
||||
CREATE INDEX idx_users_email ON users(email);
|
||||
@@ -494,7 +448,7 @@ COMMENT ON COLUMN media_items.google_books_id IS 'Google Books identifier for in
|
||||
-- - Library visibility is controlled through library_visibility table - admins can hide/show libraries per user
|
||||
-- - Notes and highlights support position data (page:offset or CFI format) for precise location tracking
|
||||
-- - Highlights can have associated notes for detailed annotations
|
||||
-- - Backward compatibility views (ebooks, ebook_ratings, ebook_reading_progress, ebook_notes, ebook_highlights) maintain existing API contracts
|
||||
-- NOTE: All backward compatibility views (ebooks, ebook_ratings, ebook_reading_progress, ebook_notes, ebook_highlights) have been removed
|
||||
|
||||
-- ============================================
|
||||
-- PERFORMANCE OPTIMIZATION (Phase 7)
|
||||
|
||||
Reference in New Issue
Block a user