Files
k3s/apps/postgres/backups/postgres-backup-20260108_072927.sql

1831 lines
63 KiB
PL/PgSQL
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
--
-- PostgreSQL database cluster dump
--
\restrict 6QNvU9pfOnsn22QfObvb8CLZhicbdhX3aX8ICK8XX2QCchD06hxXt0XTAxzMHaV
SET default_transaction_read_only = off;
SET client_encoding = 'UTF8';
SET standard_conforming_strings = on;
--
-- Roles
--
CREATE ROLE myuser;
ALTER ROLE myuser WITH SUPERUSER INHERIT CREATEROLE CREATEDB LOGIN REPLICATION BYPASSRLS PASSWORD 'SCRAM-SHA-256$4096:lcasyFLTxsODZ2pTQzSfaQ==$Q9F2EsOXVyUo6hdnr4vPuErS4wNLYQ4aiszK/l4uar0=:ZOUai23wJ0E2uPl9ZVldTF4Kf6IduAMK+smPEs8LcjE=';
--
-- User Configurations
--
\unrestrict 6QNvU9pfOnsn22QfObvb8CLZhicbdhX3aX8ICK8XX2QCchD06hxXt0XTAxzMHaV
--
-- Databases
--
--
-- Database "template1" dump
--
\connect template1
--
-- PostgreSQL database dump
--
\restrict KmGvbtos7oLA27FJvDSnVdvllwTAcuMdbrAlRswZ6fmgiSmUFTu0XicHGewhlSZ
-- Dumped from database version 16.11 (Debian 16.11-1.pgdg13+1)
-- Dumped by pg_dump version 16.11 (Debian 16.11-1.pgdg13+1)
SET statement_timeout = 0;
SET lock_timeout = 0;
SET idle_in_transaction_session_timeout = 0;
SET client_encoding = 'UTF8';
SET standard_conforming_strings = on;
SELECT pg_catalog.set_config('search_path', '', false);
SET check_function_bodies = false;
SET xmloption = content;
SET client_min_messages = warning;
SET row_security = off;
--
-- PostgreSQL database dump complete
--
\unrestrict KmGvbtos7oLA27FJvDSnVdvllwTAcuMdbrAlRswZ6fmgiSmUFTu0XicHGewhlSZ
--
-- Database "mydb" dump
--
--
-- PostgreSQL database dump
--
\restrict xo09hRfggjHZJK102rxVJthpERSaJQdW9fk8zxVEReJba5wAFAUfaxU6Uw9nm3g
-- Dumped from database version 16.11 (Debian 16.11-1.pgdg13+1)
-- Dumped by pg_dump version 16.11 (Debian 16.11-1.pgdg13+1)
SET statement_timeout = 0;
SET lock_timeout = 0;
SET idle_in_transaction_session_timeout = 0;
SET client_encoding = 'UTF8';
SET standard_conforming_strings = on;
SELECT pg_catalog.set_config('search_path', '', false);
SET check_function_bodies = false;
SET xmloption = content;
SET client_min_messages = warning;
SET row_security = off;
--
-- Name: mydb; Type: DATABASE; Schema: -; Owner: myuser
--
CREATE DATABASE mydb WITH TEMPLATE = template0 ENCODING = 'UTF8' LOCALE_PROVIDER = libc LOCALE = 'en_US.utf8';
ALTER DATABASE mydb OWNER TO myuser;
\unrestrict xo09hRfggjHZJK102rxVJthpERSaJQdW9fk8zxVEReJba5wAFAUfaxU6Uw9nm3g
\connect mydb
\restrict xo09hRfggjHZJK102rxVJthpERSaJQdW9fk8zxVEReJba5wAFAUfaxU6Uw9nm3g
SET statement_timeout = 0;
SET lock_timeout = 0;
SET idle_in_transaction_session_timeout = 0;
SET client_encoding = 'UTF8';
SET standard_conforming_strings = on;
SELECT pg_catalog.set_config('search_path', '', false);
SET check_function_bodies = false;
SET xmloption = content;
SET client_min_messages = warning;
SET row_security = off;
--
-- Name: uuid-ossp; Type: EXTENSION; Schema: -; Owner: -
--
CREATE EXTENSION IF NOT EXISTS "uuid-ossp" WITH SCHEMA public;
--
-- Name: EXTENSION "uuid-ossp"; Type: COMMENT; Schema: -; Owner:
--
COMMENT ON EXTENSION "uuid-ossp" IS 'generate universally unique identifiers (UUIDs)';
--
-- Name: address; Type: TYPE; Schema: public; Owner: myuser
--
CREATE TYPE public.address AS (
street text,
city text,
zip text
);
ALTER TYPE public.address OWNER TO myuser;
--
-- Name: TYPE address; Type: COMMENT; Schema: public; Owner: myuser
--
COMMENT ON TYPE public.address IS '地址複合型別,用於封裝街道/城市/郵遞區號';
--
-- Name: COLUMN address.street; Type: COMMENT; Schema: public; Owner: myuser
--
COMMENT ON COLUMN public.address.street IS '街道地址';
--
-- Name: COLUMN address.city; Type: COMMENT; Schema: public; Owner: myuser
--
COMMENT ON COLUMN public.address.city IS '城市';
--
-- Name: COLUMN address.zip; Type: COMMENT; Schema: public; Owner: myuser
--
COMMENT ON COLUMN public.address.zip IS '郵遞區號';
--
-- Name: trg_orders_after_delete_restore_stock(); Type: FUNCTION; Schema: public; Owner: myuser
--
CREATE FUNCTION public.trg_orders_after_delete_restore_stock() RETURNS trigger
LANGUAGE plpgsql
AS $$
BEGIN
UPDATE public.products
SET stock = stock + OLD.quantity,
updated_at = NOW()
WHERE id = OLD.product_id;
RETURN NULL;
END;
$$;
ALTER FUNCTION public.trg_orders_after_delete_restore_stock() OWNER TO myuser;
--
-- Name: trg_orders_before_insert_decrement_stock(); Type: FUNCTION; Schema: public; Owner: myuser
--
CREATE FUNCTION public.trg_orders_before_insert_decrement_stock() RETURNS trigger
LANGUAGE plpgsql
AS $$
DECLARE
current_stock int;
BEGIN
SELECT stock INTO current_stock
FROM public.products
WHERE id = NEW.product_id
FOR UPDATE;
IF NOT FOUND THEN
RAISE EXCEPTION 'product % not found', NEW.product_id;
END IF;
IF current_stock < NEW.quantity THEN
RAISE EXCEPTION 'insufficient stock: have %, need %',
current_stock, NEW.quantity;
END IF;
UPDATE public.products
SET stock = stock - NEW.quantity,
updated_at = NOW()
WHERE id = NEW.product_id;
RETURN NEW;
END;
$$;
ALTER FUNCTION public.trg_orders_before_insert_decrement_stock() OWNER TO myuser;
--
-- Name: trg_orders_before_update_adjust_stock(); Type: FUNCTION; Schema: public; Owner: myuser
--
CREATE FUNCTION public.trg_orders_before_update_adjust_stock() RETURNS trigger
LANGUAGE plpgsql
AS $$
DECLARE
old_prod_stock int;
new_prod_stock int;
BEGIN
-- 沒變更商品也沒變更數量就略過
IF NEW.product_id = OLD.product_id AND NEW.quantity = OLD.quantity THEN
RETURN NEW;
END IF;
-- 先把舊商品庫存加回去
IF OLD.product_id IS NOT NULL THEN
SELECT stock INTO old_prod_stock
FROM public.products
WHERE id = OLD.product_id
FOR UPDATE;
IF NOT FOUND THEN
RAISE EXCEPTION 'old product % not found', OLD.product_id;
END IF;
UPDATE public.products
SET stock = stock + OLD.quantity,
updated_at = NOW()
WHERE id = OLD.product_id;
END IF;
-- 再扣新商品庫存
SELECT stock INTO new_prod_stock
FROM public.products
WHERE id = NEW.product_id
FOR UPDATE;
IF NOT FOUND THEN
RAISE EXCEPTION 'new product % not found', NEW.product_id;
END IF;
IF new_prod_stock < NEW.quantity THEN
RAISE EXCEPTION 'insufficient stock after update: have %, need %',
new_prod_stock, NEW.quantity;
END IF;
UPDATE public.products
SET stock = stock - NEW.quantity,
updated_at = NOW()
WHERE id = NEW.product_id;
RETURN NEW;
END;
$$;
ALTER FUNCTION public.trg_orders_before_update_adjust_stock() OWNER TO myuser;
SET default_tablespace = '';
SET default_table_access_method = heap;
--
-- Name: company; Type: TABLE; Schema: public; Owner: myuser
--
CREATE TABLE public.company (
id integer NOT NULL,
name text NOT NULL,
location public.address
);
ALTER TABLE public.company OWNER TO myuser;
--
-- Name: TABLE company; Type: COMMENT; Schema: public; Owner: myuser
--
COMMENT ON TABLE public.company IS '公司資料表(主檔)';
--
-- Name: COLUMN company.id; Type: COMMENT; Schema: public; Owner: myuser
--
COMMENT ON COLUMN public.company.id IS '公司唯一識別碼(自動遞增)';
--
-- Name: COLUMN company.name; Type: COMMENT; Schema: public; Owner: myuser
--
COMMENT ON COLUMN public.company.name IS '公司名稱';
--
-- Name: COLUMN company.location; Type: COMMENT; Schema: public; Owner: myuser
--
COMMENT ON COLUMN public.company.location IS '公司地址address 複合型別)';
--
-- Name: company_id_seq; Type: SEQUENCE; Schema: public; Owner: myuser
--
CREATE SEQUENCE public.company_id_seq
AS integer
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER SEQUENCE public.company_id_seq OWNER TO myuser;
--
-- Name: company_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: myuser
--
ALTER SEQUENCE public.company_id_seq OWNED BY public.company.id;
--
-- Name: devices; Type: TABLE; Schema: public; Owner: myuser
--
CREATE TABLE public.devices (
id integer NOT NULL,
ip_address inet,
mac_address macaddr
);
ALTER TABLE public.devices OWNER TO myuser;
--
-- Name: devices_id_seq; Type: SEQUENCE; Schema: public; Owner: myuser
--
CREATE SEQUENCE public.devices_id_seq
AS integer
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER SEQUENCE public.devices_id_seq OWNER TO myuser;
--
-- Name: devices_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: myuser
--
ALTER SEQUENCE public.devices_id_seq OWNED BY public.devices.id;
--
-- Name: person; Type: TABLE; Schema: public; Owner: myuser
--
CREATE TABLE public.person (
id integer NOT NULL,
name text NOT NULL,
birthdate date
);
ALTER TABLE public.person OWNER TO myuser;
--
-- Name: TABLE person; Type: COMMENT; Schema: public; Owner: myuser
--
COMMENT ON TABLE public.person IS '人員基本資料表,存放所有人的共通欄位';
--
-- Name: COLUMN person.id; Type: COMMENT; Schema: public; Owner: myuser
--
COMMENT ON COLUMN public.person.id IS '人員唯一識別碼(自動遞增)';
--
-- Name: COLUMN person.name; Type: COMMENT; Schema: public; Owner: myuser
--
COMMENT ON COLUMN public.person.name IS '姓名';
--
-- Name: COLUMN person.birthdate; Type: COMMENT; Schema: public; Owner: myuser
--
COMMENT ON COLUMN public.person.birthdate IS '生日(未知可為 NULL';
--
-- Name: employee; Type: TABLE; Schema: public; Owner: myuser
--
CREATE TABLE public.employee (
employee_id integer NOT NULL,
department text
)
INHERITS (public.person);
ALTER TABLE public.employee OWNER TO myuser;
--
-- Name: TABLE employee; Type: COMMENT; Schema: public; Owner: myuser
--
COMMENT ON TABLE public.employee IS '員工資料表,繼承 person包含 person.id/name/birthdate另存員工專屬欄位';
--
-- Name: COLUMN employee.employee_id; Type: COMMENT; Schema: public; Owner: myuser
--
COMMENT ON COLUMN public.employee.employee_id IS '員工編號(自動遞增;注意主鍵仍為 person.id';
--
-- Name: COLUMN employee.department; Type: COMMENT; Schema: public; Owner: myuser
--
COMMENT ON COLUMN public.employee.department IS '部門名稱';
--
-- Name: employee_employee_id_seq; Type: SEQUENCE; Schema: public; Owner: myuser
--
CREATE SEQUENCE public.employee_employee_id_seq
AS integer
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER SEQUENCE public.employee_employee_id_seq OWNER TO myuser;
--
-- Name: employee_employee_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: myuser
--
ALTER SEQUENCE public.employee_employee_id_seq OWNED BY public.employee.employee_id;
--
-- Name: events; Type: TABLE; Schema: public; Owner: myuser
--
CREATE TABLE public.events (
id integer NOT NULL,
name text,
start_time timestamp without time zone,
start_time_tz timestamp with time zone
);
ALTER TABLE public.events OWNER TO myuser;
--
-- Name: events_id_seq; Type: SEQUENCE; Schema: public; Owner: myuser
--
CREATE SEQUENCE public.events_id_seq
AS integer
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER SEQUENCE public.events_id_seq OWNER TO myuser;
--
-- Name: events_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: myuser
--
ALTER SEQUENCE public.events_id_seq OWNED BY public.events.id;
--
-- Name: members; Type: TABLE; Schema: public; Owner: myuser
--
CREATE TABLE public.members (
id integer NOT NULL,
username character varying(50) NOT NULL,
email text,
created_at timestamp without time zone DEFAULT CURRENT_TIMESTAMP,
CONSTRAINT members_email_check CHECK ((email ~~ '%@%'::text))
);
ALTER TABLE public.members OWNER TO myuser;
--
-- Name: members_id_seq; Type: SEQUENCE; Schema: public; Owner: myuser
--
CREATE SEQUENCE public.members_id_seq
AS integer
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER SEQUENCE public.members_id_seq OWNER TO myuser;
--
-- Name: members_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: myuser
--
ALTER SEQUENCE public.members_id_seq OWNED BY public.members.id;
--
-- Name: orders; Type: TABLE; Schema: public; Owner: myuser
--
CREATE TABLE public.orders (
id integer NOT NULL,
user_id integer NOT NULL,
product_id integer NOT NULL,
quantity integer DEFAULT 1 NOT NULL,
created_at timestamp with time zone DEFAULT now()
);
ALTER TABLE public.orders OWNER TO myuser;
--
-- Name: TABLE orders; Type: COMMENT; Schema: public; Owner: myuser
--
COMMENT ON TABLE public.orders IS '訂單資料表,紀錄使用者購買的商品';
--
-- Name: COLUMN orders.id; Type: COMMENT; Schema: public; Owner: myuser
--
COMMENT ON COLUMN public.orders.id IS '訂單編號 (自動遞增)';
--
-- Name: COLUMN orders.user_id; Type: COMMENT; Schema: public; Owner: myuser
--
COMMENT ON COLUMN public.orders.user_id IS '下單使用者,對應 users.id';
--
-- Name: COLUMN orders.product_id; Type: COMMENT; Schema: public; Owner: myuser
--
COMMENT ON COLUMN public.orders.product_id IS '購買的商品,對應 products.id';
--
-- Name: COLUMN orders.quantity; Type: COMMENT; Schema: public; Owner: myuser
--
COMMENT ON COLUMN public.orders.quantity IS '購買數量';
--
-- Name: COLUMN orders.created_at; Type: COMMENT; Schema: public; Owner: myuser
--
COMMENT ON COLUMN public.orders.created_at IS '下單時間';
--
-- Name: orders_id_seq; Type: SEQUENCE; Schema: public; Owner: myuser
--
CREATE SEQUENCE public.orders_id_seq
AS integer
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER SEQUENCE public.orders_id_seq OWNER TO myuser;
--
-- Name: orders_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: myuser
--
ALTER SEQUENCE public.orders_id_seq OWNED BY public.orders.id;
--
-- Name: person_id_seq; Type: SEQUENCE; Schema: public; Owner: myuser
--
CREATE SEQUENCE public.person_id_seq
AS integer
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER SEQUENCE public.person_id_seq OWNER TO myuser;
--
-- Name: person_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: myuser
--
ALTER SEQUENCE public.person_id_seq OWNED BY public.person.id;
--
-- Name: products; Type: TABLE; Schema: public; Owner: myuser
--
CREATE TABLE public.products (
id integer NOT NULL,
name character varying(100) NOT NULL,
description text,
price numeric(10,2) NOT NULL,
stock integer DEFAULT 0,
created_at timestamp without time zone DEFAULT now(),
updated_at timestamp with time zone DEFAULT now()
);
ALTER TABLE public.products OWNER TO myuser;
--
-- Name: TABLE products; Type: COMMENT; Schema: public; Owner: myuser
--
COMMENT ON TABLE public.products IS '商品資料表,存放產品基本資訊';
--
-- Name: COLUMN products.id; Type: COMMENT; Schema: public; Owner: myuser
--
COMMENT ON COLUMN public.products.id IS '商品編號 (自動遞增)';
--
-- Name: COLUMN products.name; Type: COMMENT; Schema: public; Owner: myuser
--
COMMENT ON COLUMN public.products.name IS '商品名稱';
--
-- Name: COLUMN products.description; Type: COMMENT; Schema: public; Owner: myuser
--
COMMENT ON COLUMN public.products.description IS '商品描述';
--
-- Name: COLUMN products.price; Type: COMMENT; Schema: public; Owner: myuser
--
COMMENT ON COLUMN public.products.price IS '商品價格,最多兩位小數';
--
-- Name: COLUMN products.stock; Type: COMMENT; Schema: public; Owner: myuser
--
COMMENT ON COLUMN public.products.stock IS '庫存數量';
--
-- Name: COLUMN products.created_at; Type: COMMENT; Schema: public; Owner: myuser
--
COMMENT ON COLUMN public.products.created_at IS '建立時間';
--
-- Name: products_id_seq; Type: SEQUENCE; Schema: public; Owner: myuser
--
CREATE SEQUENCE public.products_id_seq
AS integer
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER SEQUENCE public.products_id_seq OWNER TO myuser;
--
-- Name: products_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: myuser
--
ALTER SEQUENCE public.products_id_seq OWNED BY public.products.id;
--
-- Name: users; Type: TABLE; Schema: public; Owner: myuser
--
CREATE TABLE public.users (
id integer NOT NULL,
username character varying(50) NOT NULL,
email character varying(100) NOT NULL,
password character varying(200) NOT NULL,
created_at timestamp without time zone DEFAULT now(),
updated_at timestamp without time zone DEFAULT now()
);
ALTER TABLE public.users OWNER TO myuser;
--
-- Name: TABLE users; Type: COMMENT; Schema: public; Owner: myuser
--
COMMENT ON TABLE public.users IS '使用者資料表,儲存帳號與登入資訊';
--
-- Name: COLUMN users.id; Type: COMMENT; Schema: public; Owner: myuser
--
COMMENT ON COLUMN public.users.id IS '使用者編號 (自動遞增)';
--
-- Name: COLUMN users.username; Type: COMMENT; Schema: public; Owner: myuser
--
COMMENT ON COLUMN public.users.username IS '帳號名稱';
--
-- Name: COLUMN users.email; Type: COMMENT; Schema: public; Owner: myuser
--
COMMENT ON COLUMN public.users.email IS '使用者 Email必須唯一';
--
-- Name: COLUMN users.password; Type: COMMENT; Schema: public; Owner: myuser
--
COMMENT ON COLUMN public.users.password IS '密碼 (通常存雜湊值)';
--
-- Name: COLUMN users.created_at; Type: COMMENT; Schema: public; Owner: myuser
--
COMMENT ON COLUMN public.users.created_at IS '建立時間';
--
-- Name: COLUMN users.updated_at; Type: COMMENT; Schema: public; Owner: myuser
--
COMMENT ON COLUMN public.users.updated_at IS '更新時間';
--
-- Name: users_id_seq; Type: SEQUENCE; Schema: public; Owner: myuser
--
CREATE SEQUENCE public.users_id_seq
AS integer
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER SEQUENCE public.users_id_seq OWNER TO myuser;
--
-- Name: users_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: myuser
--
ALTER SEQUENCE public.users_id_seq OWNED BY public.users.id;
--
-- Name: company id; Type: DEFAULT; Schema: public; Owner: myuser
--
ALTER TABLE ONLY public.company ALTER COLUMN id SET DEFAULT nextval('public.company_id_seq'::regclass);
--
-- Name: devices id; Type: DEFAULT; Schema: public; Owner: myuser
--
ALTER TABLE ONLY public.devices ALTER COLUMN id SET DEFAULT nextval('public.devices_id_seq'::regclass);
--
-- Name: employee id; Type: DEFAULT; Schema: public; Owner: myuser
--
ALTER TABLE ONLY public.employee ALTER COLUMN id SET DEFAULT nextval('public.person_id_seq'::regclass);
--
-- Name: employee employee_id; Type: DEFAULT; Schema: public; Owner: myuser
--
ALTER TABLE ONLY public.employee ALTER COLUMN employee_id SET DEFAULT nextval('public.employee_employee_id_seq'::regclass);
--
-- Name: events id; Type: DEFAULT; Schema: public; Owner: myuser
--
ALTER TABLE ONLY public.events ALTER COLUMN id SET DEFAULT nextval('public.events_id_seq'::regclass);
--
-- Name: members id; Type: DEFAULT; Schema: public; Owner: myuser
--
ALTER TABLE ONLY public.members ALTER COLUMN id SET DEFAULT nextval('public.members_id_seq'::regclass);
--
-- Name: orders id; Type: DEFAULT; Schema: public; Owner: myuser
--
ALTER TABLE ONLY public.orders ALTER COLUMN id SET DEFAULT nextval('public.orders_id_seq'::regclass);
--
-- Name: person id; Type: DEFAULT; Schema: public; Owner: myuser
--
ALTER TABLE ONLY public.person ALTER COLUMN id SET DEFAULT nextval('public.person_id_seq'::regclass);
--
-- Name: products id; Type: DEFAULT; Schema: public; Owner: myuser
--
ALTER TABLE ONLY public.products ALTER COLUMN id SET DEFAULT nextval('public.products_id_seq'::regclass);
--
-- Name: users id; Type: DEFAULT; Schema: public; Owner: myuser
--
ALTER TABLE ONLY public.users ALTER COLUMN id SET DEFAULT nextval('public.users_id_seq'::regclass);
--
-- Data for Name: company; Type: TABLE DATA; Schema: public; Owner: myuser
--
COPY public.company (id, name, location) FROM stdin;
1 Example Corp ("Main Street 1",Metropolis,12345)
2 Acme Solutions ("Industrial Rd 88",Gotham,54321)
3 Blue Ocean Tech ("Harbor Ave 12",Atlantis,67890)
4 Green Leaf Ltd ("Garden St 25",Springfield,11223)
5 NextGen Systems ("Innovation Way 9",Silicon,94043)
6 Skyline Holdings ("Tower Blvd 101","New City",10001)
7 IronForge Corp ("Foundry Ln 7",Steelton,33445)
8 Sunrise Trading ("Market St 66",Rivertown,55667)
9 Aurora Networks ("Northern Rd 3",Polar,77889)
10 Quantum Labs ("Research Pkwy 42",Nova,99000)
\.
--
-- Data for Name: devices; Type: TABLE DATA; Schema: public; Owner: myuser
--
COPY public.devices (id, ip_address, mac_address) FROM stdin;
1 192.168.1.100 08:00:2b:01:02:03
\.
--
-- Data for Name: employee; Type: TABLE DATA; Schema: public; Owner: myuser
--
COPY public.employee (id, name, birthdate, employee_id, department) FROM stdin;
\.
--
-- Data for Name: events; Type: TABLE DATA; Schema: public; Owner: myuser
--
COPY public.events (id, name, start_time, start_time_tz) FROM stdin;
1 Meeting 2025-08-22 14:00:00 2025-08-22 06:00:00+00
2 Conference 2025-08-22 09:00:00 2025-08-22 09:00:00+00
\.
--
-- Data for Name: members; Type: TABLE DATA; Schema: public; Owner: myuser
--
COPY public.members (id, username, email, created_at) FROM stdin;
1 timmy timmy@example.com 2025-08-22 15:05:39.776007
2 alice alice@newmail.com 2025-08-22 15:05:39.776007
7 charlie charlie@example.com 2025-08-22 15:08:36.916081
\.
--
-- Data for Name: orders; Type: TABLE DATA; Schema: public; Owner: myuser
--
COPY public.orders (id, user_id, product_id, quantity, created_at) FROM stdin;
2 1 4 2 2025-08-22 05:40:34.59583+00
3 2 2 1 2025-08-22 05:40:34.59583+00
4 3 3 1 2025-08-22 05:40:34.59583+00
5 3 5 1 2025-08-22 05:40:34.59583+00
7 1 4 2 2025-08-22 06:00:14.71732+00
8 1 4 2 2025-08-22 06:19:30.955247+00
\.
--
-- Data for Name: person; Type: TABLE DATA; Schema: public; Owner: myuser
--
COPY public.person (id, name, birthdate) FROM stdin;
\.
--
-- Data for Name: products; Type: TABLE DATA; Schema: public; Owner: myuser
--
COPY public.products (id, name, description, price, stock, created_at, updated_at) FROM stdin;
2 Galaxy S24 Samsung 35900.00 30 2025-08-22 13:32:06.952067 2025-08-22 06:00:03.411145+00
3 MacBook Pro 14" 蘋果筆電 M3 晶片 69900.00 20 2025-08-22 13:32:06.952067 2025-08-22 06:00:03.411145+00
1 iPhone 15 Apple 最新款智慧型手機 38900.00 51 2025-08-22 13:32:06.952067 2025-08-22 06:09:18.833917+00
4 AirPods Pro 2 降噪藍牙耳機 7990.00 96 2025-08-22 13:32:06.952067 2025-08-22 06:20:25.194067+00
5 Nintendo Switch 2 新一代任天堂遊戲機 12990.00 40 2025-08-22 13:32:06.952067 2025-08-22 06:20:37.793073+00
\.
--
-- Data for Name: users; Type: TABLE DATA; Schema: public; Owner: myuser
--
COPY public.users (id, username, email, password, created_at, updated_at) FROM stdin;
1 alice alice@example.com hashed_pwd_123 2025-08-22 13:31:53.543448 2025-08-22 13:31:53.543448
2 bob bob@example.com hashed_pwd_456 2025-08-22 13:31:53.543448 2025-08-22 13:31:53.543448
3 charlie charlie@example.com hashed_pwd_789 2025-08-22 13:31:53.543448 2025-08-22 13:31:53.543448
\.
--
-- Name: company_id_seq; Type: SEQUENCE SET; Schema: public; Owner: myuser
--
SELECT pg_catalog.setval('public.company_id_seq', 10, true);
--
-- Name: devices_id_seq; Type: SEQUENCE SET; Schema: public; Owner: myuser
--
SELECT pg_catalog.setval('public.devices_id_seq', 1, true);
--
-- Name: employee_employee_id_seq; Type: SEQUENCE SET; Schema: public; Owner: myuser
--
SELECT pg_catalog.setval('public.employee_employee_id_seq', 1, false);
--
-- Name: events_id_seq; Type: SEQUENCE SET; Schema: public; Owner: myuser
--
SELECT pg_catalog.setval('public.events_id_seq', 2, true);
--
-- Name: members_id_seq; Type: SEQUENCE SET; Schema: public; Owner: myuser
--
SELECT pg_catalog.setval('public.members_id_seq', 9, true);
--
-- Name: orders_id_seq; Type: SEQUENCE SET; Schema: public; Owner: myuser
--
SELECT pg_catalog.setval('public.orders_id_seq', 8, true);
--
-- Name: person_id_seq; Type: SEQUENCE SET; Schema: public; Owner: myuser
--
SELECT pg_catalog.setval('public.person_id_seq', 1, false);
--
-- Name: products_id_seq; Type: SEQUENCE SET; Schema: public; Owner: myuser
--
SELECT pg_catalog.setval('public.products_id_seq', 5, true);
--
-- Name: users_id_seq; Type: SEQUENCE SET; Schema: public; Owner: myuser
--
SELECT pg_catalog.setval('public.users_id_seq', 3, true);
--
-- Name: company company_pkey; Type: CONSTRAINT; Schema: public; Owner: myuser
--
ALTER TABLE ONLY public.company
ADD CONSTRAINT company_pkey PRIMARY KEY (id);
--
-- Name: devices devices_pkey; Type: CONSTRAINT; Schema: public; Owner: myuser
--
ALTER TABLE ONLY public.devices
ADD CONSTRAINT devices_pkey PRIMARY KEY (id);
--
-- Name: events events_pkey; Type: CONSTRAINT; Schema: public; Owner: myuser
--
ALTER TABLE ONLY public.events
ADD CONSTRAINT events_pkey PRIMARY KEY (id);
--
-- Name: members members_pkey; Type: CONSTRAINT; Schema: public; Owner: myuser
--
ALTER TABLE ONLY public.members
ADD CONSTRAINT members_pkey PRIMARY KEY (id);
--
-- Name: members members_username_key; Type: CONSTRAINT; Schema: public; Owner: myuser
--
ALTER TABLE ONLY public.members
ADD CONSTRAINT members_username_key UNIQUE (username);
--
-- Name: orders orders_pkey; Type: CONSTRAINT; Schema: public; Owner: myuser
--
ALTER TABLE ONLY public.orders
ADD CONSTRAINT orders_pkey PRIMARY KEY (id);
--
-- Name: person person_pkey; Type: CONSTRAINT; Schema: public; Owner: myuser
--
ALTER TABLE ONLY public.person
ADD CONSTRAINT person_pkey PRIMARY KEY (id);
--
-- Name: products products_pkey; Type: CONSTRAINT; Schema: public; Owner: myuser
--
ALTER TABLE ONLY public.products
ADD CONSTRAINT products_pkey PRIMARY KEY (id);
--
-- Name: users users_email_key; Type: CONSTRAINT; Schema: public; Owner: myuser
--
ALTER TABLE ONLY public.users
ADD CONSTRAINT users_email_key UNIQUE (email);
--
-- Name: users users_pkey; Type: CONSTRAINT; Schema: public; Owner: myuser
--
ALTER TABLE ONLY public.users
ADD CONSTRAINT users_pkey PRIMARY KEY (id);
--
-- Name: idx_members_username; Type: INDEX; Schema: public; Owner: myuser
--
CREATE INDEX idx_members_username ON public.members USING btree (username);
--
-- Name: orders orders_after_delete_restore_stock; Type: TRIGGER; Schema: public; Owner: myuser
--
CREATE TRIGGER orders_after_delete_restore_stock AFTER DELETE ON public.orders FOR EACH ROW EXECUTE FUNCTION public.trg_orders_after_delete_restore_stock();
--
-- Name: orders orders_before_insert_decrement_stock; Type: TRIGGER; Schema: public; Owner: myuser
--
CREATE TRIGGER orders_before_insert_decrement_stock BEFORE INSERT ON public.orders FOR EACH ROW EXECUTE FUNCTION public.trg_orders_before_insert_decrement_stock();
--
-- Name: orders orders_before_update_adjust_stock; Type: TRIGGER; Schema: public; Owner: myuser
--
CREATE TRIGGER orders_before_update_adjust_stock BEFORE UPDATE ON public.orders FOR EACH ROW EXECUTE FUNCTION public.trg_orders_before_update_adjust_stock();
--
-- Name: orders orders_product_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: myuser
--
ALTER TABLE ONLY public.orders
ADD CONSTRAINT orders_product_id_fkey FOREIGN KEY (product_id) REFERENCES public.products(id);
--
-- Name: orders orders_user_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: myuser
--
ALTER TABLE ONLY public.orders
ADD CONSTRAINT orders_user_id_fkey FOREIGN KEY (user_id) REFERENCES public.users(id);
--
-- PostgreSQL database dump complete
--
\unrestrict xo09hRfggjHZJK102rxVJthpERSaJQdW9fk8zxVEReJba5wAFAUfaxU6Uw9nm3g
--
-- Database "netmeta" dump
--
--
-- PostgreSQL database dump
--
\restrict Q4WpGms7fzf4wjhFCm4WDvwuXmx9BJApLRK21PfyCiZwM8lcxit6KlqiKHhVF9S
-- Dumped from database version 16.11 (Debian 16.11-1.pgdg13+1)
-- Dumped by pg_dump version 16.11 (Debian 16.11-1.pgdg13+1)
SET statement_timeout = 0;
SET lock_timeout = 0;
SET idle_in_transaction_session_timeout = 0;
SET client_encoding = 'UTF8';
SET standard_conforming_strings = on;
SELECT pg_catalog.set_config('search_path', '', false);
SET check_function_bodies = false;
SET xmloption = content;
SET client_min_messages = warning;
SET row_security = off;
--
-- Name: netmeta; Type: DATABASE; Schema: -; Owner: myuser
--
CREATE DATABASE netmeta WITH TEMPLATE = template0 ENCODING = 'UTF8' LOCALE_PROVIDER = libc LOCALE = 'en_US.utf8';
ALTER DATABASE netmeta OWNER TO myuser;
\unrestrict Q4WpGms7fzf4wjhFCm4WDvwuXmx9BJApLRK21PfyCiZwM8lcxit6KlqiKHhVF9S
\connect netmeta
\restrict Q4WpGms7fzf4wjhFCm4WDvwuXmx9BJApLRK21PfyCiZwM8lcxit6KlqiKHhVF9S
SET statement_timeout = 0;
SET lock_timeout = 0;
SET idle_in_transaction_session_timeout = 0;
SET client_encoding = 'UTF8';
SET standard_conforming_strings = on;
SELECT pg_catalog.set_config('search_path', '', false);
SET check_function_bodies = false;
SET xmloption = content;
SET client_min_messages = warning;
SET row_security = off;
--
-- Name: netmeta; Type: DATABASE PROPERTIES; Schema: -; Owner: myuser
--
ALTER DATABASE netmeta SET "TimeZone" TO 'Asia/Taipei';
\unrestrict Q4WpGms7fzf4wjhFCm4WDvwuXmx9BJApLRK21PfyCiZwM8lcxit6KlqiKHhVF9S
\connect netmeta
\restrict Q4WpGms7fzf4wjhFCm4WDvwuXmx9BJApLRK21PfyCiZwM8lcxit6KlqiKHhVF9S
SET statement_timeout = 0;
SET lock_timeout = 0;
SET idle_in_transaction_session_timeout = 0;
SET client_encoding = 'UTF8';
SET standard_conforming_strings = on;
SELECT pg_catalog.set_config('search_path', '', false);
SET check_function_bodies = false;
SET xmloption = content;
SET client_min_messages = warning;
SET row_security = off;
--
-- Name: pg_trgm; Type: EXTENSION; Schema: -; Owner: -
--
CREATE EXTENSION IF NOT EXISTS pg_trgm WITH SCHEMA public;
--
-- Name: EXTENSION pg_trgm; Type: COMMENT; Schema: -; Owner:
--
COMMENT ON EXTENSION pg_trgm IS 'text similarity measurement and index searching based on trigrams';
--
-- Name: node_role; Type: TYPE; Schema: public; Owner: myuser
--
CREATE TYPE public.node_role AS ENUM (
'access',
'bras',
'backbone',
'international_gateway',
'peering',
'pni',
'enterprise_link',
'pop',
'edge',
'cloud_backbone',
'service'
);
ALTER TYPE public.node_role OWNER TO myuser;
--
-- Name: TYPE node_role; Type: COMMENT; Schema: public; Owner: myuser
--
COMMENT ON TYPE public.node_role IS '網路節點角色列舉,限制角色集合以確保資料一致性。';
--
-- Name: set_updated_at(); Type: FUNCTION; Schema: public; Owner: myuser
--
CREATE FUNCTION public.set_updated_at() RETURNS trigger
LANGUAGE plpgsql
AS $$
BEGIN
NEW.updated_at = now();
RETURN NEW;
END;
$$;
ALTER FUNCTION public.set_updated_at() OWNER TO myuser;
--
-- Name: FUNCTION set_updated_at(); Type: COMMENT; Schema: public; Owner: myuser
--
COMMENT ON FUNCTION public.set_updated_at() IS '更新 network_node 時自動刷新 updated_at。';
SET default_tablespace = '';
SET default_table_access_method = heap;
--
-- Name: ip_address; Type: TABLE; Schema: public; Owner: myuser
--
CREATE TABLE public.ip_address (
ip inet NOT NULL,
node_id bigint NOT NULL,
created_at timestamp with time zone DEFAULT now() NOT NULL
);
ALTER TABLE public.ip_address OWNER TO myuser;
--
-- Name: TABLE ip_address; Type: COMMENT; Schema: public; Owner: myuser
--
COMMENT ON TABLE public.ip_address IS 'IP 對應表:使用 INET 型別IPv4/IPv6支援子網查詢一個 IP 對應一個節點角色。';
--
-- Name: COLUMN ip_address.ip; Type: COMMENT; Schema: public; Owner: myuser
--
COMMENT ON COLUMN public.ip_address.ip IS 'IP 位址INET可直接進行子網/包含查詢。';
--
-- Name: COLUMN ip_address.node_id; Type: COMMENT; Schema: public; Owner: myuser
--
COMMENT ON COLUMN public.ip_address.node_id IS '外鍵,指向 network_node.id。';
--
-- Name: network_node; Type: TABLE; Schema: public; Owner: myuser
--
CREATE TABLE public.network_node (
id bigint NOT NULL,
org text NOT NULL,
role public.node_role NOT NULL,
description text NOT NULL,
metadata jsonb DEFAULT '{}'::jsonb NOT NULL,
fts tsvector GENERATED ALWAYS AS (to_tsvector('simple'::regconfig, description)) STORED,
created_at timestamp with time zone DEFAULT now() NOT NULL,
updated_at timestamp with time zone DEFAULT now() NOT NULL
);
ALTER TABLE public.network_node OWNER TO myuser;
--
-- Name: TABLE network_node; Type: COMMENT; Schema: public; Owner: myuser
--
COMMENT ON TABLE public.network_node IS '網路節點角色主表:一筆代表一個可重用的節點角色(不直接存 IP支援全文檢索與 JSONB 擴充屬性。';
--
-- Name: COLUMN network_node.org; Type: COMMENT; Schema: public; Owner: myuser
--
COMMENT ON COLUMN public.network_node.org IS '組織/單位,例如 中華電信HiNet、Microsoft、Apple、Cloudflare。';
--
-- Name: COLUMN network_node.role; Type: COMMENT; Schema: public; Owner: myuser
--
COMMENT ON COLUMN public.network_node.role IS '節點角色ENUM例如 backbone、pni、edge、service。';
--
-- Name: COLUMN network_node.description; Type: COMMENT; Schema: public; Owner: myuser
--
COMMENT ON COLUMN public.network_node.description IS '角色與說明的完整文字描述,保留人工可讀性。';
--
-- Name: COLUMN network_node.metadata; Type: COMMENT; Schema: public; Owner: myuser
--
COMMENT ON COLUMN public.network_node.metadata IS '半結構化補充資料JSONB例如 ASN、region、provider、confidence。';
--
-- Name: COLUMN network_node.fts; Type: COMMENT; Schema: public; Owner: myuser
--
COMMENT ON COLUMN public.network_node.fts IS '全文檢索向量(由 description 產生)。';
--
-- Name: network_node_id_seq; Type: SEQUENCE; Schema: public; Owner: myuser
--
CREATE SEQUENCE public.network_node_id_seq
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER SEQUENCE public.network_node_id_seq OWNER TO myuser;
--
-- Name: network_node_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: myuser
--
ALTER SEQUENCE public.network_node_id_seq OWNED BY public.network_node.id;
--
-- Name: v_ip_node; Type: VIEW; Schema: public; Owner: myuser
--
CREATE VIEW public.v_ip_node AS
SELECT a.ip AS stored_ip,
n.org,
n.role,
n.description,
n.metadata
FROM (public.ip_address a
JOIN public.network_node n ON ((n.id = a.node_id)));
ALTER VIEW public.v_ip_node OWNER TO myuser;
--
-- Name: network_node id; Type: DEFAULT; Schema: public; Owner: myuser
--
ALTER TABLE ONLY public.network_node ALTER COLUMN id SET DEFAULT nextval('public.network_node_id_seq'::regclass);
--
-- Data for Name: ip_address; Type: TABLE DATA; Schema: public; Owner: myuser
--
COPY public.ip_address (ip, node_id, created_at) FROM stdin;
211.23.141.254 1 2025-12-31 16:10:56.195078+08
168.95.98.254 2 2025-12-31 16:10:56.195078+08
168.95.228.58 3 2025-12-31 16:10:56.199972+08
168.95.170.102 4 2025-12-31 16:10:56.199972+08
168.95.170.118 4 2025-12-31 16:10:56.199972+08
168.95.82.206 4 2025-12-31 16:10:56.199972+08
168.95.171.122 5 2025-12-31 16:10:56.199972+08
220.128.1.237 6 2025-12-31 16:10:56.206363+08
220.128.1.189 6 2025-12-31 16:10:56.206363+08
220.128.2.105 7 2025-12-31 16:10:56.290596+08
220.128.13.85 8 2025-12-31 16:10:56.290596+08
220.128.13.105 8 2025-12-31 16:10:56.290596+08
211.22.229.213 9 2025-12-31 16:10:56.33773+08
203.75.72.37 9 2025-12-31 16:10:56.33773+08
202.39.91.77 10 2025-12-31 16:10:56.499255+08
202.39.84.13 11 2025-12-31 16:10:56.499255+08
202.39.84.120 11 2025-12-31 16:10:56.499255+08
202.39.82.225 11 2025-12-31 16:10:56.499255+08
202.39.84.1 12 2025-12-31 16:10:56.499255+08
203.75.230.129 13 2025-12-31 16:10:56.50478+08
63.223.43.66 14 2025-12-31 16:10:56.510137+08
63.218.212.246 14 2025-12-31 16:10:56.510137+08
63.223.43.114 14 2025-12-31 16:10:56.510137+08
100.42.215.243 15 2025-12-31 16:10:56.510137+08
100.42.215.213 15 2025-12-31 16:10:56.510137+08
45.43.223.33 15 2025-12-31 16:10:56.510137+08
141.11.93.252 16 2025-12-31 16:10:56.514878+08
104.234.37.106 16 2025-12-31 16:10:56.514878+08
203.69.110.161 17 2025-12-31 16:10:56.514878+08
203.69.110.113 18 2025-12-31 16:10:56.514878+08
51.10.1.94 19 2025-12-31 16:10:56.514878+08
17.253.144.10 20 2025-12-31 16:10:56.514878+08
104.44.23.163 21 2025-12-31 16:10:56.514878+08
104.44.31.136 21 2025-12-31 16:10:56.514878+08
104.44.20.44 21 2025-12-31 16:10:56.514878+08
20.27.177.113 22 2025-12-31 16:10:56.514878+08
1.1.1.1 23 2025-12-31 16:10:56.514878+08
125.229.110.50 24 2025-12-31 16:20:26.732449+08
211.23.141.206 25 2025-12-31 16:24:24.601576+08
211.23.141.205 25 2025-12-31 16:26:13.418044+08
211.23.141.207 25 2025-12-31 16:26:13.418044+08
211.23.141.208 25 2025-12-31 16:26:13.418044+08
211.23.141.209 25 2025-12-31 16:26:13.418044+08
211.23.141.210 25 2025-12-31 16:26:13.418044+08
60.251.128.43 25 2025-12-31 16:29:41.282355+08
60.251.128.44 25 2025-12-31 16:29:41.282355+08
60.251.128.45 25 2025-12-31 16:29:41.282355+08
60.251.128.52 25 2025-12-31 16:29:41.282355+08
60.251.128.53 25 2025-12-31 16:29:41.282355+08
60.251.128.54 25 2025-12-31 16:29:41.282355+08
220.135.87.91 25 2025-12-31 16:46:19.050883+08
92.126.223.175 29 2025-12-31 17:34:05.405786+08
94.132.97.76 30 2025-12-31 17:36:54.87063+08
94.181.191.152 31 2025-12-31 17:38:55.481619+08
46.151.182.137 32 2025-12-31 17:44:43.134361+08
220.135.27.129 25 2025-12-31 17:52:54.579141+08
106.105.181.40 35 2025-12-31 17:54:42.204643+08
140.136.202.209 36 2025-12-31 17:56:56.895223+08
210.242.157.193 25 2025-12-31 18:00:20.536188+08
210.242.157.194 25 2025-12-31 18:00:20.536188+08
210.242.157.195 25 2025-12-31 18:00:20.536188+08
210.242.157.196 25 2025-12-31 18:00:20.536188+08
210.242.157.197 25 2025-12-31 18:00:20.536188+08
192.168.42.0/24 38 2025-12-31 18:02:23.666729+08
64.23.128.29 39 2026-01-02 07:31:41.668549+08
167.71.96.197 39 2026-01-02 07:40:03.590604+08
59.111.239.33 41 2026-01-02 07:45:34.885834+08
115.236.112.25 42 2026-01-02 07:49:45.061776+08
111.124.200.65 43 2026-01-02 07:52:53.476539+08
199.59.243.228 44 2026-01-02 07:57:38.494313+08
1.34.0.0/15 45 2026-01-02 07:59:11.226155+08
1.160.0.0/12 45 2026-01-02 08:00:54.890055+08
36.224.0.0/12 45 2026-01-02 08:00:54.890055+08
1.200.0.0/16 47 2026-01-02 08:01:06.701168+08
27.51.0.0/16 47 2026-01-02 08:01:06.701168+08
27.52.0.0/15 47 2026-01-02 08:01:06.701168+08
27.240.0.0/13 47 2026-01-02 08:01:06.701168+08
27.96.224.0/19 47 2026-01-02 08:01:06.701168+08
36.50.228.0/23 47 2026-01-02 08:01:06.701168+08
36.50.248.0/23 47 2026-01-02 08:01:06.701168+08
27.100.64.0/18 48 2026-01-02 08:01:24.008002+08
27.105.0.0/16 48 2026-01-02 08:01:24.008002+08
27.0.152.0/22 49 2026-01-02 08:01:33.48536+08
27.147.0.0/18 49 2026-01-02 08:01:33.48536+08
39.1.0.0/16 51 2026-01-02 09:02:03.095643+08
39.8.0.0/13 51 2026-01-02 09:02:03.095643+08
58.99.0.0/18 52 2026-01-02 09:06:13.128295+08
58.114.0.0/15 52 2026-01-02 09:06:13.128295+08
59.104.0.0/15 52 2026-01-02 09:06:13.128295+08
59.112.0.0/13 52 2026-01-02 09:06:13.128295+08
59.120.0.0/14 52 2026-01-02 09:06:13.128295+08
59.124.0.0/14 52 2026-01-02 09:06:13.128295+08
49.214.0.0/15 53 2026-01-02 09:06:22.817204+08
49.216.0.0/14 53 2026-01-02 09:06:22.817204+08
101.8.0.0/13 53 2026-01-02 09:06:22.817204+08
101.136.0.0/14 53 2026-01-02 09:06:22.817204+08
60.198.0.0/16 54 2026-01-02 09:06:36.47257+08
60.199.0.0/16 54 2026-01-02 09:06:36.47257+08
61.30.0.0/16 55 2026-01-02 09:06:44.255863+08
61.31.0.0/16 55 2026-01-02 09:06:44.255863+08
61.62.0.0/15 56 2026-01-02 09:06:53.283214+08
61.64.0.0/14 56 2026-01-02 09:06:53.283214+08
49.158.0.0/15 57 2026-01-02 09:07:06.78768+08
58.86.0.0/16 58 2026-01-02 09:07:15.786728+08
125.224.0.0/13 59 2026-01-02 09:12:02.616517+08
125.232.0.0/15 59 2026-01-02 09:12:02.616517+08
223.136.0.0/13 60 2026-01-02 09:24:38.748982+08
223.200.0.0/16 61 2026-01-02 09:24:47.104014+08
219.68.0.0/17 62 2026-01-02 09:24:54.995013+08
219.68.128.0/17 62 2026-01-02 09:24:54.995013+08
219.69.0.0/16 62 2026-01-02 09:24:54.995013+08
219.70.0.0/15 62 2026-01-02 09:24:54.995013+08
219.90.0.0/18 62 2026-01-02 09:24:54.995013+08
219.91.0.0/17 62 2026-01-02 09:24:54.995013+08
219.84.0.0/15 63 2026-01-02 09:25:03.180654+08
221.169.0.0/16 63 2026-01-02 09:25:03.180654+08
114.24.0.0/14 64 2026-01-02 09:30:00.751707+08
114.32.0.0/12 64 2026-01-02 09:30:00.751707+08
114.136.0.0/15 65 2026-01-02 09:30:07.915218+08
114.140.0.0/16 65 2026-01-02 09:30:07.915218+08
61.216.0.0/16 66 2026-01-02 09:37:03.802976+08
61.217.0.0/16 66 2026-01-02 09:37:03.802976+08
61.218.0.0/15 66 2026-01-02 09:37:03.802976+08
61.220.0.0/14 66 2026-01-02 09:37:03.802976+08
61.20.0.0/16 66 2026-01-02 09:37:03.802976+08
61.56.0.0/14 67 2026-01-02 09:37:12.70647+08
61.224.0.0/14 67 2026-01-02 09:37:12.70647+08
61.228.0.0/14 67 2026-01-02 09:37:12.70647+08
61.60.0.0/16 68 2026-01-02 09:37:21.357311+08
61.61.0.0/16 71 2026-01-02 09:37:46.924657+08
61.70.0.0/16 71 2026-01-02 09:37:46.924657+08
61.71.0.0/16 71 2026-01-02 09:37:46.924657+08
220.130.0.0/15 73 2026-01-02 10:03:11.523115+08
220.132.0.0/14 74 2026-01-02 10:03:19.20386+08
220.136.0.0/13 74 2026-01-02 10:03:19.20386+08
89.216.107.241 75 2026-01-02 10:10:39.707664+08
\.
--
-- Data for Name: network_node; Type: TABLE DATA; Schema: public; Owner: myuser
--
COPY public.network_node (id, org, role, description, metadata, created_at, updated_at) FROM stdin;
1 中華電信HiNet access 區域層級的 ISP 接入節點通常位於新北市汐止或內湖、南港一帶。功能為寬頻遠端接入伺服器BRAS負責接收並建立用戶連線。 {"layer": "access"} 2025-12-31 16:09:45.387957+08 2025-12-31 16:09:45.387957+08
2 中華電信HiNet bras 區域寬頻接入節點BRAS位於ISP機房端。負責建立用戶的 PPPoE 連線並分配公網 IP。 {"protocol": "PPPoE"} 2025-12-31 16:09:45.387957+08 2025-12-31 16:09:45.387957+08
3 中華電信HiNet backbone 核心骨幹節點,設於台北市主要機房。負責彙整各區域流量,並進行國內或國際方向的轉送。 {"scope": "domestic-international"} 2025-12-31 16:09:45.387957+08 2025-12-31 16:09:45.387957+08
4 中華電信HiNet backbone 核心骨幹網路節點,設於主要機房。負責匯聚與轉送骨幹層級流量,並導向國際出口或特定互連線路。 {"scope": "core-routing"} 2025-12-31 16:09:45.387957+08 2025-12-31 16:09:45.387957+08
5 中華電信HiNet backbone 核心骨幹網路節點,設於主要機房。用於承載與轉送大規模骨幹流量,並進行網路路由交換。 {"scope": "core-switching"} 2025-12-31 16:09:45.387957+08 2025-12-31 16:09:45.387957+08
6 中華電信HiNet international_gateway 國際出口閘道節點,位於台北。作為骨幹流量匯集點,負責將資料送往海外網路。 {"direction": "outbound"} 2025-12-31 16:09:45.387957+08 2025-12-31 16:09:45.387957+08
7 中華電信HiNet peering 國內互連交換節點Peering Gateway。負責將中華電信網路流量導向台灣境內的內容傳遞網路CDN或網際網路交換中心。 {"type": "public-peering"} 2025-12-31 16:09:45.387957+08 2025-12-31 16:09:45.387957+08
8 中華電信HiNet pni 國內互連閘道節點用於與大型內容供應商或雲端業者進行私有互連PNI承接並轉送高流量服務之專用連線。 {"type": "private-peering"} 2025-12-31 16:09:45.387957+08 2025-12-31 16:09:45.387957+08
9 中華電信HiNet enterprise_link 企業數據專線節點,屬於 HiNet 的數據分封網路,用於高優先級的企業互連或專用直連通道。 {"priority": "high"} 2025-12-31 16:09:45.387957+08 2025-12-31 16:09:45.387957+08
10 HiNetTWGate pop 海外 PoP 節點,設備實體設於海外,屬於中華電信海外網路架構,用於承接並轉送國際流量。 {"scope": "international"} 2025-12-31 16:09:45.387957+08 2025-12-31 16:09:45.387957+08
11 HiNetTWGate backbone 海外路由節點,設於美國洛杉磯。作為中華電信海外網路的一部分,負責當地流量的路由與轉送。 {"region": "US"} 2025-12-31 16:09:45.387957+08 2025-12-31 16:09:45.387957+08
12 HiNetTWGate backbone 海外路由節點,屬於中華電信海外網路架構的一部分。作為海外機房內的路由介面,用於承接並轉送進入海外網段的流量。 {"region": "US"} 2025-12-31 16:09:45.387957+08 2025-12-31 16:09:45.387957+08
13 中華電信HiNet peering 網際網路交換中心互連節點。作為中華電信與第三方網路服務供應商進行直接互連的介接位置。 {"type": "ixp"} 2025-12-31 16:09:45.387957+08 2025-12-31 16:09:45.387957+08
14 PCCW Global backbone Tier 1 國際電信營運商節點,位於國際骨幹網路中。用於跨電信網路之間的流量交換與轉送。 {"tier": "1"} 2025-12-31 16:09:45.387957+08 2025-12-31 16:09:45.387957+08
15 PacketHub backbone 資料中心上游網路節點,位於美國洛杉磯。作為機房對外的上游供應商,負責資料中心的流量進出與交換。 {"role": "datacenter-upstream"} 2025-12-31 16:09:45.387957+08 2025-12-31 16:09:45.387957+08
16 Virmach service VPS 主機節點,位於資料中心網路中。隸屬 AS25693Virmach提供虛擬專用伺服器服務用於承載應用系統與對外服務流量。 {"asn": "AS25693"} 2025-12-31 16:09:45.387957+08 2025-12-31 16:09:45.387957+08
17 中華電信HiNet pni Microsoft 直連介接節點,用於將中華電信網路流量直接交付至 Microsoft 網路架構。 {"partner": "Microsoft"} 2025-12-31 16:09:45.387957+08 2025-12-31 16:09:45.387957+08
18 中華電信HiNet pni Apple 直連介接節點,用於將中華電信網路流量直接交付至 Apple 網路架構。 {"partner": "Apple"} 2025-12-31 16:09:45.387957+08 2025-12-31 16:09:45.387957+08
19 Microsoft edge Microsoft 邊緣節點Edge Node屬於微軟全球網路架構的一部分用於承接進入 Microsoft 內部網路的流量。 {"provider": "Microsoft"} 2025-12-31 16:09:45.387957+08 2025-12-31 16:09:45.387957+08
20 Apple edge Apple 邊緣節點Edge Node屬於 Apple 全球內容傳遞網路的一部分,用於承接進入 Apple 內部服務網路的流量。 {"provider": "Apple"} 2025-12-31 16:09:45.387957+08 2025-12-31 16:09:45.387957+08
21 Microsoft cloud_backbone Azure 骨幹網路節點,屬於 Microsoft Azure 的內部骨幹網路,用於跨區域資料中心之間的流量傳輸。 {"cloud": "Azure"} 2025-12-31 16:09:45.387957+08 2025-12-31 16:09:45.387957+08
22 Microsoft Azure service Azure 雲端服務節點,位於 Azure 區域資料中心中,用於提供實際雲端服務與應用存取。 {"cloud": "Azure"} 2025-12-31 16:09:45.387957+08 2025-12-31 16:09:45.387957+08
23 Cloudflare service 公共 DNS 解析服務節點,採用 Anycast 架構。用於提供全球分散式的 DNS 查詢服務,實際回應位置依網路拓撲與路由策略而定。 {"service": "DNS", "architecture": "Anycast"} 2025-12-31 16:09:45.387957+08 2025-12-31 16:09:45.387957+08
24 中華電信HiNet service 用戶端公網 IP隸屬光世代寬頻配發範圍用於作為連網設備對外連線的網際網路出口。 {"asn": "AS3462", "scope": "subscriber", "asn_org": "Data Communication Business Group", "access_type": "FTTH"} 2025-12-31 16:20:26.732449+08 2025-12-31 16:20:26.732449+08
35 台灣智慧光網Taifo service 用戶端公網 IP隸屬 AS131584Taiwan Intelligent Fiber Optic Network為光纖寬頻業者配發之 IP 位址,作為連網設備的網際網路出口。 {"asn": "AS131584", "scope": "subscriber", "asn_org": "Taiwan Intelligent Fiber Optic Network", "country": "TW"} 2025-12-31 17:54:42.204643+08 2025-12-31 17:54:42.204643+08
36 輔仁大學FJU service 學術網路節點,隸屬 AS38845Fu Jen Catholic University為校園網路配發之 IP 位址,用於提供校內學術研究與連網服務。 {"asn": "AS38845", "scope": "academic", "asn_org": "Fu Jen Catholic University", "country": "TW"} 2025-12-31 17:56:56.895223+08 2025-12-31 17:56:56.895223+08
25 中華電信HiNet service 用戶端公網 IP隸屬 AS3462Data Communication Business Group為中華電信配發之 IP 位址,作為連網設備的網際網路出口。 {"asn": "AS3462", "scope": "subscriber", "asn_org": "Data Communication Business Group"} 2025-12-31 16:24:24.601576+08 2025-12-31 18:00:20.536188+08
29 Rostelecom service 用戶端公網 IP隸屬 AS12389Rostelecom為當地電信業者配發之 IP 位址,作為連網設備的網際網路出口。 {"asn": "AS12389", "scope": "subscriber", "asn_org": "Rostelecom", "country": "RU"} 2025-12-31 17:34:05.405786+08 2025-12-31 17:34:05.405786+08
30 NOS Comunicações service 用戶端公網 IP隸屬 AS2860NOS Comunicações為當地電信業者配發之 IP 位址,作為連網設備的網際網路出口。 {"asn": "AS2860", "scope": "subscriber", "asn_org": "NOS Comunicações", "country": "PT"} 2025-12-31 17:36:54.87063+08 2025-12-31 17:36:54.87063+08
31 JSC ER-Telecom Holding service 用戶端公網 IP隸屬 AS41754JSC ER-Telecom Holding為當地電信業者配發之 IP 位址,作為連網設備的網際網路出口。 {"asn": "AS41754", "scope": "subscriber", "asn_org": "JSC ER-Telecom Holding", "country": "RU"} 2025-12-31 17:38:55.481619+08 2025-12-31 17:38:55.481619+08
32 Optibounce, LLC service 資料中心 / Hosting 節點,隸屬 AS214967Optibounce, LLC提供網路託管或伺服器服務用於承載應用系統與流量轉送。 {"asn": "AS214967", "scope": "datacenter", "asn_org": "Optibounce, LLC", "country": "NL"} 2025-12-31 17:44:43.134361+08 2025-12-31 17:44:43.134361+08
33 中華電信HiNet bras 區域寬頻接入節點BRAS位於ISP機房端。隸屬 AS3462Data Communication Business Group負責處理用戶端的 PPPoE 撥號連線與 IP 分配。 {"asn": "AS3462", "scope": "access", "asn_org": "Data Communication Business Group", "protocol": "PPPoE"} 2025-12-31 17:49:05.936504+08 2025-12-31 17:49:05.936504+08
38 區域網路 (Local Network) access 區域網路內部 IP 位址Private IP。屬於 RFC 1918 定義之私有網段,僅供內網裝置使用,無法直接由網際網路存取。 {"rfc": "1918", "scope": "private"} 2025-12-31 18:02:23.666729+08 2025-12-31 18:02:23.666729+08
39 DigitalOcean service VPS 主機或雲端服務節點,隸屬 AS14061DigitalOcean提供雲端運算與虛擬專用伺服器服務用於承載應用系統與對外服務。 {"asn": "AS14061", "scope": "datacenter", "asn_org": "DigitalOcean", "country": "US"} 2026-01-02 07:31:41.668549+08 2026-01-02 07:40:03.590604+08
41 網易NetEase service 伺服器或資料中心節點,隸屬 AS45062NetEase提供線上遊戲、雲端服務或內容傳遞網路服務用於承載應用系統與流量轉送。 {"asn": "AS45062", "scope": "datacenter", "asn_org": "NetEase", "country": "CN"} 2026-01-02 07:45:34.885834+08 2026-01-02 07:45:34.885834+08
42 中國電信China Telecom service 資料中心節點,隸屬 AS58461CT-HangZhou-IDC提供網際網路資料中心託管服務用於承載應用系統與流量轉送。 {"asn": "AS58461", "scope": "datacenter", "asn_org": "CT-HangZhou-IDC", "country": "CN"} 2026-01-02 07:49:45.061776+08 2026-01-02 07:49:45.061776+08
43 Guizhou GuiAn IDC service 資料中心節點,隸屬 AS139203Guizhou GuiAn IDC提供網際網路資料中心託管服務用於承載應用系統與流量轉送。 {"asn": "AS139203", "scope": "datacenter", "asn_org": "Guizhou GuiAn IDC", "country": "CN"} 2026-01-02 07:52:53.476539+08 2026-01-02 07:52:53.476539+08
45 中華電信HiNet service 寬頻用戶 IP 網段,隸屬 AS3462Data Communication Business Group廣泛配發給家庭光世代或企業用戶使用作為網際網路出口。 {"asn": "AS3462", "scope": "subscriber", "asn_org": "Data Communication Business Group", "country": "TW"} 2026-01-02 07:59:11.226155+08 2026-01-02 08:00:54.890055+08
47 台灣大哥大Taiwan Mobile service 行動網路與固網 IP 網段,隸屬 AS9924/AS9919Taiwan Fixed Network / Taiwan Mobile主要配發給 4G/5G 行動用戶及企業寬頻使用。 {"asn": ["AS9924", "AS9919"], "scope": "mobile-fixed", "asn_org": ["Taiwan Fixed Network", "Taiwan Mobile"], "country": "TW"} 2026-01-02 08:01:06.701168+08 2026-01-02 08:01:06.701168+08
48 遠傳電信Far EasTone service 寬頻與行動網路 IP 網段,隸屬 AS4780/AS17421Seednet / Far EasTone配發給家用寬頻或行動裝置使用。 {"asn": ["AS4780", "AS17421"], "scope": "broadband-mobile", "asn_org": ["Seednet", "Far EasTone"], "country": "TW"} 2026-01-02 08:01:24.008002+08 2026-01-02 08:01:24.008002+08
49 是方電訊Chief Telecom service IDC 與企業專線 IP 網段,隸屬 AS18049Chief Telecom主要提供資料中心託管、企業 VPN 或交換中心使用。 {"asn": "AS18049", "scope": "datacenter-enterprise", "asn_org": "Chief Telecom", "country": "TW"} 2026-01-02 08:01:33.48536+08 2026-01-02 08:01:33.48536+08
51 遠傳電信Far EasTone service 行動網路 IP 網段,隸屬 AS17421 / AS9674主要配發給 4G/5G 手機上網用戶部分為原亞太線上APOL整併之網段。 {"asn": ["AS17421", "AS9674"], "scope": "mobile", "asn_org": ["Far EasTone", "Asia Pacific Online"], "country": "TW"} 2026-01-02 09:02:03.095643+08 2026-01-02 09:02:03.095643+08
52 中華電信HiNet service 寬頻、企業與政府網段,隸屬 AS3462Data Communication Business Group涵蓋光世代動態 IP、企業固定制及政府網路使用。 {"asn": "AS3462", "scope": ["broadband", "enterprise", "government"], "asn_org": "Data Communication Business Group", "country": "TW"} 2026-01-02 09:06:13.128295+08 2026-01-02 09:06:13.128295+08
53 台灣大哥大Taiwan Mobile service 行動網路網段,隸屬 AS9919主要配發給 4G/5G 行動用戶使用CGNAT。 {"asn": "AS9919", "scope": "mobile", "country": "TW"} 2026-01-02 09:06:22.817204+08 2026-01-02 09:06:22.817204+08
54 台灣固網TFN/ 台灣大哥大 service 固網與企業寬頻網段,隸屬 AS9924主要提供企業專線與資料中心相關服務使用。 {"asn": "AS9924", "scope": "enterprise", "country": "TW"} 2026-01-02 09:06:36.47257+08 2026-01-02 09:06:36.47257+08
55 遠傳電信Seednet service 家用寬頻網段,隸屬 AS4780Digital United / Seednet主要配發給 Seednet 光纖或 ADSL 用戶。 {"asn": "AS4780", "scope": "broadband", "asn_org": "Digital United / Seednet", "country": "TW"} 2026-01-02 09:06:44.255863+08 2026-01-02 09:06:44.255863+08
56 遠傳電信Far EasTone service 寬頻與行動整合網段,隸屬 AS9674 / AS17421原為亞太線上APOL網段現整併入遠傳體系使用。 {"asn": ["AS9674", "AS17421"], "scope": ["broadband", "mobile"], "country": "TW"} 2026-01-02 09:06:53.283214+08 2026-01-02 09:06:53.283214+08
57 台灣寬頻通訊TBC service 有線電視寬頻網段,隸屬 AS17408提供 TBC 旗下有線電視系統之寬頻上網服務。 {"asn": "AS17408", "scope": "cable-broadband", "country": "TW"} 2026-01-02 09:07:06.78768+08 2026-01-02 09:07:06.78768+08
58 凱擘大寬頻Kbro service 有線電視寬頻網段,隸屬 AS18044提供凱擘旗下有線電視系統之寬頻上網服務。 {"asn": "AS18044", "scope": "cable-broadband", "country": "TW"} 2026-01-02 09:07:15.786728+08 2026-01-02 09:07:15.786728+08
59 中華電信HiNet service 寬頻用戶 IP 網段,隸屬 AS3462Data Communication Business Group主要配發給家庭光世代或 ADSL 用戶使用(動態 IP屬於常見的家用網段。 {"asn": "AS3462", "scope": "subscriber", "asn_org": "Data Communication Business Group", "country": "TW", "access_type": ["FTTH", "ADSL"]} 2026-01-02 09:12:02.616517+08 2026-01-02 09:12:02.616517+08
60 中華電信HiNet service 行動網路 IP 網段,為 4G/5G 手機上網之主要使用區段,常見於行動裝置連線來源。 {"asn": "AS3462", "scope": "mobile", "country": "TW"} 2026-01-02 09:24:38.748982+08 2026-01-02 09:24:38.748982+08
61 政府網際服務網GSN service 政府機關專用網路 IP 網段,由中華電信代管,僅配發給政府單位、公立學校與研究機構使用。 {"scope": "government", "country": "TW", "managed_by": ""} 2026-01-02 09:24:47.104014+08 2026-01-02 09:24:47.104014+08
62 TBC / Kbro台灣寬頻 / 凱擘) service 有線電視寬頻 IP 網段,主要為 Cable Modem 家用上網使用,分佈於全台各地。 {"scope": "cable-broadband", "country": "TW"} 2026-01-02 09:24:54.995013+08 2026-01-02 09:24:54.995013+08
63 遠傳電信Seednet service 家用寬頻 IP 網段Seednet 傳統使用區段,涵蓋大量 ADSL 與光纖家庭用戶。 {"asn": "AS4780", "scope": "broadband", "country": "TW"} 2026-01-02 09:25:03.180654+08 2026-01-02 09:25:03.180654+08
64 中華電信HiNet service 寬頻與固網主力網段,隸屬 AS3462涵蓋企業固定制與家庭光世代動態 IP為台灣分佈最廣的網段之一。 {"asn": "AS3462", "scope": ["broadband", "enterprise"], "asn_org": "Data Communication Business Group", "country": "TW", "access_type": ["static", "dynamic"]} 2026-01-02 09:30:00.751707+08 2026-01-02 09:30:00.751707+08
65 中華電信HiNet service 行動網路 IP 網段,隸屬 AS3462 / AS9668主要配發給中華電信 4G/5G 手機用戶使用。 {"asn": ["AS3462", "AS9668"], "scope": "mobile", "country": "TW"} 2026-01-02 09:30:07.915218+08 2026-01-02 09:30:07.915218+08
66 中華電信HiNet service 企業固定制與商業用途網段,隸屬 AS3462常用於公司行號、伺服器託管或 FTTB 專線服務。 {"asn": "AS3462", "scope": ["enterprise", "datacenter"], "asn_org": "Data Communication Business Group", "country": "TW", "access_type": "static"} 2026-01-02 09:37:03.802976+08 2026-01-02 09:37:03.802976+08
67 中華電信HiNet service 家用寬頻動態 IP 網段,隸屬 AS3462涵蓋光世代與 ADSL 用戶,分布於台灣各地。 {"asn": "AS3462", "scope": "subscriber", "asn_org": "Data Communication Business Group", "country": "TW", "access_type": "dynamic"} 2026-01-02 09:37:12.70647+08 2026-01-02 09:37:12.70647+08
68 政府網際服務網GSN service 政府機關專用網段,由中華電信代管,主要提供政府部門與公立學校使用。 {"scope": "government", "country": "TW", "managed_by": ""} 2026-01-02 09:37:21.357311+08 2026-01-02 09:37:21.357311+08
69 遠傳電信Seednet service 家用寬頻網段,隸屬 AS4780Seednet主要配發給家庭光纖或 ADSL 用戶使用。 {"asn": "AS4780", "scope": "subscriber", "asn_org": "Seednet", "country": "TW"} 2026-01-02 09:37:29.108237+08 2026-01-02 09:37:29.108237+08
70 遠傳電信Far EasTone service 寬頻與行動整合網段,隸屬 AS9674 / AS17421原為亞太線上APOL使用現整併至遠傳體系。 {"asn": ["AS9674", "AS17421"], "scope": ["broadband", "mobile"], "country": "TW"} 2026-01-02 09:37:37.656136+08 2026-01-02 09:37:37.656136+08
71 台灣固網TFN/ 台灣大哥大 service 企業與固網寬頻網段,隸屬 AS9924常用於企業專線、IDC 機房及相關寬頻服務。 {"asn": "AS9924", "scope": ["enterprise", "datacenter"], "asn_org": "Taiwan Fixed Network", "country": "TW"} 2026-01-02 09:37:46.924657+08 2026-01-02 09:37:46.924657+08
44 Amazon.com (AWS) service 雲端服務節點,隸屬 AS16509Amazon.com提供雲端運算服務AWS用於承載應用系統與流量轉送。 {"asn": "AS16509", "scope": "cloud", "asn_org": "Amazon.com", "country": "US"} 2026-01-02 07:57:38.494313+08 2026-01-02 10:00:10.208025+08
73 中華電信HiNet service 企業固定制與商業用途網段,隸屬 AS3462常配發給申請多機型固定制或 FTTB 企業專線用於架設網站、VPN 或郵件伺服器。 {"asn": "AS3462", "scope": ["enterprise", "datacenter"], "asn_org": "Data Communication Business Group", "country": "TW", "access_type": "static"} 2026-01-02 10:03:11.523115+08 2026-01-02 10:03:11.523115+08
74 中華電信HiNet service 家用寬頻動態 IP 網段,隸屬 AS3462為大規模光世代與 ADSL 用戶使用,具有明顯地域分佈特性。 {"asn": "AS3462", "scope": "subscriber", "asn_org": "Data Communication Business Group", "country": "TW", "access_type": "dynamic"} 2026-01-02 10:03:19.20386+08 2026-01-02 10:03:19.20386+08
75 Serbia BroadBand (SBB) service 寬頻用戶 IP隸屬 AS31042Serbia BroadBand為當地主要有線電視與寬頻業者配發通常作為家庭或商業用戶的網際網路出口。 {"asn": "AS31042", "scope": "subscriber", "asn_org": "Serbia BroadBand", "country": "RS"} 2026-01-02 10:10:39.707664+08 2026-01-02 10:10:39.707664+08
\.
--
-- Name: network_node_id_seq; Type: SEQUENCE SET; Schema: public; Owner: myuser
--
SELECT pg_catalog.setval('public.network_node_id_seq', 75, true);
--
-- Name: ip_address ip_address_pkey; Type: CONSTRAINT; Schema: public; Owner: myuser
--
ALTER TABLE ONLY public.ip_address
ADD CONSTRAINT ip_address_pkey PRIMARY KEY (ip);
--
-- Name: network_node network_node_pkey; Type: CONSTRAINT; Schema: public; Owner: myuser
--
ALTER TABLE ONLY public.network_node
ADD CONSTRAINT network_node_pkey PRIMARY KEY (id);
--
-- Name: ix_ip_address_node_id; Type: INDEX; Schema: public; Owner: myuser
--
CREATE INDEX ix_ip_address_node_id ON public.ip_address USING btree (node_id);
--
-- Name: ix_network_node_fts; Type: INDEX; Schema: public; Owner: myuser
--
CREATE INDEX ix_network_node_fts ON public.network_node USING gin (fts);
--
-- Name: ix_network_node_metadata; Type: INDEX; Schema: public; Owner: myuser
--
CREATE INDEX ix_network_node_metadata ON public.network_node USING gin (metadata);
--
-- Name: ix_network_node_org; Type: INDEX; Schema: public; Owner: myuser
--
CREATE INDEX ix_network_node_org ON public.network_node USING btree (org);
--
-- Name: ix_network_node_role; Type: INDEX; Schema: public; Owner: myuser
--
CREATE INDEX ix_network_node_role ON public.network_node USING btree (role);
--
-- Name: ux_network_node_org_role_desc; Type: INDEX; Schema: public; Owner: myuser
--
CREATE UNIQUE INDEX ux_network_node_org_role_desc ON public.network_node USING btree (org, role, md5(description));
--
-- Name: INDEX ux_network_node_org_role_desc; Type: COMMENT; Schema: public; Owner: myuser
--
COMMENT ON INDEX public.ux_network_node_org_role_desc IS '避免同組織、同角色、同描述的重複資料。';
--
-- Name: network_node trg_network_node_updated_at; Type: TRIGGER; Schema: public; Owner: myuser
--
CREATE TRIGGER trg_network_node_updated_at BEFORE UPDATE ON public.network_node FOR EACH ROW EXECUTE FUNCTION public.set_updated_at();
--
-- Name: TRIGGER trg_network_node_updated_at ON network_node; Type: COMMENT; Schema: public; Owner: myuser
--
COMMENT ON TRIGGER trg_network_node_updated_at ON public.network_node IS 'network_node 更新觸發器,自動維護 updated_at。';
--
-- Name: ip_address ip_address_node_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: myuser
--
ALTER TABLE ONLY public.ip_address
ADD CONSTRAINT ip_address_node_id_fkey FOREIGN KEY (node_id) REFERENCES public.network_node(id) ON DELETE CASCADE;
--
-- PostgreSQL database dump complete
--
\unrestrict Q4WpGms7fzf4wjhFCm4WDvwuXmx9BJApLRK21PfyCiZwM8lcxit6KlqiKHhVF9S
--
-- Database "postgres" dump
--
\connect postgres
--
-- PostgreSQL database dump
--
\restrict 0YfL9O5afocIRgmsdQcELr5usw6xQAbEOjnKLz1wqYJke4g4p6PhqR4KdvvEUy1
-- Dumped from database version 16.11 (Debian 16.11-1.pgdg13+1)
-- Dumped by pg_dump version 16.11 (Debian 16.11-1.pgdg13+1)
SET statement_timeout = 0;
SET lock_timeout = 0;
SET idle_in_transaction_session_timeout = 0;
SET client_encoding = 'UTF8';
SET standard_conforming_strings = on;
SELECT pg_catalog.set_config('search_path', '', false);
SET check_function_bodies = false;
SET xmloption = content;
SET client_min_messages = warning;
SET row_security = off;
--
-- PostgreSQL database dump complete
--
\unrestrict 0YfL9O5afocIRgmsdQcELr5usw6xQAbEOjnKLz1wqYJke4g4p6PhqR4KdvvEUy1
--
-- PostgreSQL database cluster dump complete
--