Skip to content

Commit 7caaf2d

Browse files
Fixed an issue where pgAdmin config migration was failing while upgrading to v9.7 #9095
1 parent 09bc544 commit 7caaf2d

File tree

1 file changed

+13
-6
lines changed

1 file changed

+13
-6
lines changed

web/migrations/versions/e6ed5dac37c2_.py

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
Create Date: 2025-07-15 12:27:48.780562
1616
1717
"""
18+
import sqlalchemy as sa
1819
from alembic import op
1920
from sqlalchemy.orm.session import Session
2021
from pgadmin.model import Preferences, ModulePreference, PreferenceCategory,\
@@ -84,15 +85,21 @@ def upgrade():
8485
if pref.name == new_pref.name:
8586
pref_map[pref.id] = new_pref.id
8687

88+
# get metadata from current connection
89+
meta = sa.MetaData()
90+
# define table representation
91+
meta.reflect(op.get_bind(), only=('user_preferences',))
92+
user_pref_table = sa.Table('user_preferences', meta)
93+
94+
# Update the user preferences with new preference ids
8795
for key, val in pref_map.items():
88-
record_to_update = session.query(UserPreference).filter_by(
89-
pid=key).first()
90-
if record_to_update:
91-
record_to_update.pid = val
96+
op.execute(
97+
user_pref_table.update().where(
98+
user_pref_table.c.pid == key).values(pid=val)
99+
)
92100

93101
# Delete the old preferences and categories
94-
session.query(Preferences).filter(Preferences.name.in_(prefs),
95-
Preferences.cid.in_(category_ids)
102+
session.query(Preferences).filter(Preferences.cid.in_(category_ids)
96103
).delete(synchronize_session=False)
97104

98105
session.query(PreferenceCategory).filter(

0 commit comments

Comments
 (0)