Get the translated package synopsis and descriptions into the database
Signed-off-by: Christopher Baines <mail@cbaines.net>
This commit is contained in:
parent
308e553b11
commit
8d9a4d105c
6 changed files with 282 additions and 15 deletions
|
|
@ -0,0 +1,69 @@
|
|||
-- Deploy guix-data-service:translations_for_package_synopsis_and_descriptions to pg
|
||||
|
||||
BEGIN;
|
||||
|
||||
CREATE TABLE package_descriptions (
|
||||
id integer PRIMARY KEY GENERATED ALWAYS AS IDENTITY,
|
||||
locale varchar NOT NULL,
|
||||
description varchar NOT NULL,
|
||||
UNIQUE (locale, description)
|
||||
);
|
||||
|
||||
CREATE TABLE package_description_sets (
|
||||
id integer PRIMARY KEY GENERATED ALWAYS AS IDENTITY,
|
||||
description_ids integer[] NOT NULL,
|
||||
UNIQUE (description_ids)
|
||||
);
|
||||
|
||||
CREATE TABLE package_synopsis (
|
||||
id integer PRIMARY KEY GENERATED ALWAYS AS IDENTITY,
|
||||
locale varchar NOT NULL,
|
||||
synopsis varchar NOT NULL,
|
||||
UNIQUE (locale, synopsis)
|
||||
);
|
||||
|
||||
CREATE TABLE package_synopsis_sets (
|
||||
id integer PRIMARY KEY GENERATED ALWAYS AS IDENTITY,
|
||||
synopsis_ids integer[] NOT NULL,
|
||||
UNIQUE (synopsis_ids)
|
||||
);
|
||||
|
||||
ALTER TABLE package_metadata ADD COLUMN package_description_set_id integer REFERENCES package_description_sets (id);
|
||||
|
||||
ALTER TABLE package_metadata ADD COLUMN package_synopsis_set_id integer REFERENCES package_synopsis_sets (id);
|
||||
|
||||
INSERT INTO package_descriptions (locale, description)
|
||||
SELECT DISTINCT 'en_US.utf8', description
|
||||
FROM package_metadata;
|
||||
|
||||
INSERT INTO package_description_sets (description_ids)
|
||||
SELECT ARRAY[id] FROM package_descriptions;
|
||||
|
||||
INSERT INTO package_synopsis (locale, synopsis)
|
||||
SELECT DISTINCT 'en_US.utf8', synopsis
|
||||
FROM package_metadata;
|
||||
|
||||
INSERT INTO package_synopsis_sets (synopsis_ids)
|
||||
SELECT ARRAY[id] FROM package_synopsis;
|
||||
|
||||
UPDATE package_metadata
|
||||
SET package_description_set_id =
|
||||
package_description_sets.id
|
||||
FROM package_description_sets
|
||||
INNER JOIN package_descriptions
|
||||
ON package_description_sets.description_ids[1] = package_descriptions.id
|
||||
WHERE package_descriptions.description = package_metadata.description;
|
||||
|
||||
UPDATE package_metadata
|
||||
SET package_synopsis_set_id =
|
||||
package_synopsis_sets.id
|
||||
FROM package_synopsis_sets
|
||||
INNER JOIN package_synopsis
|
||||
ON package_synopsis_sets.synopsis_ids[1] = package_synopsis.id
|
||||
WHERE package_synopsis.synopsis = package_metadata.synopsis;
|
||||
|
||||
ALTER TABLE package_metadata DROP COLUMN description;
|
||||
|
||||
ALTER TABLE package_metadata DROP COLUMN synopsis;
|
||||
|
||||
COMMIT;
|
||||
Loading…
Add table
Add a link
Reference in a new issue