fix: handle non-dict history/messages in chat_message migration (#22588)
Some databases contain chat records where 'history' or 'messages' are
stored as lists instead of dicts. This causes an AttributeError
('list' object has no attribute 'items') during the
8452d01d26d7_add_chat_message_table migration.
Add isinstance checks to skip chat records with unexpected data shapes
gracefully, matching the existing pattern used for individual message
validation.
This commit is contained in:
@@ -151,7 +151,12 @@ def upgrade() -> None:
|
|||||||
continue
|
continue
|
||||||
|
|
||||||
history = chat_data.get("history", {})
|
history = chat_data.get("history", {})
|
||||||
|
if not isinstance(history, dict):
|
||||||
|
continue
|
||||||
|
|
||||||
messages = history.get("messages", {})
|
messages = history.get("messages", {})
|
||||||
|
if not isinstance(messages, dict):
|
||||||
|
continue
|
||||||
|
|
||||||
for message_id, message in messages.items():
|
for message_id, message in messages.items():
|
||||||
if not isinstance(message, dict):
|
if not isinstance(message, dict):
|
||||||
|
|||||||
Reference in New Issue
Block a user