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
diff --git a/database/schema/patch-2210-08-8.sql b/database/schema/patch-2210-08-8.sql
0new file mode 1006440new file mode 100644
index 0000000..5a20873
--- /dev/null
+++ b/database/schema/patch-2210-08-8.sql
@@ -0,0 +1,48 @@
1-- Copyright 2020 Canonical Ltd. This software is licensed under the
2-- GNU Affero General Public License version 3 (see the file LICENSE).
3
4SET client_min_messages=ERROR;
5
6ALTER TABLE OCIProject ADD COLUMN project integer REFERENCES product;
7
8ALTER TABLE OCIProject
9 ALTER COLUMN distribution
10 DROP NOT NULL,
11 ADD CONSTRAINT one_container
12 CHECK ((project IS NULL) != (distribution IS NULL));
13
14COMMENT ON COLUMN OCIProject.project
15 IS 'The project that this OCI project is associated with.';
16
17CREATE UNIQUE INDEX ociproject__project__ociprojectname__key
18 ON OCIProject (project, ociprojectname) WHERE project IS NOT NULL;
19
20
21-- Alter GitRepository table to allow oci_project.
22COMMENT ON COLUMN GitRepository.ociprojectname
23 IS 'Deprecated column. Check one_container and default_implies_target constraints before removing.';
24
25ALTER TABLE GitRepository
26 ADD COLUMN oci_project integer REFERENCES ociproject,
27 DROP CONSTRAINT one_container,
28 ADD CONSTRAINT one_container CHECK (
29 -- Distribution + OCIProjectName, to keep compatibility temporarily
30 (project IS NULL AND distribution IS NOT NULL AND sourcepackagename IS NULL AND ociprojectname IS NOT NULL) OR
31 -- Project
32 (project IS NOT NULL AND distribution IS NULL AND sourcepackagename IS NULL AND oci_project IS NULL AND ociprojectname IS NULL) OR
33 -- Distribution source package
34 (project IS NULL AND distribution IS NOT NULL AND sourcepackagename IS NOT NULL AND oci_project IS NULL AND ociprojectname IS NULL) OR
35 -- OCI project
36 (project IS NULL AND distribution IS NULL AND sourcepackagename IS NULL AND oci_project IS NOT NULL AND ociprojectname IS NULL) OR
37 -- Personal
38 (project IS NULL AND distribution IS NULL AND sourcepackagename IS NULL AND oci_project IS NULL))
39 NOT VALID,
40 DROP CONSTRAINT default_implies_target,
41 ADD CONSTRAINT default_implies_target CHECK (
42 project IS NOT NULL
43 OR distribution IS NOT NULL
44 OR oci_project IS NOT NULL
45 OR (NOT owner_default AND NOT target_default))
46 NOT VALID;
47
48INSERT INTO LaunchpadDatabaseRevision VALUES (2210, 8, 8);
diff --git a/database/schema/patch-2210-16-0.sql b/database/schema/patch-2210-16-0.sql
0new file mode 10064449new file mode 100644
index 0000000..2debdba
--- /dev/null
+++ b/database/schema/patch-2210-16-0.sql
@@ -0,0 +1,15 @@
1-- Copyright 2020 Canonical Ltd. This software is licensed under the
2-- GNU Affero General Public License version 3 (see the file LICENSE).
3
4SET client_min_messages=ERROR;
5
6ALTER TABLE OCIFile
7ADD COLUMN date_last_used timestamp without time zone
8 DEFAULT (CURRENT_TIMESTAMP AT TIME ZONE 'UTC') NOT NULL;
9
10COMMENT ON COLUMN OCIFile.date_last_used IS 'The datetime this file was last used in a build.';
11
12CREATE INDEX ocifile__date_last_used__idx
13 ON OCIFile (date_last_used);
14
15INSERT INTO LaunchpadDatabaseRevision VALUES (2210, 16, 0);