feat(domain-order): add sql migrations for dns

This commit is contained in:
ulitsaRaskolnikova 2026-01-10 09:16:39 +03:00
parent 8a899dd2a5
commit 4e4fa2cb63
7 changed files with 59 additions and 0 deletions

View File

@ -11,3 +11,6 @@ CREATE TYPE order_status AS ENUM ('created','pending_payment','paid','cancelled'
--changeset system:001-create-types-domain-member-role
CREATE TYPE domain_member_role AS ENUM ('OWNER','USER');
--changeset system:001-create-types-domain-record-type
CREATE TYPE domain_record_type AS ENUM ('A','AAAA','CNAME','TXT','MX','SRV','CAA');

View File

@ -0,0 +1,13 @@
--liquibase formatted sql
--changeset system:dns_record-001-create-table
CREATE TABLE dns_record (
id uuid PRIMARY KEY DEFAULT gen_random_uuid(),
domain_id uuid NOT NULL REFERENCES domain(id) ON DELETE CASCADE,
type domain_record_type NOT NULL,
name varchar(255) NOT NULL,
value varchar(1024) NOT NULL,
ttl integer NOT NULL CHECK (ttl > 0),
created_at timestamptz NOT NULL DEFAULT now(),
updated_at timestamptz NOT NULL DEFAULT now()
);

View File

@ -0,0 +1,4 @@
--liquibase formatted sql
--changeset system:dns_record-002-create-indexes
CREATE INDEX dns_record_domain_id_idx ON dns_record(domain_id);

View File

@ -0,0 +1,9 @@
--liquibase formatted sql
--changeset system:dns_record-003-create-trigger
--preconditions onFail:MARK_RAN
--precondition-sql-check expectedResult:0 SELECT COUNT(*) FROM information_schema.triggers WHERE trigger_name = 'dns_record_set_updated_at'
CREATE TRIGGER dns_record_set_updated_at
BEFORE UPDATE ON dns_record
FOR EACH ROW
EXECUTE FUNCTION set_updated_at();

View File

@ -0,0 +1,11 @@
--liquibase formatted sql
--changeset system:ns_delegation-001-create-table
CREATE TABLE ns_delegation (
id uuid PRIMARY KEY DEFAULT gen_random_uuid(),
domain_id uuid NOT NULL UNIQUE REFERENCES domain(id) ON DELETE CASCADE,
ns_servers jsonb NOT NULL,
applied_at timestamptz,
created_at timestamptz NOT NULL DEFAULT now(),
updated_at timestamptz NOT NULL DEFAULT now()
);

View File

@ -0,0 +1,9 @@
--liquibase formatted sql
--changeset system:ns_delegation-002-create-trigger
--preconditions onFail:MARK_RAN
--precondition-sql-check expectedResult:0 SELECT COUNT(*) FROM information_schema.triggers WHERE trigger_name = 'ns_delegation_set_updated_at'
CREATE TRIGGER ns_delegation_set_updated_at
BEFORE UPDATE ON ns_delegation
FOR EACH ROW
EXECUTE FUNCTION set_updated_at();

View File

@ -41,3 +41,13 @@ databaseChangeLog:
file: db/changelog/changes/reserved_name/002-create-trigger.sql
- include:
file: db/changelog/changes/forbidden_name/001-create-table.sql
- include:
file: db/changelog/changes/dns_record/001-create-table.sql
- include:
file: db/changelog/changes/dns_record/002-create-indexes.sql
- include:
file: db/changelog/changes/dns_record/003-create-trigger.sql
- include:
file: db/changelog/changes/ns_delegation/001-create-table.sql
- include:
file: db/changelog/changes/ns_delegation/002-create-trigger.sql