mirror of
https://github.com/pgadmin-org/pgadmin4.git
synced 2026-11-02 20:30:17 -06:00
Fixed an issue where pgAdmin config migration was failing while upgrading to v9.7 #9095
This commit is contained in:
1 parent
09bc544e83
commit
7caaf2de82
1 file changed
+13
-6
@@ -15,6 +15,7 @@ Revises: e24b1c4def17
|
|||||||
Create Date: 2025-07-15 12:27:48.780562
|
Create Date: 2025-07-15 12:27:48.780562
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
import sqlalchemy as sa
|
||||||
from alembic import op
|
from alembic import op
|
||||||
from sqlalchemy.orm.session import Session
|
from sqlalchemy.orm.session import Session
|
||||||
from pgadmin.model import Preferences, ModulePreference, PreferenceCategory,\
|
from pgadmin.model import Preferences, ModulePreference, PreferenceCategory,\
|
||||||
@@ -84,15 +85,21 @@ def upgrade():
|
|||||||
if pref.name == new_pref.name:
|
if pref.name == new_pref.name:
|
||||||
pref_map[pref.id] = new_pref.id
|
pref_map[pref.id] = new_pref.id
|
||||||
|
|
||||||
|
# get metadata from current connection
|
||||||
|
meta = sa.MetaData()
|
||||||
|
# define table representation
|
||||||
|
meta.reflect(op.get_bind(), only=('user_preferences',))
|
||||||
|
user_pref_table = sa.Table('user_preferences', meta)
|
||||||
|
|
||||||
|
# Update the user preferences with new preference ids
|
||||||
for key, val in pref_map.items():
|
for key, val in pref_map.items():
|
||||||
record_to_update = session.query(UserPreference).filter_by(
|
op.execute(
|
||||||
pid=key).first()
|
user_pref_table.update().where(
|
||||||
if record_to_update:
|
user_pref_table.c.pid == key).values(pid=val)
|
||||||
record_to_update.pid = val
|
)
|
||||||
|
|
||||||
# Delete the old preferences and categories
|
# Delete the old preferences and categories
|
||||||
session.query(Preferences).filter(Preferences.name.in_(prefs),
|
session.query(Preferences).filter(Preferences.cid.in_(category_ids)
|
||||||
Preferences.cid.in_(category_ids)
|
|
||||||
).delete(synchronize_session=False)
|
).delete(synchronize_session=False)
|
||||||
|
|
||||||
session.query(PreferenceCategory).filter(
|
session.query(PreferenceCategory).filter(
|
||||||
|
|||||||
Reference in new issue
Block a user