-- -- PostgreSQL database cluster dump -- \restrict ZqOzkniHxIeOeHTfZ93qv1csIDP4diaTRbgGiK9H8sYaTH7NgjUm8T72bYm5qPV SET default_transaction_read_only = off; SET client_encoding = 'UTF8'; SET standard_conforming_strings = on; -- -- Drop databases (except postgres and template1) -- DROP DATABASE IF EXISTS "FormulaAES"; DROP DATABASE IF EXISTS "Gemma_IaC"; -- -- Drop roles -- DROP ROLE IF EXISTS admin; DROP ROLE IF EXISTS postgres; -- -- Roles -- CREATE ROLE admin; ALTER ROLE admin WITH SUPERUSER INHERIT NOCREATEROLE NOCREATEDB LOGIN NOREPLICATION NOBYPASSRLS PASSWORD 'SCRAM-SHA-256$4096:xFQTBloL9L7/2U/+/QoUKA==$lXxx9qlo4QLPcSMvMW2DFZ0tn7u8OdOrc+aZWQrglbE=:tNXqi4y9V/9GwOQ9hwCkBf1buZzlDOqcWFlC4NNMKZE='; CREATE ROLE postgres; ALTER ROLE postgres WITH SUPERUSER INHERIT CREATEROLE CREATEDB LOGIN REPLICATION BYPASSRLS; -- -- User Configurations -- \unrestrict ZqOzkniHxIeOeHTfZ93qv1csIDP4diaTRbgGiK9H8sYaTH7NgjUm8T72bYm5qPV -- -- Databases -- -- -- Database "template1" dump -- -- -- PostgreSQL database dump -- \restrict YWWbL8TOS1Ll3Yvag6Lkphr0EB8nrMKUcqtOgucAa4yUnKgeUhuDZK2J43ILZoa -- Dumped from database version 17.6 (Debian 17.6-2.pgdg12+1) -- Dumped by pg_dump version 17.6 (Debian 17.6-2.pgdg12+1) SET statement_timeout = 0; SET lock_timeout = 0; SET idle_in_transaction_session_timeout = 0; SET transaction_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; UPDATE pg_catalog.pg_database SET datistemplate = false WHERE datname = 'template1'; DROP DATABASE template1; -- -- Name: template1; Type: DATABASE; Schema: -; Owner: postgres -- CREATE DATABASE template1 WITH TEMPLATE = template0 ENCODING = 'UTF8' LOCALE_PROVIDER = libc LOCALE = 'C.UTF-8'; ALTER DATABASE template1 OWNER TO postgres; \unrestrict YWWbL8TOS1Ll3Yvag6Lkphr0EB8nrMKUcqtOgucAa4yUnKgeUhuDZK2J43ILZoa \connect template1 \restrict YWWbL8TOS1Ll3Yvag6Lkphr0EB8nrMKUcqtOgucAa4yUnKgeUhuDZK2J43ILZoa SET statement_timeout = 0; SET lock_timeout = 0; SET idle_in_transaction_session_timeout = 0; SET transaction_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: DATABASE template1; Type: COMMENT; Schema: -; Owner: postgres -- COMMENT ON DATABASE template1 IS 'default template for new databases'; -- -- Name: template1; Type: DATABASE PROPERTIES; Schema: -; Owner: postgres -- ALTER DATABASE template1 IS_TEMPLATE = true; \unrestrict YWWbL8TOS1Ll3Yvag6Lkphr0EB8nrMKUcqtOgucAa4yUnKgeUhuDZK2J43ILZoa \connect template1 \restrict YWWbL8TOS1Ll3Yvag6Lkphr0EB8nrMKUcqtOgucAa4yUnKgeUhuDZK2J43ILZoa SET statement_timeout = 0; SET lock_timeout = 0; SET idle_in_transaction_session_timeout = 0; SET transaction_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: DATABASE template1; Type: ACL; Schema: -; Owner: postgres -- REVOKE CONNECT,TEMPORARY ON DATABASE template1 FROM PUBLIC; GRANT CONNECT ON DATABASE template1 TO PUBLIC; -- -- PostgreSQL database dump complete -- \unrestrict YWWbL8TOS1Ll3Yvag6Lkphr0EB8nrMKUcqtOgucAa4yUnKgeUhuDZK2J43ILZoa -- -- Database "FormulaAES" dump -- -- -- PostgreSQL database dump -- \restrict w5uE4rSGZJDY03y6UJe5zrJlVo2PGEXxxxSZ2iUUg4o3Z8nTtIAOqZRk5MOkj0j -- Dumped from database version 17.6 (Debian 17.6-2.pgdg12+1) -- Dumped by pg_dump version 17.6 (Debian 17.6-2.pgdg12+1) SET statement_timeout = 0; SET lock_timeout = 0; SET idle_in_transaction_session_timeout = 0; SET transaction_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: FormulaAES; Type: DATABASE; Schema: -; Owner: postgres -- CREATE DATABASE "FormulaAES" WITH TEMPLATE = template0 ENCODING = 'UTF8' LOCALE_PROVIDER = libc LOCALE = 'C.UTF-8'; ALTER DATABASE "FormulaAES" OWNER TO postgres; \unrestrict w5uE4rSGZJDY03y6UJe5zrJlVo2PGEXxxxSZ2iUUg4o3Z8nTtIAOqZRk5MOkj0j \connect "FormulaAES" \restrict w5uE4rSGZJDY03y6UJe5zrJlVo2PGEXxxxSZ2iUUg4o3Z8nTtIAOqZRk5MOkj0j SET statement_timeout = 0; SET lock_timeout = 0; SET idle_in_transaction_session_timeout = 0; SET transaction_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; SET default_tablespace = ''; SET default_table_access_method = heap; -- -- Name: COMPONENT; Type: TABLE; Schema: public; Owner: postgres -- CREATE TABLE public."COMPONENT" ( "COMPONENT_ID" integer NOT NULL, "COMPONENT_NAME" character varying(100) NOT NULL, "PROJECT_ID" integer NOT NULL, "CREATED_AT" timestamp with time zone DEFAULT CURRENT_TIMESTAMP ); ALTER TABLE public."COMPONENT" OWNER TO postgres; -- -- Name: COMPONENT_COMPONENT_ID_seq; Type: SEQUENCE; Schema: public; Owner: postgres -- ALTER TABLE public."COMPONENT" ALTER COLUMN "COMPONENT_ID" ADD GENERATED BY DEFAULT AS IDENTITY ( SEQUENCE NAME public."COMPONENT_COMPONENT_ID_seq" START WITH 1 INCREMENT BY 1 NO MINVALUE NO MAXVALUE CACHE 1 ); -- -- Name: FILE; Type: TABLE; Schema: public; Owner: postgres -- CREATE TABLE public."FILE" ( "FILE_ID" integer NOT NULL, "FILE_NAME" character varying(100) NOT NULL, "COMPONENT_ID" integer NOT NULL, "CODE" bytea NOT NULL, "CREATED_AT" timestamp with time zone DEFAULT CURRENT_TIMESTAMP ); ALTER TABLE ONLY public."FILE" ALTER COLUMN "CODE" SET STORAGE EXTERNAL; ALTER TABLE public."FILE" OWNER TO postgres; -- -- Name: FILE_FILE_ID_seq; Type: SEQUENCE; Schema: public; Owner: postgres -- ALTER TABLE public."FILE" ALTER COLUMN "FILE_ID" ADD GENERATED BY DEFAULT AS IDENTITY ( SEQUENCE NAME public."FILE_FILE_ID_seq" START WITH 1 INCREMENT BY 1 NO MINVALUE NO MAXVALUE CACHE 1 ); -- -- Name: PROJECT; Type: TABLE; Schema: public; Owner: postgres -- CREATE TABLE public."PROJECT" ( "PROJECT_ID" integer NOT NULL, "PROJECT_NAME" character varying(100) NOT NULL, "REPOSITORY_ID" integer NOT NULL, "CREATED_AT" timestamp with time zone DEFAULT CURRENT_TIMESTAMP ); ALTER TABLE public."PROJECT" OWNER TO postgres; -- -- Name: PROJECT_PROJECT_ID_seq; Type: SEQUENCE; Schema: public; Owner: postgres -- ALTER TABLE public."PROJECT" ALTER COLUMN "PROJECT_ID" ADD GENERATED BY DEFAULT AS IDENTITY ( SEQUENCE NAME public."PROJECT_PROJECT_ID_seq" START WITH 1 INCREMENT BY 1 NO MINVALUE NO MAXVALUE CACHE 1 ); -- -- Name: REPOSITORY; Type: TABLE; Schema: public; Owner: postgres -- CREATE TABLE public."REPOSITORY" ( "REPOSITORY_ID" integer NOT NULL, "REPOSITORY_NAME" character varying(100) NOT NULL, "CREATED_AT" timestamp with time zone DEFAULT CURRENT_TIMESTAMP ); ALTER TABLE public."REPOSITORY" OWNER TO postgres; -- -- Name: REPOSITORY_REPOSITORY_ID_seq; Type: SEQUENCE; Schema: public; Owner: postgres -- ALTER TABLE public."REPOSITORY" ALTER COLUMN "REPOSITORY_ID" ADD GENERATED BY DEFAULT AS IDENTITY ( SEQUENCE NAME public."REPOSITORY_REPOSITORY_ID_seq" START WITH 1 INCREMENT BY 1 NO MINVALUE NO MAXVALUE CACHE 1 ); -- -- Data for Name: COMPONENT; Type: TABLE DATA; Schema: public; Owner: postgres -- COPY public."COMPONENT" ("COMPONENT_ID", "COMPONENT_NAME", "PROJECT_ID", "CREATED_AT") FROM stdin; \. -- -- Data for Name: FILE; Type: TABLE DATA; Schema: public; Owner: postgres -- COPY public."FILE" ("FILE_ID", "FILE_NAME", "COMPONENT_ID", "CODE", "CREATED_AT") FROM stdin; \. -- -- Data for Name: PROJECT; Type: TABLE DATA; Schema: public; Owner: postgres -- COPY public."PROJECT" ("PROJECT_ID", "PROJECT_NAME", "REPOSITORY_ID", "CREATED_AT") FROM stdin; 1 A 1 2025-09-30 16:32:04.647711+08 \. -- -- Data for Name: REPOSITORY; Type: TABLE DATA; Schema: public; Owner: postgres -- COPY public."REPOSITORY" ("REPOSITORY_ID", "REPOSITORY_NAME", "CREATED_AT") FROM stdin; 1 Bedrock 2025-09-30 15:42:08.163631+08 2 PostgreSQL 2025-09-30 15:42:24.047993+08 \. -- -- Name: COMPONENT_COMPONENT_ID_seq; Type: SEQUENCE SET; Schema: public; Owner: postgres -- SELECT pg_catalog.setval('public."COMPONENT_COMPONENT_ID_seq"', 1, true); -- -- Name: FILE_FILE_ID_seq; Type: SEQUENCE SET; Schema: public; Owner: postgres -- SELECT pg_catalog.setval('public."FILE_FILE_ID_seq"', 3, true); -- -- Name: PROJECT_PROJECT_ID_seq; Type: SEQUENCE SET; Schema: public; Owner: postgres -- SELECT pg_catalog.setval('public."PROJECT_PROJECT_ID_seq"', 1, true); -- -- Name: REPOSITORY_REPOSITORY_ID_seq; Type: SEQUENCE SET; Schema: public; Owner: postgres -- SELECT pg_catalog.setval('public."REPOSITORY_REPOSITORY_ID_seq"', 2, true); -- -- Name: COMPONENT COMPONENT_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres -- ALTER TABLE ONLY public."COMPONENT" ADD CONSTRAINT "COMPONENT_pkey" PRIMARY KEY ("COMPONENT_ID"); -- -- Name: FILE FILE_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres -- ALTER TABLE ONLY public."FILE" ADD CONSTRAINT "FILE_pkey" PRIMARY KEY ("FILE_ID"); -- -- Name: PROJECT PROJECT_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres -- ALTER TABLE ONLY public."PROJECT" ADD CONSTRAINT "PROJECT_pkey" PRIMARY KEY ("PROJECT_ID"); -- -- Name: REPOSITORY REPOSITORY_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres -- ALTER TABLE ONLY public."REPOSITORY" ADD CONSTRAINT "REPOSITORY_pkey" PRIMARY KEY ("REPOSITORY_ID"); -- -- Name: IDX_COMPONENT_PROJECT_ID; Type: INDEX; Schema: public; Owner: postgres -- CREATE INDEX "IDX_COMPONENT_PROJECT_ID" ON public."COMPONENT" USING btree ("PROJECT_ID"); -- -- Name: IDX_FILE_COMPONENT_ID; Type: INDEX; Schema: public; Owner: postgres -- CREATE INDEX "IDX_FILE_COMPONENT_ID" ON public."FILE" USING btree ("COMPONENT_ID"); -- -- Name: IDX_PROJECT_REPOSITORY_ID; Type: INDEX; Schema: public; Owner: postgres -- CREATE INDEX "IDX_PROJECT_REPOSITORY_ID" ON public."PROJECT" USING btree ("REPOSITORY_ID"); -- -- Name: COMPONENT FK_COMPONENT_PROJECT; Type: FK CONSTRAINT; Schema: public; Owner: postgres -- ALTER TABLE ONLY public."COMPONENT" ADD CONSTRAINT "FK_COMPONENT_PROJECT" FOREIGN KEY ("PROJECT_ID") REFERENCES public."PROJECT"("PROJECT_ID"); -- -- Name: FILE FK_FILE_COMPONENT; Type: FK CONSTRAINT; Schema: public; Owner: postgres -- ALTER TABLE ONLY public."FILE" ADD CONSTRAINT "FK_FILE_COMPONENT" FOREIGN KEY ("COMPONENT_ID") REFERENCES public."COMPONENT"("COMPONENT_ID"); -- -- Name: PROJECT FK_PROJECT_REPOSITORY; Type: FK CONSTRAINT; Schema: public; Owner: postgres -- ALTER TABLE ONLY public."PROJECT" ADD CONSTRAINT "FK_PROJECT_REPOSITORY" FOREIGN KEY ("REPOSITORY_ID") REFERENCES public."REPOSITORY"("REPOSITORY_ID"); -- -- PostgreSQL database dump complete -- \unrestrict w5uE4rSGZJDY03y6UJe5zrJlVo2PGEXxxxSZ2iUUg4o3Z8nTtIAOqZRk5MOkj0j -- -- Database "Gemma_IaC" dump -- -- -- PostgreSQL database dump -- \restrict qU3c6HEgrcaLL1aostiTuSJU2FZlx4mODL2Q4indIAkmWOqWtzr9RjQzqfi0SUF -- Dumped from database version 17.6 (Debian 17.6-2.pgdg12+1) -- Dumped by pg_dump version 17.6 (Debian 17.6-2.pgdg12+1) SET statement_timeout = 0; SET lock_timeout = 0; SET idle_in_transaction_session_timeout = 0; SET transaction_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: Gemma_IaC; Type: DATABASE; Schema: -; Owner: admin -- CREATE DATABASE "Gemma_IaC" WITH TEMPLATE = template0 ENCODING = 'UTF8' LOCALE_PROVIDER = libc LOCALE = 'C.UTF-8'; ALTER DATABASE "Gemma_IaC" OWNER TO admin; \unrestrict qU3c6HEgrcaLL1aostiTuSJU2FZlx4mODL2Q4indIAkmWOqWtzr9RjQzqfi0SUF \connect "Gemma_IaC" \restrict qU3c6HEgrcaLL1aostiTuSJU2FZlx4mODL2Q4indIAkmWOqWtzr9RjQzqfi0SUF SET statement_timeout = 0; SET lock_timeout = 0; SET idle_in_transaction_session_timeout = 0; SET transaction_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; SET default_tablespace = ''; SET default_table_access_method = heap; -- -- Name: Ragdoll_IaC_Application; Type: TABLE; Schema: public; Owner: admin -- CREATE TABLE public."Ragdoll_IaC_Application" ( "Application_ID" integer NOT NULL, "Project_ID" integer NOT NULL, "Application_Name" character varying(255) NOT NULL, "Application_Created_At" timestamp with time zone DEFAULT CURRENT_TIMESTAMP ); ALTER TABLE public."Ragdoll_IaC_Application" OWNER TO admin; -- -- Name: Ragdoll_IaC_Application_Application_ID_seq; Type: SEQUENCE; Schema: public; Owner: admin -- ALTER TABLE public."Ragdoll_IaC_Application" ALTER COLUMN "Application_ID" ADD GENERATED BY DEFAULT AS IDENTITY ( SEQUENCE NAME public."Ragdoll_IaC_Application_Application_ID_seq" START WITH 1 INCREMENT BY 1 NO MINVALUE NO MAXVALUE CACHE 1 ); -- -- Name: Ragdoll_IaC_Code; Type: TABLE; Schema: public; Owner: admin -- CREATE TABLE public."Ragdoll_IaC_Code" ( "Code_ID" integer NOT NULL, "Application_ID" integer NOT NULL, "Code_Content" text NOT NULL, "Code_Created_At" timestamp with time zone DEFAULT CURRENT_TIMESTAMP ); ALTER TABLE public."Ragdoll_IaC_Code" OWNER TO admin; -- -- Name: Ragdoll_IaC_Code_Code_ID_seq; Type: SEQUENCE; Schema: public; Owner: admin -- ALTER TABLE public."Ragdoll_IaC_Code" ALTER COLUMN "Code_ID" ADD GENERATED BY DEFAULT AS IDENTITY ( SEQUENCE NAME public."Ragdoll_IaC_Code_Code_ID_seq" START WITH 1 INCREMENT BY 1 NO MINVALUE NO MAXVALUE CACHE 1 ); -- -- Name: Ragdoll_IaC_Project; Type: TABLE; Schema: public; Owner: admin -- CREATE TABLE public."Ragdoll_IaC_Project" ( "Project_ID" integer NOT NULL, "Project_Name" character varying(30) NOT NULL, "Project_Created_At" timestamp without time zone DEFAULT CURRENT_TIMESTAMP ); ALTER TABLE public."Ragdoll_IaC_Project" OWNER TO admin; -- -- Name: Ragdoll_IaC_Project_Project_ID_seq; Type: SEQUENCE; Schema: public; Owner: admin -- ALTER TABLE public."Ragdoll_IaC_Project" ALTER COLUMN "Project_ID" ADD GENERATED BY DEFAULT AS IDENTITY ( SEQUENCE NAME public."Ragdoll_IaC_Project_Project_ID_seq" START WITH 1 INCREMENT BY 1 NO MINVALUE NO MAXVALUE CACHE 1 ); -- -- Data for Name: Ragdoll_IaC_Application; Type: TABLE DATA; Schema: public; Owner: admin -- COPY public."Ragdoll_IaC_Application" ("Application_ID", "Project_ID", "Application_Name", "Application_Created_At") FROM stdin; 1 2 SYSTEM 2025-09-30 11:52:40.190159+08 2 1 SQL 2025-09-30 12:46:56.744624+08 3 6 PostgreSQL 2025-09-30 12:48:25.533173+08 11 6 FormulaAES 2025-09-30 17:36:06.038905+08 \. -- -- Data for Name: Ragdoll_IaC_Code; Type: TABLE DATA; Schema: public; Owner: admin -- COPY public."Ragdoll_IaC_Code" ("Code_ID", "Application_ID", "Code_Content", "Code_Created_At") FROM stdin; 5 3 -- 连接 postgres 后执行本脚本(可保存为 create_gemma_iac.sql 并 \\i 执行)\r\nCREATE DATABASE "Gemma_IaC";\r\n\\connect "Gemma_IaC";\r\n\r\n-- 1) 项目表\r\nCREATE TABLE "Ragdoll_IaC_Project" (\r\n "Project_ID" INTEGER GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,\r\n "Project_Name" VARCHAR(30) NOT NULL,\r\n "Project_Created_At" TIMESTAMP WITHOUT TIME ZONE DEFAULT CURRENT_TIMESTAMP\r\n);\r\n\r\n-- 2) 应用表\r\nCREATE TABLE "Ragdoll_IaC_Application" (\r\n "Application_ID" INTEGER GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,\r\n "Project_ID" INTEGER NOT NULL,\r\n "Application_Name" VARCHAR(255) NOT NULL,\r\n "Application_Created_At" TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP,\r\n FOREIGN KEY ("Project_ID")\r\n REFERENCES "Ragdoll_IaC_Project"("Project_ID")\r\n);\r\n\r\n-- 3) 代码表\r\nCREATE TABLE "Ragdoll_IaC_Code" (\r\n "Code_ID" INTEGER GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,\r\n "Application_ID" INTEGER NOT NULL,\r\n "Code_Content" TEXT NOT NULL,\r\n "Code_Created_At" TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP,\r\n FOREIGN KEY ("Application_ID")\r\n REFERENCES "Ragdoll_IaC_Application"("Application_ID")\r\n);\r\n\r\n-- 性能索引(PostgreSQL 不会自动为外键“引用端”建索引)\r\nCREATE INDEX ON "Ragdoll_IaC_Application" ("Project_ID");\r\nCREATE INDEX ON "Ragdoll_IaC_Code" ("Application_ID"); 2025-09-30 12:48:25.529257+08 6 11 DROP DATABASE IF EXISTS "FormulaAES";\r\nCREATE DATABASE "FormulaAES" WITH ENCODING 'UTF8' TEMPLATE template0;\r\n\r\n\\connect "FormulaAES"\r\n\r\nDROP TABLE IF EXISTS "FILE";\r\nDROP TABLE IF EXISTS "COMPONENT";\r\nDROP TABLE IF EXISTS "PROJECT";\r\nDROP TABLE IF EXISTS "REPOSITORY";\r\n\r\nCREATE TABLE "REPOSITORY" (\r\n "REPOSITORY_ID" INTEGER GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,\r\n "REPOSITORY_NAME" VARCHAR(100) NOT NULL,\r\n "CREATED_AT" TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP\r\n);\r\n\r\nCREATE TABLE "PROJECT" (\r\n "PROJECT_ID" INTEGER GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,\r\n "PROJECT_NAME" VARCHAR(100) NOT NULL,\r\n "REPOSITORY_ID" INTEGER NOT NULL,\r\n "CREATED_AT" TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP,\r\n CONSTRAINT "FK_PROJECT_REPOSITORY"\r\n FOREIGN KEY ("REPOSITORY_ID") REFERENCES "REPOSITORY" ("REPOSITORY_ID")\r\n);\r\n\r\nCREATE INDEX "IDX_PROJECT_REPOSITORY_ID" ON "PROJECT" ("REPOSITORY_ID");\r\n\r\nCREATE TABLE "COMPONENT" (\r\n "COMPONENT_ID" INTEGER GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,\r\n "COMPONENT_NAME" VARCHAR(100) NOT NULL,\r\n "PROJECT_ID" INTEGER NOT NULL,\r\n "CREATED_AT" TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP,\r\n CONSTRAINT "FK_COMPONENT_PROJECT"\r\n FOREIGN KEY ("PROJECT_ID") REFERENCES "PROJECT" ("PROJECT_ID")\r\n);\r\n\r\nCREATE INDEX "IDX_COMPONENT_PROJECT_ID" ON "COMPONENT" ("PROJECT_ID");\r\n\r\nCREATE TABLE "FILE" (\r\n "FILE_ID" INTEGER GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,\r\n "FILE_NAME" VARCHAR(100) NOT NULL,\r\n "COMPONENT_ID" INTEGER NOT NULL,\r\n "CODE" BYTEA NOT NULL,\r\n "CREATED_AT" TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP,\r\n CONSTRAINT "FK_FILE_COMPONENT"\r\n FOREIGN KEY ("COMPONENT_ID") REFERENCES "COMPONENT" ("COMPONENT_ID")\r\n);\r\n\r\nCREATE INDEX "IDX_FILE_COMPONENT_ID" ON "FILE" ("COMPONENT_ID");\r\n\r\nALTER TABLE "FILE" ALTER COLUMN "CODE" SET STORAGE EXTERNAL;\r\n 2025-09-30 15:04:55.133183+08 7 11 \\l\r\n\\c "FormulaAES"\r\n\\conninfo\r\n 2025-09-30 15:05:04.575845+08 8 11 DROP TABLE IF EXISTS "FILE";\r\nDROP TABLE IF EXISTS "COMPONENT";\r\nDROP TABLE IF EXISTS "PROJECT";\r\nDROP TABLE IF EXISTS "REPOSITORY";\r\n\r\nCREATE TABLE "REPOSITORY" (\r\n "REPOSITORY_ID" INTEGER GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,\r\n "REPOSITORY_NAME" VARCHAR(100) NOT NULL,\r\n "CREATED_AT" TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP\r\n);\r\n\r\nCREATE TABLE "PROJECT" (\r\n "PROJECT_ID" INTEGER GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,\r\n "PROJECT_NAME" VARCHAR(100) NOT NULL,\r\n "REPOSITORY_ID" INTEGER NOT NULL,\r\n "CREATED_AT" TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP,\r\n CONSTRAINT "FK_PROJECT_REPOSITORY"\r\n FOREIGN KEY ("REPOSITORY_ID") REFERENCES "REPOSITORY" ("REPOSITORY_ID")\r\n);\r\n\r\nCREATE INDEX "IDX_PROJECT_REPOSITORY_ID" ON "PROJECT" ("REPOSITORY_ID");\r\n\r\nCREATE TABLE "COMPONENT" (\r\n "COMPONENT_ID" INTEGER GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,\r\n "COMPONENT_NAME" VARCHAR(100) NOT NULL,\r\n "PROJECT_ID" INTEGER NOT NULL,\r\n "CREATED_AT" TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP,\r\n CONSTRAINT "FK_COMPONENT_PROJECT"\r\n FOREIGN KEY ("PROJECT_ID") REFERENCES "PROJECT" ("PROJECT_ID")\r\n);\r\n\r\nCREATE INDEX "IDX_COMPONENT_PROJECT_ID" ON "COMPONENT" ("PROJECT_ID");\r\n\r\nCREATE TABLE "FILE" (\r\n "FILE_ID" INTEGER GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,\r\n "FILE_NAME" VARCHAR(100) NOT NULL,\r\n "COMPONENT_ID" INTEGER NOT NULL,\r\n "CODE" BYTEA NOT NULL,\r\n "CREATED_AT" TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP,\r\n CONSTRAINT "FK_FILE_COMPONENT"\r\n FOREIGN KEY ("COMPONENT_ID") REFERENCES "COMPONENT" ("COMPONENT_ID")\r\n);\r\n\r\nCREATE INDEX "IDX_FILE_COMPONENT_ID" ON "FILE" ("COMPONENT_ID");\r\n\r\nALTER TABLE "FILE" ALTER COLUMN "CODE" SET STORAGE EXTERNAL;\r\n 2025-09-30 15:05:08.830318+08 9 11 PGUSER=admin PGPASSWORD='Adeste' PGHOST=/var/run/postgresql pg_dumpall -f ./full_cluster_$(date +%F_%H%M).sql 2025-09-30 15:14:20.541125+08 10 11 psql -f /backup/full_cluster_YYYY-MM-DD_HHMM.sql\r\n 2025-09-30 15:16:18.911903+08 11 11 runuser -u postgres -- psql -v ON_ERROR_STOP=0 -d postgres -f ./full_cluster_2025-09-30_1513.sql 2025-09-30 17:19:48.466037+08 12 11 awk 'BEGIN{IGNORECASE=0}\r\n /^[[:space:]]*(DROP ROLE IF EXISTS|CREATE ROLE|ALTER ROLE|COMMENT ON ROLE)[[:space:]]+(postgres|admin)\\b/ {next}\r\n {print}\r\n' ./full_cluster_clean_2025-09-30_1722.sql > ./full_cluster_clean_2025-09-30_1722.sanitized.sql\r\n 2025-09-30 17:36:00.508802+08 13 11 runuser -u postgres -- psql -h /var/run/postgresql -tAc "SELECT 1 FROM pg_roles WHERE rolname='admin';" | grep -q 1 \\\r\n || runuser -u postgres -- psql -h /var/run/postgresql -d postgres \\\r\n -c "CREATE ROLE admin LOGIN SUPERUSER PASSWORD 'Adeste';"\r\n 2025-09-30 17:36:06.034556+08 \. -- -- Data for Name: Ragdoll_IaC_Project; Type: TABLE DATA; Schema: public; Owner: admin -- COPY public."Ragdoll_IaC_Project" ("Project_ID", "Project_Name", "Project_Created_At") FROM stdin; 1 PostgreSQL 2025-09-30 11:21:55.053779 2 Debian 2025-09-30 11:22:06.923763 3 OpenAI 2025-09-30 11:22:11.781368 4 Google 2025-09-30 11:22:14.341664 5 Microsoft 2025-09-30 11:22:27.124468 6 Bedrock 2025-09-30 12:47:13.257216 \. -- -- Name: Ragdoll_IaC_Application_Application_ID_seq; Type: SEQUENCE SET; Schema: public; Owner: admin -- SELECT pg_catalog.setval('public."Ragdoll_IaC_Application_Application_ID_seq"', 11, true); -- -- Name: Ragdoll_IaC_Code_Code_ID_seq; Type: SEQUENCE SET; Schema: public; Owner: admin -- SELECT pg_catalog.setval('public."Ragdoll_IaC_Code_Code_ID_seq"', 13, true); -- -- Name: Ragdoll_IaC_Project_Project_ID_seq; Type: SEQUENCE SET; Schema: public; Owner: admin -- SELECT pg_catalog.setval('public."Ragdoll_IaC_Project_Project_ID_seq"', 6, true); -- -- Name: Ragdoll_IaC_Application Ragdoll_IaC_Application_pkey; Type: CONSTRAINT; Schema: public; Owner: admin -- ALTER TABLE ONLY public."Ragdoll_IaC_Application" ADD CONSTRAINT "Ragdoll_IaC_Application_pkey" PRIMARY KEY ("Application_ID"); -- -- Name: Ragdoll_IaC_Code Ragdoll_IaC_Code_pkey; Type: CONSTRAINT; Schema: public; Owner: admin -- ALTER TABLE ONLY public."Ragdoll_IaC_Code" ADD CONSTRAINT "Ragdoll_IaC_Code_pkey" PRIMARY KEY ("Code_ID"); -- -- Name: Ragdoll_IaC_Project Ragdoll_IaC_Project_pkey; Type: CONSTRAINT; Schema: public; Owner: admin -- ALTER TABLE ONLY public."Ragdoll_IaC_Project" ADD CONSTRAINT "Ragdoll_IaC_Project_pkey" PRIMARY KEY ("Project_ID"); -- -- Name: Ragdoll_IaC_Application_Project_ID_idx; Type: INDEX; Schema: public; Owner: admin -- CREATE INDEX "Ragdoll_IaC_Application_Project_ID_idx" ON public."Ragdoll_IaC_Application" USING btree ("Project_ID"); -- -- Name: Ragdoll_IaC_Code_Application_ID_idx; Type: INDEX; Schema: public; Owner: admin -- CREATE INDEX "Ragdoll_IaC_Code_Application_ID_idx" ON public."Ragdoll_IaC_Code" USING btree ("Application_ID"); -- -- Name: Ragdoll_IaC_Application Ragdoll_IaC_Application_Project_ID_fkey; Type: FK CONSTRAINT; Schema: public; Owner: admin -- ALTER TABLE ONLY public."Ragdoll_IaC_Application" ADD CONSTRAINT "Ragdoll_IaC_Application_Project_ID_fkey" FOREIGN KEY ("Project_ID") REFERENCES public."Ragdoll_IaC_Project"("Project_ID"); -- -- Name: Ragdoll_IaC_Code Ragdoll_IaC_Code_Application_ID_fkey; Type: FK CONSTRAINT; Schema: public; Owner: admin -- ALTER TABLE ONLY public."Ragdoll_IaC_Code" ADD CONSTRAINT "Ragdoll_IaC_Code_Application_ID_fkey" FOREIGN KEY ("Application_ID") REFERENCES public."Ragdoll_IaC_Application"("Application_ID"); -- -- PostgreSQL database dump complete -- \unrestrict qU3c6HEgrcaLL1aostiTuSJU2FZlx4mODL2Q4indIAkmWOqWtzr9RjQzqfi0SUF -- -- Database "postgres" dump -- -- -- PostgreSQL database dump -- \restrict 7ThWc1OPjB8zojZ6G8ZfDSRWRfbhqGMDXEGlmKmYgYHP6hgS98s2mL1LpmEBvuD -- Dumped from database version 17.6 (Debian 17.6-2.pgdg12+1) -- Dumped by pg_dump version 17.6 (Debian 17.6-2.pgdg12+1) SET statement_timeout = 0; SET lock_timeout = 0; SET idle_in_transaction_session_timeout = 0; SET transaction_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; DROP DATABASE postgres; -- -- Name: postgres; Type: DATABASE; Schema: -; Owner: postgres -- CREATE DATABASE postgres WITH TEMPLATE = template0 ENCODING = 'UTF8' LOCALE_PROVIDER = libc LOCALE = 'C.UTF-8'; ALTER DATABASE postgres OWNER TO postgres; \unrestrict 7ThWc1OPjB8zojZ6G8ZfDSRWRfbhqGMDXEGlmKmYgYHP6hgS98s2mL1LpmEBvuD \connect postgres \restrict 7ThWc1OPjB8zojZ6G8ZfDSRWRfbhqGMDXEGlmKmYgYHP6hgS98s2mL1LpmEBvuD SET statement_timeout = 0; SET lock_timeout = 0; SET idle_in_transaction_session_timeout = 0; SET transaction_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: DATABASE postgres; Type: COMMENT; Schema: -; Owner: postgres -- COMMENT ON DATABASE postgres IS 'default administrative connection database'; -- -- PostgreSQL database dump complete -- \unrestrict 7ThWc1OPjB8zojZ6G8ZfDSRWRfbhqGMDXEGlmKmYgYHP6hgS98s2mL1LpmEBvuD -- -- PostgreSQL database cluster dump complete --