2025-08-27 20:23:05 +03:00
|
|
|
-- Search engine domain crawl status tracking
|
|
|
|
|
CREATE TABLE IF NOT EXISTS domain_crawl_status (
|
2025-11-08 17:14:40 +08:00
|
|
|
domain_id INT PRIMARY KEY,
|
2025-11-08 15:06:30 +08:00
|
|
|
last_crawled_at TIMESTAMP,
|
|
|
|
|
next_crawl_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
2025-11-08 16:11:38 +08:00
|
|
|
crawl_status VARCHAR(20) DEFAULT 'pending',
|
2025-08-27 20:23:05 +03:00
|
|
|
error_message TEXT,
|
|
|
|
|
pages_found INTEGER DEFAULT 0,
|
2025-11-08 17:14:40 +08:00
|
|
|
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
|
FOREIGN KEY (domain_id) REFERENCES domains(id) ON DELETE CASCADE
|
2025-08-27 20:23:05 +03:00
|
|
|
);
|
|
|
|
|
|
2025-11-08 16:11:38 +08:00
|
|
|
CREATE INDEX idx_domain_crawl_status_next_crawl ON domain_crawl_status(next_crawl_at);
|
|
|
|
|
CREATE INDEX idx_domain_crawl_status_status ON domain_crawl_status(crawl_status);
|
2025-08-27 20:23:05 +03:00
|
|
|
|
|
|
|
|
-- Function to update the updated_at column
|
2025-11-08 17:19:48 +08:00
|
|
|
-- MySQL trigger to update updated_at column - simplified without DELIMITER
|
2025-08-27 20:23:05 +03:00
|
|
|
CREATE TRIGGER update_domain_crawl_status_updated_at
|
2025-11-08 17:19:48 +08:00
|
|
|
BEFORE UPDATE ON domain_crawl_status
|
|
|
|
|
FOR EACH ROW
|
|
|
|
|
SET NEW.updated_at = CURRENT_TIMESTAMP;
|