23 lines
925 B
SQL
23 lines
925 B
SQL
CREATE TABLE dns_records (
|
|
id SERIAL PRIMARY KEY,
|
|
domain_id INTEGER NOT NULL REFERENCES domains(id) ON DELETE CASCADE,
|
|
record_type VARCHAR(10) NOT NULL CHECK (record_type IN ('A', 'AAAA', 'CNAME', 'TXT', 'MX', 'NS', 'SRV')),
|
|
name VARCHAR(255) NOT NULL DEFAULT '@', -- @ for root, or subdomain name
|
|
value VARCHAR(1000) NOT NULL,
|
|
ttl INTEGER DEFAULT 3600,
|
|
priority INTEGER, -- For MX records
|
|
created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW()
|
|
);
|
|
|
|
CREATE INDEX idx_dns_records_domain_type ON dns_records(domain_id, record_type);
|
|
CREATE INDEX idx_dns_records_name ON dns_records(name);
|
|
|
|
INSERT INTO dns_records (domain_id, record_type, name, value, ttl)
|
|
SELECT id, 'A', '@', ip, 3600
|
|
FROM domains
|
|
WHERE status = 'approved';
|
|
|
|
INSERT INTO dns_records (domain_id, record_type, name, value, ttl, priority)
|
|
SELECT id, 'SRV', '_gurt._tcp', '0 5 4878 @', 3600, 0
|
|
FROM domains
|
|
WHERE status = 'approved'; |