@@ -27,28 +27,55 @@ SELECT pg_catalog.set_config('search_path', 'public', false);
27
27
-- Seed Data for Name: space_resources; Type: TABLE DATA; Schema: public; Owner: csghub
28
28
--
29
29
30
- WITH selected_cluster AS (
31
- SELECT
32
- cluster_id
33
- FROM
34
- public .cluster_infos
35
- LIMIT 1 )
36
- INSERT INTO public .space_resources (id, name, resources, cluster_id)
37
- VALUES
38
- (1 , ' CPU basic · 0.5 vCPU · 1 GB' , ' { "cpu": { "type": "Intel", "num": "0.5" }, "memory": "1Gi" }' , ( SELECT cluster_id FROM selected_cluster)),
39
- (2 , ' CPU basic · 2 vCPU · 4 GB' , ' { "cpu": { "type": "Intel", "num": "2" }, "memory": "4Gi" }' , ( SELECT cluster_id FROM selected_cluster))
30
+ INSERT INTO public .space_resources (id, name, resources, cluster_id)
31
+ SELECT
32
+ 1 ,
33
+ ' CPU basic · 0.5 vCPU · 1 GB' ,
34
+ ' { "cpu": { "type": "Intel", "num": "0.5" }, "memory": "1Gi" }' ,
35
+ COALESCE((SELECT cluster_id FROM public .cluster_infos LIMIT 1 ), ' ' )
36
+ UNION ALL
37
+ SELECT
38
+ 2 ,
39
+ ' CPU basic · 2 vCPU · 4 GB' ,
40
+ ' { "cpu": { "type": "Intel", "num": "2" }, "memory": "4Gi" }' ,
41
+ COALESCE((SELECT cluster_id FROM public .cluster_infos LIMIT 1 ), ' ' )
40
42
ON CONFLICT (id)
41
- DO UPDATE SET
42
- name = EXCLUDED .name ,
43
- resources = EXCLUDED .resources ,
44
- cluster_id = EXCLUDED .cluster_id ;
43
+ DO UPDATE SET
44
+ name = EXCLUDED .name ,
45
+ resources = EXCLUDED .resources ,
46
+ cluster_id = CASE
47
+ WHEN EXCLUDED .cluster_id != ' ' THEN EXCLUDED .cluster_id
48
+ ELSE space_resources .cluster_id
49
+ END;
45
50
46
51
--
47
- -- Name: space_resources_id_seq; Type: SEQUENCE SET; Schema: public; Owner: csghub
52
+ -- Create Trigger Function
48
53
--
54
+ CREATE OR REPLACE FUNCTION update_space_resources_cluster_id ()
55
+ RETURNS TRIGGER AS $$
56
+ BEGIN
57
+ -- Update cluster_id for id 1,2
58
+ UPDATE public .space_resources
59
+ SET cluster_id = NEW .cluster_id
60
+ WHERE cluster_id = ' '
61
+ AND id IN (1 , 2 );
49
62
50
- SELECT
51
- pg_catalog .setval (' public.space_resources_id_seq' , (
52
- SELECT
53
- MAX (id)
54
- FROM public .space_resources ), TRUE);
63
+ RETURN NEW;
64
+ END;
65
+ $$ LANGUAGE plpgsql;
66
+
67
+ --
68
+ -- Create Trigger
69
+ --
70
+ DROP TRIGGER IF EXISTS trg_update_space_resources ON public .cluster_infos ;
71
+
72
+ CREATE TRIGGER trg_update_space_resources
73
+ AFTER INSERT ON public .cluster_infos
74
+ FOR EACH ROW
75
+ EXECUTE FUNCTION update_space_resources_cluster_id();
76
+
77
+ --
78
+ -- Name: space_resources_id_seq; Type: SEQUENCE SET; Schema: public; Owner: csghub
79
+ --
80
+ SELECT pg_catalog .setval (' public.space_resources_id_seq' , (
81
+ SELECT MAX (id) FROM public .space_resources ), TRUE);
0 commit comments