Merge ~pappacena/launchpad:merge-db-stable into launchpad:master

Proposed by Thiago F. Pappacena
Status: Merged
Approved by: Thiago F. Pappacena
Approved revision: 2c7066f855f7d56d8bda78be978b4cb3dce90745
Merge reported by: Otto Co-Pilot
Merged at revision: not available
Proposed branch: ~pappacena/launchpad:merge-db-stable
Merge into: launchpad:master
Diff against target: 75 lines (+63/-0)
2 files modified
database/schema/patch-2210-08-8.sql (+48/-0)
database/schema/patch-2210-16-0.sql (+15/-0)
Reviewer Review Type Date Requested Status
Thiago F. Pappacena (community) Approve
Review via email: mp+385500@code.launchpad.net

Commit message

Merge db-stable 962c4aa24c8006b0f8d154b4642df4f20e725180 (GitRepository.oci_project, OCIProject.project and OCIFile.date_last_used new columns)

To post a comment you must log in.
Revision history for this message
Thiago F. Pappacena (pappacena) wrote :

Deployed to the production database today.

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1diff --git a/database/schema/patch-2210-08-8.sql b/database/schema/patch-2210-08-8.sql
2new file mode 100644
3index 0000000..5a20873
4--- /dev/null
5+++ b/database/schema/patch-2210-08-8.sql
6@@ -0,0 +1,48 @@
7+-- Copyright 2020 Canonical Ltd. This software is licensed under the
8+-- GNU Affero General Public License version 3 (see the file LICENSE).
9+
10+SET client_min_messages=ERROR;
11+
12+ALTER TABLE OCIProject ADD COLUMN project integer REFERENCES product;
13+
14+ALTER TABLE OCIProject
15+ ALTER COLUMN distribution
16+ DROP NOT NULL,
17+ ADD CONSTRAINT one_container
18+ CHECK ((project IS NULL) != (distribution IS NULL));
19+
20+COMMENT ON COLUMN OCIProject.project
21+ IS 'The project that this OCI project is associated with.';
22+
23+CREATE UNIQUE INDEX ociproject__project__ociprojectname__key
24+ ON OCIProject (project, ociprojectname) WHERE project IS NOT NULL;
25+
26+
27+-- Alter GitRepository table to allow oci_project.
28+COMMENT ON COLUMN GitRepository.ociprojectname
29+ IS 'Deprecated column. Check one_container and default_implies_target constraints before removing.';
30+
31+ALTER TABLE GitRepository
32+ ADD COLUMN oci_project integer REFERENCES ociproject,
33+ DROP CONSTRAINT one_container,
34+ ADD CONSTRAINT one_container CHECK (
35+ -- Distribution + OCIProjectName, to keep compatibility temporarily
36+ (project IS NULL AND distribution IS NOT NULL AND sourcepackagename IS NULL AND ociprojectname IS NOT NULL) OR
37+ -- Project
38+ (project IS NOT NULL AND distribution IS NULL AND sourcepackagename IS NULL AND oci_project IS NULL AND ociprojectname IS NULL) OR
39+ -- Distribution source package
40+ (project IS NULL AND distribution IS NOT NULL AND sourcepackagename IS NOT NULL AND oci_project IS NULL AND ociprojectname IS NULL) OR
41+ -- OCI project
42+ (project IS NULL AND distribution IS NULL AND sourcepackagename IS NULL AND oci_project IS NOT NULL AND ociprojectname IS NULL) OR
43+ -- Personal
44+ (project IS NULL AND distribution IS NULL AND sourcepackagename IS NULL AND oci_project IS NULL))
45+ NOT VALID,
46+ DROP CONSTRAINT default_implies_target,
47+ ADD CONSTRAINT default_implies_target CHECK (
48+ project IS NOT NULL
49+ OR distribution IS NOT NULL
50+ OR oci_project IS NOT NULL
51+ OR (NOT owner_default AND NOT target_default))
52+ NOT VALID;
53+
54+INSERT INTO LaunchpadDatabaseRevision VALUES (2210, 8, 8);
55diff --git a/database/schema/patch-2210-16-0.sql b/database/schema/patch-2210-16-0.sql
56new file mode 100644
57index 0000000..2debdba
58--- /dev/null
59+++ b/database/schema/patch-2210-16-0.sql
60@@ -0,0 +1,15 @@
61+-- Copyright 2020 Canonical Ltd. This software is licensed under the
62+-- GNU Affero General Public License version 3 (see the file LICENSE).
63+
64+SET client_min_messages=ERROR;
65+
66+ALTER TABLE OCIFile
67+ADD COLUMN date_last_used timestamp without time zone
68+ DEFAULT (CURRENT_TIMESTAMP AT TIME ZONE 'UTC') NOT NULL;
69+
70+COMMENT ON COLUMN OCIFile.date_last_used IS 'The datetime this file was last used in a build.';
71+
72+CREATE INDEX ocifile__date_last_used__idx
73+ ON OCIFile (date_last_used);
74+
75+INSERT INTO LaunchpadDatabaseRevision VALUES (2210, 16, 0);