Skip to content

Commit efb9688

Browse files
SQL transfer old data and remove columns of file_info
1 parent 966ec86 commit efb9688

1 file changed

Lines changed: 43 additions & 0 deletions

File tree

install/upgrade/9.2.0.sql

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,4 +42,47 @@ CREATE TRIGGER update_modified BEFORE UPDATE ON model.rights_holder_file FOR EAC
4242
ALTER 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+
4588
END;

0 commit comments

Comments
 (0)