
- Remove entire utils/db_operations.rs file and all *Operations patterns - Comment out imports to dead operations - This breaks compilation temporarily but eliminates the maintenance nightmare - Next: rewrite db:: modules to use direct SQL instead of operations - Goal: Clean Handler → Service → Database pattern only
75 lines
2.4 KiB
SQL
75 lines
2.4 KiB
SQL
-- Simple cleanup: Strip everything after hymn numbers, keep just the number
|
|
-- This will clean #415 - Christ the Lord, All Power Possessing "..." down to just #415
|
|
|
|
-- STEP 1: Preview what changes will be made (run this first to see what gets cleaned)
|
|
SELECT
|
|
id,
|
|
title,
|
|
date,
|
|
'divine_worship' as field,
|
|
divine_worship as before_cleanup,
|
|
REGEXP_REPLACE(
|
|
REGEXP_REPLACE(
|
|
REGEXP_REPLACE(divine_worship,
|
|
'#([0-9]{1,3})\s*-[^#\n]*', '#\1', 'g' -- #123 - anything -> #123
|
|
),
|
|
'Hymn\s+([0-9]{1,3})\s*-[^#\n]*', '#\1', 'g' -- Hymn 123 - anything -> #123
|
|
),
|
|
'No\.\s*([0-9]{1,3})\s*-[^#\n]*', '#\1', 'g' -- No. 123 - anything -> #123
|
|
) as after_cleanup
|
|
FROM bulletins
|
|
WHERE divine_worship ~ '(#|Hymn\s+|No\.\s*)[0-9]{1,3}\s*-'
|
|
|
|
UNION ALL
|
|
|
|
SELECT
|
|
id,
|
|
title,
|
|
date,
|
|
'sabbath_school' as field,
|
|
sabbath_school as before_cleanup,
|
|
REGEXP_REPLACE(
|
|
REGEXP_REPLACE(
|
|
REGEXP_REPLACE(sabbath_school,
|
|
'#([0-9]{1,3})\s*-[^#\n]*', '#\1', 'g' -- #123 - anything -> #123
|
|
),
|
|
'Hymn\s+([0-9]{1,3})\s*-[^#\n]*', '#\1', 'g' -- Hymn 123 - anything -> #123
|
|
),
|
|
'No\.\s*([0-9]{1,3})\s*-[^#\n]*', '#\1', 'g' -- No. 123 - anything -> #123
|
|
) as after_cleanup
|
|
FROM bulletins
|
|
WHERE sabbath_school ~ '(#|Hymn\s+|No\.\s*)[0-9]{1,3}\s*-'
|
|
ORDER BY date DESC;
|
|
|
|
-- STEP 2: Create backup before running cleanup
|
|
-- CREATE TABLE bulletins_backup AS SELECT * FROM bulletins;
|
|
|
|
-- STEP 3: Actually do the cleanup (uncomment after reviewing preview)
|
|
/*
|
|
UPDATE bulletins
|
|
SET divine_worship = REGEXP_REPLACE(
|
|
REGEXP_REPLACE(
|
|
REGEXP_REPLACE(divine_worship,
|
|
'#([0-9]{1,3})\s*-[^#\n]*', '#\1', 'g'
|
|
),
|
|
'Hymn\s+([0-9]{1,3})\s*-[^#\n]*', '#\1', 'g'
|
|
),
|
|
'No\.\s*([0-9]{1,3})\s*-[^#\n]*', '#\1', 'g'
|
|
)
|
|
WHERE divine_worship ~ '(#|Hymn\s+|No\.\s*)[0-9]{1,3}\s*-';
|
|
|
|
UPDATE bulletins
|
|
SET sabbath_school = REGEXP_REPLACE(
|
|
REGEXP_REPLACE(
|
|
REGEXP_REPLACE(sabbath_school,
|
|
'#([0-9]{1,3})\s*-[^#\n]*', '#\1', 'g'
|
|
),
|
|
'Hymn\s+([0-9]{1,3})\s*-[^#\n]*', '#\1', 'g'
|
|
),
|
|
'No\.\s*([0-9]{1,3})\s*-[^#\n]*', '#\1', 'g'
|
|
)
|
|
WHERE sabbath_school ~ '(#|Hymn\s+|No\.\s*)[0-9]{1,3}\s*-';
|
|
*/
|
|
|
|
-- STEP 4: Verify cleanup worked
|
|
-- SELECT COUNT(*) FROM bulletins WHERE divine_worship ~ '#[0-9]{1,3}\s*-' OR sabbath_school ~ '#[0-9]{1,3}\s*-'; |