Initial commit
This commit is contained in:
@@ -0,0 +1,73 @@
|
||||
-- Script to set portal for importing dictionaries from Termania (Amebis)
|
||||
-- Script inserts linked_portal, linked_dictionary & dictionary records.
|
||||
-- After running this script the batch job batch_update_linked.js will be importing from Termania.
|
||||
|
||||
do $$
|
||||
DECLARE
|
||||
linkedTermaniaId INT;
|
||||
linkedDictId INT;
|
||||
rsdoDictId INT;
|
||||
zd RECORD;
|
||||
author VARCHAR[] := ARRAY['ZRC'];
|
||||
|
||||
BEGIN
|
||||
-- if portal entry doesnt exist for ZrcTerm create one and remember its ID
|
||||
SELECT id INTO linkedTermaniaId FROM public.linked_portal WHERE code='AT';
|
||||
IF linkedTermaniaId IS NULL THEN
|
||||
INSERT INTO public.linked_portal(
|
||||
is_enabled, time_last_synced, code, name, url_update/*, url_index*/)
|
||||
VALUES (true, NULL, 'AT', 'Amebis/Termania', 'https://api-demo.termania.net/rsdo/1.0/dictionaries/$SOURCE_ID/entries?lastSynced=$SINCE'/*, 'https://api-demo.termania.net/rsdo/1.0/dictionaries'*/)
|
||||
RETURNING id into linkedTermaniaId;
|
||||
END IF;
|
||||
RAISE NOTICE 'Termania linked portal id = %', linkedTermaniaId;
|
||||
|
||||
-- for each ZrcTerm dictionary create an enttry in dictionariies and one in linked dictionaries
|
||||
-- we need to remeber both ID's
|
||||
-- we create a temporary table for looping through ZrcTem dictionaries
|
||||
DROP TABLE IF EXISTS importDict;
|
||||
CREATE TEMP TABLE importDict(
|
||||
source_id VARCHAR(50),
|
||||
code VARCHAR(50),
|
||||
description VARCHAR,
|
||||
author VARCHAR,
|
||||
domain_udk_code VARCHAR,
|
||||
CONSTRAINT importDict_pkey PRIMARY KEY (source_id)
|
||||
);
|
||||
INSERT INTO importDict (source_id, code, description, author, domain_udk_code) VALUES
|
||||
('OBRSLO', 'ATOBRSLO', 'Vojaški slovar študentov obramboslovja', 'Fakulteta za družbene vede', '355'),
|
||||
('1000102', 'AT1000102', 'Angleško-slovenski astronomski slovar', 'Raziskovalni program Astrofizika in fizika atmosfere na Fakulteti za matematiko in fiziko Univerze v Ljubljani ', '52'),
|
||||
('1000126', 'AT1000126', 'Angleško-slovenski glosar s področja konjeništva', 'Sintia Marič', '796/799'),
|
||||
('1000268', 'AT1000268', 'Terminološki slovar elektronskega kajenja ', 'Žiga Krajnc', '');
|
||||
|
||||
FOR zd IN SELECT z.*, d.id AS domain_id
|
||||
FROM importDict AS z
|
||||
LEFT JOIN public.domain_primary AS d ON d.udk_code = z.domain_udk_code
|
||||
LOOP
|
||||
IF zd.domain_id IS NULL THEN
|
||||
RAISE NOTICE 'domain not found for %', zd.source_id;
|
||||
CONTINUE WHEN TRUE;
|
||||
END IF;
|
||||
SELECT id INTO linkedDictId FROM public.linked_dictionary
|
||||
WHERE source_dictionary_id=zd.source_id AND linked_portal_id = linkedTermaniaId;
|
||||
IF linkedDictId IS NULL THEN
|
||||
RAISE NOTICE 'inserting %, domain = %', zd.source_id, zd.domain_id;
|
||||
--CONTINUE WHEN TRUE;
|
||||
INSERT INTO public.dictionary(
|
||||
name_sl, name_sl_short, name_en,
|
||||
author, issn, domain_primary_id, status
|
||||
)
|
||||
VALUES (
|
||||
zd.description, zd.code, zd.description,
|
||||
ARRAY[zd.author], null, zd.domain_id, 'published'
|
||||
) RETURNING id into rsdoDictId;
|
||||
INSERT INTO public.linked_dictionary(
|
||||
name, linked_portal_id, target_dictionary_id, is_enabled, time_last_synced, source_dictionary_id)
|
||||
VALUES (zd.description, linkedTermaniaId, rsdoDictId, TRUE, NULL, zd.source_id);
|
||||
COMMIT;
|
||||
ELSE
|
||||
RAISE NOTICE 'updating %', zd.source_id;
|
||||
CONTINUE WHEN TRUE;
|
||||
END IF;
|
||||
END LOOP;
|
||||
DROP TABLE IF EXISTS importDict;
|
||||
end; $$
|
||||
@@ -0,0 +1,83 @@
|
||||
-- Script to set portal for importing dictionaries from Terminologišče (ZRC-SAZU)
|
||||
-- Script inserts linked_portal, linked_dictionary & dictionary records.
|
||||
-- After running this script the batch job batch_update_linked.js will be importing from Terminologišče.
|
||||
|
||||
do $$
|
||||
DECLARE
|
||||
linkedZrcTermId INT;
|
||||
linkedDictId INT;
|
||||
rsdoDictId INT;
|
||||
zd RECORD;
|
||||
author VARCHAR[] := ARRAY['ZRC'];
|
||||
|
||||
BEGIN
|
||||
-- if portal entry doesnt exist for ZrcTerm create one and remember its ID
|
||||
SELECT id INTO linkedZrcTermId FROM public.linked_portal WHERE code='ZT';
|
||||
IF linkedZrcTermId IS NULL THEN
|
||||
INSERT INTO public.linked_portal(
|
||||
is_enabled, time_last_synced, code, name, url_update/*, url_index*/)
|
||||
VALUES (true, NULL, 'ZT', 'ZRC-SAZU/Terminologišče', 'https://iskalnik4ts.zrc-sazu.si/rsdo/updates?dictionaryId=$SOURCE_ID&since=$SINCE'/*, 'https://iskalnik4ts.zrc-sazu.si/rsdo/dictionaries'*/)
|
||||
RETURNING id into linkedZrcTermId;
|
||||
END IF;
|
||||
RAISE NOTICE 'ZrcTerm linked portal id = %', linkedZrcTermId;
|
||||
|
||||
-- for each ZrcTerm dictionary create an enttry in dictionariies and one in linked dictionaries
|
||||
-- we need to remeber both ID's
|
||||
-- we create a temporary table for looping through ZrcTem dictionaries
|
||||
DROP TABLE IF EXISTS zrcTermDic;
|
||||
CREATE TEMP TABLE zrcTermDic(
|
||||
source_id VARCHAR(50),
|
||||
code VARCHAR(50),
|
||||
description VARCHAR,
|
||||
domain_udk_code VARCHAR,
|
||||
CONSTRAINT dictionary_pkey PRIMARY KEY (source_id)
|
||||
);
|
||||
INSERT INTO zrcTermDic (source_id, code, description, domain_udk_code) VALUES
|
||||
('farmacija','ZTFARMAC','Farmacevtski terminološki slovar ZRC-SAZU/Terminologišče', '61'),
|
||||
('betonske_konstrukcije','ZTBETON','Terminološki slovar betonskih konstrukcij ZRC-SAZU/Terminologišče', '624'),
|
||||
('pravo','ZTPRAVO','Pravni terminološki slovar ZRC-SAZU/Terminologišče', '34'),
|
||||
('avtomatika','ZTAVTOMAT','Terminološki slovar avtomatike ZRC-SAZU/Terminologišče', '621.3'),
|
||||
('urbanizem','ZTURBAN','Urbanistični terminološki slovar ZRC-SAZU/Terminologišče', '711'),
|
||||
('umetnost','ZTUMETN','Terminološki slovar uporabne umetnosti – pohištvo, ure, orožje ZRC-SAZU/Terminologišče', '93/94'),
|
||||
('tolkala','ZTTOLKAL','Tolkalni terminološki slovar ZRC-SAZU/Terminologišče', '93/94'),
|
||||
('botanika','ZTBOTAN','Botanični terminološki slovar ZRC-SAZU/Terminologišče', '58'),
|
||||
('smucanje','ZTSMUČ','Slovenski smučarski slovar ZRC-SAZU/Terminologišče', '796/799'),
|
||||
('gledalisce','ZTGLED','Gledališki terminološki slovar ZRC-SAZU/Terminologišče', '93/94'),
|
||||
('cebelarstvo','ZTCEBEL','Čebelarski terminološki slovar ZRC-SAZU/Terminologišče', '59'),
|
||||
('geologija','ZTGEOLOG','Geološki terminološki slovar ZRC-SAZU/Terminologišče', '55'),
|
||||
('gemologija','ZTGEMOLOG','Gemološki terminološki slovar ZRC-SAZU/Terminologišče', '622'),
|
||||
('geografija','ZTGEOGRAF','Geografski terminološki slovar ZRC-SAZU/Terminologišče', '338'),
|
||||
('planinstvo','ZTPLANIN','Planinski terminološki slovar ZRC-SAZU/Terminologišče', '796/799');
|
||||
|
||||
FOR zd IN SELECT z.*, d.id AS domain_id
|
||||
FROM zrcTermDic AS z
|
||||
LEFT JOIN public.domain_primary AS d ON d.udk_code = z.domain_udk_code
|
||||
LOOP
|
||||
IF zd.domain_id IS NULL THEN
|
||||
RAISE NOTICE 'domain not found for %', zd.source_id;
|
||||
CONTINUE WHEN TRUE;
|
||||
END IF;
|
||||
SELECT id INTO linkedDictId FROM public.linked_dictionary
|
||||
WHERE source_dictionary_id=zd.source_id AND linked_portal_id = linkedZrcTermId;
|
||||
IF linkedDictId IS NULL THEN
|
||||
RAISE NOTICE 'inserting %, domain = %', zd.source_id, zd.domain_id;
|
||||
--CONTINUE WHEN TRUE;
|
||||
INSERT INTO public.dictionary(
|
||||
name_sl, name_sl_short, name_en,
|
||||
author, issn, domain_primary_id, status
|
||||
)
|
||||
VALUES (
|
||||
zd.description, zd.code, zd.description,
|
||||
author, null, zd.domain_id, 'published'
|
||||
) RETURNING id into rsdoDictId;
|
||||
INSERT INTO public.linked_dictionary(
|
||||
name, linked_portal_id, target_dictionary_id, is_enabled, time_last_synced, source_dictionary_id)
|
||||
VALUES (zd.description, linkedZrcTermId, rsdoDictId, TRUE, NULL, zd.source_id);
|
||||
COMMIT;
|
||||
ELSE
|
||||
RAISE NOTICE 'updating %', zd.source_id;
|
||||
CONTINUE WHEN TRUE;
|
||||
END IF;
|
||||
END LOOP;
|
||||
DROP TABLE IF EXISTS zrcTermDic;
|
||||
end; $$
|
||||
Reference in New Issue
Block a user