File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -42,4 +42,47 @@ CREATE TRIGGER update_modified BEFORE UPDATE ON model.rights_holder_file FOR EAC
4242ALTER TABLE IF EXISTS model .rights_holder_file OWNER to openatlas;
4343
4444
45+ DO $$
46+ BEGIN
47+ IF NOT EXISTS (SELECT 1 FROM pg_constraint WHERE conname = ' uq_rights_holder_name' ) THEN
48+ ALTER TABLE model .rights_holder ADD CONSTRAINT uq_rights_holder_name UNIQUE (name);
49+ END IF;
50+ END $$;
51+
52+
53+ INSERT INTO model .rights_holder (name, class)
54+ SELECT DISTINCT TRIM (name), ' person'
55+ FROM (
56+ SELECT creator AS name FROM model .file_info WHERE creator IS NOT NULL
57+ UNION
58+ SELECT license_holder AS name FROM model .file_info WHERE license_holder IS NOT NULL
59+ ) AS all_names
60+ WHERE TRIM (name) <> ' '
61+ ON CONFLICT (name) DO NOTHING;
62+
63+
64+ INSERT INTO model .rights_holder_file (entity_id, rights_holder_id, role)
65+ SELECT
66+ f .entity_id ,
67+ r .id ,
68+ ' creator'
69+ FROM model .file_info f
70+ JOIN model .rights_holder r ON TRIM (f .creator ) = r .name
71+ WHERE f .creator IS NOT NULL AND TRIM (f .creator ) <> ' ' ;
72+
73+
74+ INSERT INTO model .rights_holder_file (entity_id, rights_holder_id, role)
75+ SELECT
76+ f .entity_id ,
77+ r .id ,
78+ ' license_holder'
79+ FROM model .file_info f
80+ JOIN model .rights_holder r ON TRIM (f .license_holder ) = r .name
81+ WHERE f .license_holder IS NOT NULL AND TRIM (f .license_holder ) <> ' ' ;
82+
83+
84+ ALTER TABLE model .file_info
85+ DROP COLUMN creator,
86+ DROP COLUMN license_holder CASCADE;
87+
4588END;
You can’t perform that action at this time.
0 commit comments