Add check constraint on MetaPackage name

This commit is contained in:
rubenwardy
2020-07-12 02:43:48 +01:00
parent 284683e7e5
commit 4bd9411d87
2 changed files with 32 additions and 0 deletions

View File

@@ -0,0 +1,30 @@
"""empty message
Revision ID: 838081950f27
Revises: 86512692b770
Create Date: 2020-07-12 01:33:19.499459
"""
from alembic import op
import sqlalchemy as sa
# revision identifiers, used by Alembic.
revision = '838081950f27'
down_revision = '86512692b770'
branch_labels = None
depends_on = None
def upgrade():
op.create_check_constraint("mp_name_valid", "meta_package", "name ~* '^[a-z0-9_]+$'")
op.execute("""
DELETE FROM provides AS t USING meta_package AS m WHERE t.metapackage_id = m.id AND NOT (m.name ~* '^[a-z0-9_]+$');
DELETE FROM dependency AS t USING meta_package AS m WHERE t.meta_package_id = m.id AND NOT (m.name ~* '^[a-z0-9_]+$');
DELETE FROM meta_package WHERE NOT (name ~* '^[a-z0-9_]+$');
""")
def downgrade():
op.drop_constraint("mp_name_valid", "meta_package", type_="check")