52 lines
1.4 KiB
Python
52 lines
1.4 KiB
Python
##########################################################################
|
|
#
|
|
# pgAdmin 4 - PostgreSQL Tools
|
|
#
|
|
# Copyright (C) 2013 - 2025, The pgAdmin Development Team
|
|
# This software is released under the PostgreSQL Licence
|
|
#
|
|
##########################################################################
|
|
|
|
"""
|
|
|
|
Revision ID: 1f0eddc8fc79
|
|
Revises: e982c040d9b5
|
|
Create Date: 2025-03-26 15:58:24.131719
|
|
|
|
"""
|
|
from alembic import op
|
|
import sqlalchemy as sa
|
|
from pgadmin.utils.constants import RESTRICTION_TYPE_DATABASES
|
|
|
|
# revision identifiers, used by Alembic.
|
|
revision = '1f0eddc8fc79'
|
|
down_revision = 'e982c040d9b5'
|
|
branch_labels = None
|
|
depends_on = None
|
|
|
|
|
|
def upgrade():
|
|
op.add_column('server',
|
|
sa.Column('db_res_type', sa.String(length=32),
|
|
server_default=RESTRICTION_TYPE_DATABASES))
|
|
|
|
# For adding custom role permissions
|
|
op.add_column('role', sa.Column('permissions', sa.Text()))
|
|
|
|
# get metadata from current connection
|
|
meta = sa.MetaData()
|
|
# define table representation
|
|
meta.reflect(op.get_bind(), only=('role',))
|
|
role_table = sa.Table('role', meta)
|
|
|
|
from pgadmin.tools.user_management.PgAdminPermissions import (
|
|
AllPermissionTypes)
|
|
op.execute(
|
|
role_table.update().where(role_table.c.name == 'User')
|
|
.values(permissions=",".join(AllPermissionTypes.list())))
|
|
|
|
|
|
def downgrade():
|
|
# pgAdmin only upgrades, downgrade not implemented.
|
|
pass
|