56 lines
2.1 KiB
PL/PgSQL
56 lines
2.1 KiB
PL/PgSQL
-- Script para criar a tabela de proxies
|
|
-- Execute este script no seu banco de dados PostgreSQL
|
|
|
|
CREATE TABLE IF NOT EXISTS proxies (
|
|
id SERIAL PRIMARY KEY,
|
|
ip_address VARCHAR(255) NOT NULL,
|
|
port INTEGER NOT NULL,
|
|
protocol VARCHAR(10) NOT NULL DEFAULT 'http',
|
|
username VARCHAR(255),
|
|
password VARCHAR(255),
|
|
country_code VARCHAR(10),
|
|
country_name VARCHAR(100),
|
|
city VARCHAR(100),
|
|
is_active BOOLEAN DEFAULT TRUE,
|
|
is_anonymous BOOLEAN DEFAULT FALSE,
|
|
response_time_ms INTEGER,
|
|
last_checked_at TIMESTAMP,
|
|
last_successful_at TIMESTAMP,
|
|
failure_count INTEGER DEFAULT 0,
|
|
success_count INTEGER DEFAULT 0,
|
|
usage VARCHAR(50),
|
|
source VARCHAR(100),
|
|
notes TEXT,
|
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
|
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
|
CONSTRAINT check_protocol CHECK (protocol IN ('http', 'https', 'socks5', 'socks4'))
|
|
);
|
|
|
|
-- Índices para melhorar performance
|
|
CREATE INDEX IF NOT EXISTS idx_proxies_is_active ON proxies(is_active);
|
|
CREATE INDEX IF NOT EXISTS idx_proxies_last_successful_at ON proxies(last_successful_at DESC NULLS LAST);
|
|
CREATE INDEX IF NOT EXISTS idx_proxies_response_time ON proxies(response_time_ms ASC NULLS LAST);
|
|
CREATE INDEX IF NOT EXISTS idx_proxies_created_at ON proxies(created_at DESC);
|
|
|
|
-- Trigger para atualizar updated_at automaticamente
|
|
CREATE OR REPLACE FUNCTION update_updated_at_column()
|
|
RETURNS TRIGGER AS $$
|
|
BEGIN
|
|
NEW.updated_at = NOW();
|
|
RETURN NEW;
|
|
END;
|
|
$$ language 'plpgsql';
|
|
|
|
CREATE TRIGGER update_proxies_updated_at BEFORE UPDATE ON proxies
|
|
FOR EACH ROW EXECUTE FUNCTION update_updated_at_column();
|
|
|
|
-- Exemplo de inserção de proxies (remova ou ajuste conforme necessário)
|
|
-- INSERT INTO proxies (ip_address, port, protocol, is_active, is_anonymous) VALUES
|
|
-- ('123.456.789.10', 8080, 'http', TRUE, FALSE),
|
|
-- ('98.765.432.10', 3128, 'https', TRUE, TRUE),
|
|
-- ('45.67.89.100', 1080, 'socks5', TRUE, TRUE);
|
|
|
|
-- Exemplo com autenticação
|
|
-- INSERT INTO proxies (ip_address, port, protocol, username, password, is_active) VALUES
|
|
-- ('proxy.example.com', 8080, 'http', 'user123', 'pass456', TRUE);
|