launchpad-reviewers team mailing list archive
-
launchpad-reviewers team
-
Mailing list archive
-
Message #30459
[Merge] ~ines-almeida/launchpad:project-tokens/db-patch into launchpad:master
Ines Almeida has proposed merging ~ines-almeida/launchpad:project-tokens/db-patch into launchpad:master.
Commit message:
DB patch: Add project to access token table
Requested reviews:
Launchpad code reviewers (launchpad-reviewers)
For more details, see:
https://code.launchpad.net/~ines-almeida/launchpad/+git/launchpad/+merge/451470
--
Your team Launchpad code reviewers is requested to review the proposed merge of ~ines-almeida/launchpad:project-tokens/db-patch into launchpad:master.
diff --git a/database/schema/patch-2211-22-0.sql b/database/schema/patch-2211-22-0.sql
new file mode 100644
index 0000000..411f0fe
--- /dev/null
+++ b/database/schema/patch-2211-22-0.sql
@@ -0,0 +1,21 @@
+-- Copyright 2023 Canonical Ltd. This software is licensed under the
+-- GNU Affero General Public License version 3 (see the file LICENSE).
+
+SET client_min_messages=ERROR;
+
+ALTER TABLE AccessToken
+ ADD COLUMN project integer REFERENCES product;
+
+COMMENT ON COLUMN AccessToken.project IS 'The project for which the token was issued.';
+
+CREATE INDEX accesstoken__project__idx
+ ON AccessToken (project, id) WHERE project IS NOT NULL;
+
+-- There can only be either a git_repository or a project as target
+ALTER TABLE AccessToken
+ ALTER COLUMN git_repository DROP NOT NULL,
+ ADD CONSTRAINT one_target CHECK (
+ (public.null_count(ARRAY[git_repository, project]) = 1)
+ );
+
+INSERT INTO LaunchpadDatabaseRevision VALUES (2211, 22, 0);