|
15 | 15 | Create Date: 2025-07-15 12:27:48.780562 |
16 | 16 |
|
17 | 17 | """ |
| 18 | +import sqlalchemy as sa |
18 | 19 | from alembic import op |
19 | 20 | from sqlalchemy.orm.session import Session |
20 | 21 | from pgadmin.model import Preferences, ModulePreference, PreferenceCategory,\ |
@@ -84,15 +85,21 @@ def upgrade(): |
84 | 85 | if pref.name == new_pref.name: |
85 | 86 | pref_map[pref.id] = new_pref.id |
86 | 87 |
|
| 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 |
87 | 95 | 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 | + ) |
92 | 100 |
|
93 | 101 | # 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) |
96 | 103 | ).delete(synchronize_session=False) |
97 | 104 |
|
98 | 105 | session.query(PreferenceCategory).filter( |
|
0 commit comments