forked from andika/membership-be
Update New Features
This commit is contained in:
161
migrations/complete_fix.sql
Normal file
161
migrations/complete_fix.sql
Normal file
@@ -0,0 +1,161 @@
|
||||
-- Complete Fix for Sprint 1-3 Migration
|
||||
-- Safe to run multiple times
|
||||
|
||||
-- ==============================================
|
||||
-- Step 1: Add columns to users table
|
||||
-- ==============================================
|
||||
|
||||
DO $$
|
||||
BEGIN
|
||||
-- Add profile_photo_url
|
||||
IF NOT EXISTS (
|
||||
SELECT 1 FROM information_schema.columns
|
||||
WHERE table_name = 'users' AND column_name = 'profile_photo_url'
|
||||
) THEN
|
||||
ALTER TABLE users ADD COLUMN profile_photo_url VARCHAR;
|
||||
RAISE NOTICE 'Added profile_photo_url to users table';
|
||||
ELSE
|
||||
RAISE NOTICE 'profile_photo_url already exists in users table';
|
||||
END IF;
|
||||
|
||||
-- Add social_media_facebook
|
||||
IF NOT EXISTS (
|
||||
SELECT 1 FROM information_schema.columns
|
||||
WHERE table_name = 'users' AND column_name = 'social_media_facebook'
|
||||
) THEN
|
||||
ALTER TABLE users ADD COLUMN social_media_facebook VARCHAR;
|
||||
RAISE NOTICE 'Added social_media_facebook to users table';
|
||||
ELSE
|
||||
RAISE NOTICE 'social_media_facebook already exists in users table';
|
||||
END IF;
|
||||
|
||||
-- Add social_media_instagram
|
||||
IF NOT EXISTS (
|
||||
SELECT 1 FROM information_schema.columns
|
||||
WHERE table_name = 'users' AND column_name = 'social_media_instagram'
|
||||
) THEN
|
||||
ALTER TABLE users ADD COLUMN social_media_instagram VARCHAR;
|
||||
RAISE NOTICE 'Added social_media_instagram to users table';
|
||||
ELSE
|
||||
RAISE NOTICE 'social_media_instagram already exists in users table';
|
||||
END IF;
|
||||
|
||||
-- Add social_media_twitter
|
||||
IF NOT EXISTS (
|
||||
SELECT 1 FROM information_schema.columns
|
||||
WHERE table_name = 'users' AND column_name = 'social_media_twitter'
|
||||
) THEN
|
||||
ALTER TABLE users ADD COLUMN social_media_twitter VARCHAR;
|
||||
RAISE NOTICE 'Added social_media_twitter to users table';
|
||||
ELSE
|
||||
RAISE NOTICE 'social_media_twitter already exists in users table';
|
||||
END IF;
|
||||
|
||||
-- Add social_media_linkedin
|
||||
IF NOT EXISTS (
|
||||
SELECT 1 FROM information_schema.columns
|
||||
WHERE table_name = 'users' AND column_name = 'social_media_linkedin'
|
||||
) THEN
|
||||
ALTER TABLE users ADD COLUMN social_media_linkedin VARCHAR;
|
||||
RAISE NOTICE 'Added social_media_linkedin to users table';
|
||||
ELSE
|
||||
RAISE NOTICE 'social_media_linkedin already exists in users table';
|
||||
END IF;
|
||||
END $$;
|
||||
|
||||
-- ==============================================
|
||||
-- Step 2: Add columns to events table
|
||||
-- ==============================================
|
||||
|
||||
DO $$
|
||||
BEGIN
|
||||
-- Add microsoft_calendar_id
|
||||
IF NOT EXISTS (
|
||||
SELECT 1 FROM information_schema.columns
|
||||
WHERE table_name = 'events' AND column_name = 'microsoft_calendar_id'
|
||||
) THEN
|
||||
ALTER TABLE events ADD COLUMN microsoft_calendar_id VARCHAR;
|
||||
RAISE NOTICE 'Added microsoft_calendar_id to events table';
|
||||
ELSE
|
||||
RAISE NOTICE 'microsoft_calendar_id already exists in events table';
|
||||
END IF;
|
||||
|
||||
-- Add microsoft_calendar_sync_enabled
|
||||
IF NOT EXISTS (
|
||||
SELECT 1 FROM information_schema.columns
|
||||
WHERE table_name = 'events' AND column_name = 'microsoft_calendar_sync_enabled'
|
||||
) THEN
|
||||
ALTER TABLE events ADD COLUMN microsoft_calendar_sync_enabled BOOLEAN DEFAULT FALSE;
|
||||
RAISE NOTICE 'Added microsoft_calendar_sync_enabled to events table';
|
||||
ELSE
|
||||
RAISE NOTICE 'microsoft_calendar_sync_enabled already exists in events table';
|
||||
END IF;
|
||||
END $$;
|
||||
|
||||
-- ==============================================
|
||||
-- Step 3: Fix storage_usage initialization
|
||||
-- ==============================================
|
||||
|
||||
-- Delete any incomplete records
|
||||
DELETE FROM storage_usage WHERE id IS NULL;
|
||||
|
||||
-- Insert initial record if table is empty
|
||||
INSERT INTO storage_usage (id, total_bytes_used, max_bytes_allowed, last_updated)
|
||||
SELECT
|
||||
gen_random_uuid(),
|
||||
0,
|
||||
10737418240, -- 10GB default
|
||||
CURRENT_TIMESTAMP
|
||||
WHERE NOT EXISTS (SELECT 1 FROM storage_usage);
|
||||
|
||||
-- ==============================================
|
||||
-- Step 4: Verify everything
|
||||
-- ==============================================
|
||||
|
||||
DO $$
|
||||
DECLARE
|
||||
user_col_count INT;
|
||||
event_col_count INT;
|
||||
storage_count INT;
|
||||
BEGIN
|
||||
-- Count users columns
|
||||
SELECT COUNT(*) INTO user_col_count
|
||||
FROM information_schema.columns
|
||||
WHERE table_name = 'users'
|
||||
AND column_name IN (
|
||||
'profile_photo_url',
|
||||
'social_media_facebook',
|
||||
'social_media_instagram',
|
||||
'social_media_twitter',
|
||||
'social_media_linkedin'
|
||||
);
|
||||
|
||||
-- Count events columns
|
||||
SELECT COUNT(*) INTO event_col_count
|
||||
FROM information_schema.columns
|
||||
WHERE table_name = 'events'
|
||||
AND column_name IN (
|
||||
'microsoft_calendar_id',
|
||||
'microsoft_calendar_sync_enabled'
|
||||
);
|
||||
|
||||
-- Count storage_usage records
|
||||
SELECT COUNT(*) INTO storage_count FROM storage_usage;
|
||||
|
||||
-- Report results
|
||||
RAISE NOTICE '';
|
||||
RAISE NOTICE '========================================';
|
||||
RAISE NOTICE 'Migration Verification Results:';
|
||||
RAISE NOTICE '========================================';
|
||||
RAISE NOTICE 'Users table: %/5 columns added', user_col_count;
|
||||
RAISE NOTICE 'Events table: %/2 columns added', event_col_count;
|
||||
RAISE NOTICE 'Storage usage: % record(s)', storage_count;
|
||||
RAISE NOTICE '';
|
||||
|
||||
IF user_col_count = 5 AND event_col_count = 2 AND storage_count > 0 THEN
|
||||
RAISE NOTICE '✅ Migration completed successfully!';
|
||||
ELSE
|
||||
RAISE NOTICE '⚠️ Migration incomplete. Please check the logs above.';
|
||||
END IF;
|
||||
RAISE NOTICE '========================================';
|
||||
END $$;
|
||||
Reference in New Issue
Block a user