From 3c2b8eb6da1ad614423f59258a1bddba75e0c429 Mon Sep 17 00:00:00 2001 From: Alexis Date: Mon, 24 Feb 2025 14:46:08 -0500 Subject: [PATCH 1/4] Rename fields --- ...consistent_names_in_prohibited_projects.py | 97 +++++++++++++++++++ 1 file changed, 97 insertions(+) create mode 100644 warehouse/migrations/versions/b27b3bb5b4c9_consistent_names_in_prohibited_projects.py diff --git a/warehouse/migrations/versions/b27b3bb5b4c9_consistent_names_in_prohibited_projects.py b/warehouse/migrations/versions/b27b3bb5b4c9_consistent_names_in_prohibited_projects.py new file mode 100644 index 000000000000..00492c0b323e --- /dev/null +++ b/warehouse/migrations/versions/b27b3bb5b4c9_consistent_names_in_prohibited_projects.py @@ -0,0 +1,97 @@ +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +""" +consistent names in prohibited projects + +Revision ID: b27b3bb5b4c9 +Revises: 6cac7b706953 +Create Date: 2025-02-24 19:31:38.064454 +""" + +from alembic import op + +revision = "b27b3bb5b4c9" +down_revision = "6cac7b706953" + + +def upgrade(): + op.execute(""" + ALTER TABLE prohibited_project_names + RENAME CONSTRAINT blacklist_name_key TO prohibited_project_names_name_key + """) + + op.execute(""" + ALTER TABLE prohibited_project_names + RENAME CONSTRAINT blacklist_pkey TO prohibited_project_names_pkey + """) + + op.execute(""" + ALTER TABLE prohibited_project_names + RENAME CONSTRAINT blacklist_blacklisted_by_fkey TO prohibited_project_names_prohibited_by_fkey + """) + + op.execute( + """ CREATE OR REPLACE FUNCTION ensure_normalized_prohibited_name() + RETURNS TRIGGER AS $$ + BEGIN + NEW.name = normalize_pep426_name(NEW.name); + RETURN NEW; + END; + $$ LANGUAGE plpgsql; + """ + ) + + op.execute(""" + DROP TRIGGER normalize_blacklist ON prohibited_project_names + """) + + op.execute(""" + CREATE TRIGGER normalize_prohibited_project_name + BEFORE INSERT OR UPDATE ON prohibited_project_names + FOR EACH ROW EXECUTE FUNCTION public.ensure_normalized_prohibited_name() + """) + + op.execute(""" + DROP FUNCTION IF EXISTS public.ensure_normalized_blacklist() + """) + + +def downgrade(): + # Rename constraints back + op.execute(""" + ALTER TABLE prohibited_project_names + RENAME CONSTRAINT prohibited_project_names_name_key TO blacklist_name_key + """) + + op.execute(""" + ALTER TABLE prohibited_project_names + RENAME CONSTRAINT prohibited_project_names_pkey TO blacklist_pkey + """) + + op.execute(""" + ALTER TABLE prohibited_project_names + RENAME CONSTRAINT prohibited_project_names_prohibited_by_fkey TO blacklist_blacklisted_by_fkey + """) + + # Drop new trigger + op.execute(""" + DROP TRIGGER normalize_prohibited_project_name ON prohibited_project_names + """) + + # Recreate original trigger using the existing function + op.execute(""" + CREATE TRIGGER normalize_blacklist + BEFORE INSERT OR UPDATE ON prohibited_project_names + FOR EACH ROW EXECUTE FUNCTION public.ensure_normalized_blacklist() + """) + + # Note: We're keeping both functions to avoid breaking anything From f4ae02c61843ddab442ad317df9f28d1937a8f6f Mon Sep 17 00:00:00 2001 From: Alexis Date: Mon, 24 Feb 2025 15:33:55 -0500 Subject: [PATCH 2/4] Linting --- ...consistent_names_in_prohibited_projects.py | 71 ++++++++++++------- 1 file changed, 44 insertions(+), 27 deletions(-) diff --git a/warehouse/migrations/versions/b27b3bb5b4c9_consistent_names_in_prohibited_projects.py b/warehouse/migrations/versions/b27b3bb5b4c9_consistent_names_in_prohibited_projects.py index 00492c0b323e..8b6af1107955 100644 --- a/warehouse/migrations/versions/b27b3bb5b4c9_consistent_names_in_prohibited_projects.py +++ b/warehouse/migrations/versions/b27b3bb5b4c9_consistent_names_in_prohibited_projects.py @@ -24,20 +24,26 @@ def upgrade(): - op.execute(""" + op.execute( + """ ALTER TABLE prohibited_project_names RENAME CONSTRAINT blacklist_name_key TO prohibited_project_names_name_key - """) + """ + ) - op.execute(""" + op.execute( + """ ALTER TABLE prohibited_project_names RENAME CONSTRAINT blacklist_pkey TO prohibited_project_names_pkey - """) + """ + ) - op.execute(""" + op.execute( + """ ALTER TABLE prohibited_project_names RENAME CONSTRAINT blacklist_blacklisted_by_fkey TO prohibited_project_names_prohibited_by_fkey - """) + """ + ) op.execute( """ CREATE OR REPLACE FUNCTION ensure_normalized_prohibited_name() @@ -50,48 +56,59 @@ def upgrade(): """ ) - op.execute(""" + op.execute( + """ DROP TRIGGER normalize_blacklist ON prohibited_project_names - """) + """ + ) - op.execute(""" + op.execute( + """ CREATE TRIGGER normalize_prohibited_project_name BEFORE INSERT OR UPDATE ON prohibited_project_names FOR EACH ROW EXECUTE FUNCTION public.ensure_normalized_prohibited_name() - """) + """ + ) - op.execute(""" + op.execute( + """ DROP FUNCTION IF EXISTS public.ensure_normalized_blacklist() - """) + """ + ) def downgrade(): - # Rename constraints back - op.execute(""" + op.execute( + """ ALTER TABLE prohibited_project_names RENAME CONSTRAINT prohibited_project_names_name_key TO blacklist_name_key - """) + """ + ) - op.execute(""" + op.execute( + """ ALTER TABLE prohibited_project_names RENAME CONSTRAINT prohibited_project_names_pkey TO blacklist_pkey - """) + """ + ) - op.execute(""" + op.execute( + """ ALTER TABLE prohibited_project_names RENAME CONSTRAINT prohibited_project_names_prohibited_by_fkey TO blacklist_blacklisted_by_fkey - """) + """ + ) - # Drop new trigger - op.execute(""" + op.execute( + """ DROP TRIGGER normalize_prohibited_project_name ON prohibited_project_names - """) + """ + ) - # Recreate original trigger using the existing function - op.execute(""" + op.execute( + """ CREATE TRIGGER normalize_blacklist BEFORE INSERT OR UPDATE ON prohibited_project_names FOR EACH ROW EXECUTE FUNCTION public.ensure_normalized_blacklist() - """) - - # Note: We're keeping both functions to avoid breaking anything + """ + ) From d165e77e6c5ea0ce958daaeb177766f60a8c18c3 Mon Sep 17 00:00:00 2001 From: Alexis Date: Mon, 24 Feb 2025 15:58:30 -0500 Subject: [PATCH 3/4] Fix linter --- .../b27b3bb5b4c9_consistent_names_in_prohibited_projects.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/warehouse/migrations/versions/b27b3bb5b4c9_consistent_names_in_prohibited_projects.py b/warehouse/migrations/versions/b27b3bb5b4c9_consistent_names_in_prohibited_projects.py index 8b6af1107955..ab3a383503f5 100644 --- a/warehouse/migrations/versions/b27b3bb5b4c9_consistent_names_in_prohibited_projects.py +++ b/warehouse/migrations/versions/b27b3bb5b4c9_consistent_names_in_prohibited_projects.py @@ -41,7 +41,8 @@ def upgrade(): op.execute( """ ALTER TABLE prohibited_project_names - RENAME CONSTRAINT blacklist_blacklisted_by_fkey TO prohibited_project_names_prohibited_by_fkey + RENAME CONSTRAINT blacklist_blacklisted_by_fkey + TO prohibited_project_names_prohibited_by_fkey """ ) @@ -95,7 +96,8 @@ def downgrade(): op.execute( """ ALTER TABLE prohibited_project_names - RENAME CONSTRAINT prohibited_project_names_prohibited_by_fkey TO blacklist_blacklisted_by_fkey + RENAME CONSTRAINT prohibited_project_names_prohibited_by_fkey + TO blacklist_blacklisted_by_fkey """ ) From 664f40c1c2b8ef4ea25e0548c84f312bc3110c19 Mon Sep 17 00:00:00 2001 From: Alexis Date: Tue, 25 Feb 2025 16:06:25 -0500 Subject: [PATCH 4/4] Rebase on top of existing migrations --- .../b27b3bb5b4c9_consistent_names_in_prohibited_projects.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/warehouse/migrations/versions/b27b3bb5b4c9_consistent_names_in_prohibited_projects.py b/warehouse/migrations/versions/b27b3bb5b4c9_consistent_names_in_prohibited_projects.py index ab3a383503f5..ad2466c761ae 100644 --- a/warehouse/migrations/versions/b27b3bb5b4c9_consistent_names_in_prohibited_projects.py +++ b/warehouse/migrations/versions/b27b3bb5b4c9_consistent_names_in_prohibited_projects.py @@ -13,14 +13,14 @@ consistent names in prohibited projects Revision ID: b27b3bb5b4c9 -Revises: 6cac7b706953 +Revises: 2f5dbc74c770 Create Date: 2025-02-24 19:31:38.064454 """ from alembic import op revision = "b27b3bb5b4c9" -down_revision = "6cac7b706953" +down_revision = "2f5dbc74c770" def upgrade():