50e25e3ee8
Rename subdirectories for a cleaner single-repo layout: - website-monitoring-backend/ → backend/ - website-monitoring-frontend/ → frontend/ - website-monitoring-devops/ → devops/ Update all references in package.json scripts, CI workflows, docker-compose, pre-commit hooks, and documentation. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
81 lines
3.5 KiB
SQL
81 lines
3.5 KiB
SQL
-- Database Fixes for Website Monitoring Frontend
|
|
-- Run this in your Supabase SQL editor to fix the console errors
|
|
|
|
-- 1. Add missing columns to crawl_sessions table that the API expects
|
|
ALTER TABLE crawl_sessions ADD COLUMN IF NOT EXISTS total_urls INTEGER DEFAULT 0;
|
|
ALTER TABLE crawl_sessions ADD COLUMN IF NOT EXISTS processed_urls INTEGER DEFAULT 0;
|
|
ALTER TABLE crawl_sessions ADD COLUMN IF NOT EXISTS progress_percentage INTEGER DEFAULT 0;
|
|
|
|
-- 2. Ensure all required columns exist in crawl_sessions table
|
|
ALTER TABLE crawl_sessions ADD COLUMN IF NOT EXISTS pages_discovered INTEGER DEFAULT 0;
|
|
ALTER TABLE crawl_sessions ADD COLUMN IF NOT EXISTS pages_processed INTEGER DEFAULT 0;
|
|
ALTER TABLE crawl_sessions ADD COLUMN IF NOT EXISTS current_url VARCHAR;
|
|
ALTER TABLE crawl_sessions ADD COLUMN IF NOT EXISTS error_message TEXT;
|
|
ALTER TABLE crawl_sessions ADD COLUMN IF NOT EXISTS metadata JSONB DEFAULT '{}'::jsonb;
|
|
|
|
-- 3. Add missing columns to users table if they don't exist
|
|
ALTER TABLE users ADD COLUMN IF NOT EXISTS created_at TIMESTAMPTZ DEFAULT NOW();
|
|
ALTER TABLE users ADD COLUMN IF NOT EXISTS last_login_at TIMESTAMPTZ;
|
|
ALTER TABLE users ADD COLUMN IF NOT EXISTS role VARCHAR DEFAULT 'member';
|
|
|
|
-- 4. Add missing columns to organizations table if they don't exist
|
|
ALTER TABLE organizations ADD COLUMN IF NOT EXISTS api_key TEXT;
|
|
ALTER TABLE organizations ADD COLUMN IF NOT EXISTS max_websites INTEGER DEFAULT 10;
|
|
ALTER TABLE organizations ADD COLUMN IF NOT EXISTS max_scans_per_month INTEGER DEFAULT 1000;
|
|
ALTER TABLE organizations ADD COLUMN IF NOT EXISTS subscription_status VARCHAR DEFAULT 'active';
|
|
|
|
-- 5. Create indexes for better performance
|
|
CREATE INDEX IF NOT EXISTS idx_crawl_sessions_status ON crawl_sessions(status);
|
|
CREATE INDEX IF NOT EXISTS idx_crawl_sessions_website_status ON crawl_sessions(website_id, status);
|
|
CREATE INDEX IF NOT EXISTS idx_users_organization_id ON users(organization_id);
|
|
CREATE INDEX IF NOT EXISTS idx_websites_organization_id ON websites(organization_id);
|
|
|
|
-- 6. Ensure RLS policies exist for crawl_sessions
|
|
-- Enable RLS if not already enabled
|
|
ALTER TABLE crawl_sessions ENABLE ROW LEVEL SECURITY;
|
|
|
|
-- Create basic RLS policy for crawl_sessions if it doesn't exist
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM pg_policies
|
|
WHERE tablename = 'crawl_sessions'
|
|
AND policyname = 'Allow read for authenticated users'
|
|
) THEN
|
|
CREATE POLICY "Allow read for authenticated users" ON crawl_sessions
|
|
FOR SELECT USING (true);
|
|
END IF;
|
|
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM pg_policies
|
|
WHERE tablename = 'crawl_sessions'
|
|
AND policyname = 'Allow insert for authenticated users'
|
|
) THEN
|
|
CREATE POLICY "Allow insert for authenticated users" ON crawl_sessions
|
|
FOR INSERT WITH CHECK (true);
|
|
END IF;
|
|
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM pg_policies
|
|
WHERE tablename = 'crawl_sessions'
|
|
AND policyname = 'Allow update for authenticated users'
|
|
) THEN
|
|
CREATE POLICY "Allow update for authenticated users" ON crawl_sessions
|
|
FOR UPDATE USING (true);
|
|
END IF;
|
|
END $$;
|
|
|
|
-- 7. Refresh Supabase schema cache to pick up new columns
|
|
-- This is important to resolve "Could not find column in schema cache" errors
|
|
NOTIFY pgrst, 'reload schema';
|
|
|
|
-- 8. Verify the fixes by checking table structure
|
|
-- You can run these queries to verify the fixes worked:
|
|
-- SELECT column_name, data_type, is_nullable, column_default
|
|
-- FROM information_schema.columns
|
|
-- WHERE table_name = 'crawl_sessions'
|
|
-- ORDER BY ordinal_position;
|
|
|
|
COMMIT;
|
|
|