Files
leonwww/dns/migrations/010_add_search_crawl_status.sql
2025-08-27 20:23:05 +03:00

28 lines
1.2 KiB
PL/PgSQL

-- Search engine domain crawl status tracking
CREATE TABLE IF NOT EXISTS domain_crawl_status (
domain_id INTEGER PRIMARY KEY REFERENCES domains(id) ON DELETE CASCADE,
last_crawled_at TIMESTAMPTZ,
next_crawl_at TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP,
crawl_status VARCHAR(20) DEFAULT 'pending' CHECK (crawl_status IN ('pending', 'crawling', 'completed', 'failed', 'disabled')),
error_message TEXT,
pages_found INTEGER DEFAULT 0,
updated_at TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP
);
CREATE INDEX IF NOT EXISTS idx_domain_crawl_status_next_crawl ON domain_crawl_status(next_crawl_at);
CREATE INDEX IF NOT EXISTS idx_domain_crawl_status_status ON domain_crawl_status(crawl_status);
-- Function to update the updated_at column
CREATE OR REPLACE FUNCTION update_updated_at_column()
RETURNS TRIGGER AS $$
BEGIN
NEW.updated_at = CURRENT_TIMESTAMP;
RETURN NEW;
END;
$$ LANGUAGE plpgsql;
-- Trigger for updated_at
DROP TRIGGER IF EXISTS update_domain_crawl_status_updated_at ON domain_crawl_status;
CREATE TRIGGER update_domain_crawl_status_updated_at
BEFORE UPDATE ON domain_crawl_status
FOR EACH ROW EXECUTE FUNCTION update_updated_at_column();