From ee3b228ac6196355f43b49781f361861831226f4 Mon Sep 17 00:00:00 2001 From: -LAN- Date: Wed, 9 Oct 2024 21:50:12 +0800 Subject: [PATCH] fix(migrations): correct parent_message_id for service-api records - Set default parent_message_id to UUID_NIL when it's null for service-api entries post v0.9.0 release. - Provide downgrade path to reset parent_message_id back to null in case of rollback. --- ...744d88ed6_fix_wrong_service_api_history.py | 48 +++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 api/migrations/versions/2024_10_09_1329-d8e744d88ed6_fix_wrong_service_api_history.py diff --git a/api/migrations/versions/2024_10_09_1329-d8e744d88ed6_fix_wrong_service_api_history.py b/api/migrations/versions/2024_10_09_1329-d8e744d88ed6_fix_wrong_service_api_history.py new file mode 100644 index 0000000000000..b3b8dfa7d4f2f --- /dev/null +++ b/api/migrations/versions/2024_10_09_1329-d8e744d88ed6_fix_wrong_service_api_history.py @@ -0,0 +1,48 @@ +"""fix wrong service-api history + +Revision ID: d8e744d88ed6 +Revises: 33f5fac87f29 +Create Date: 2024-10-09 13:29:23.548498 + +""" +from alembic import op +from constants import UUID_NIL +import models as models +import sqlalchemy as sa + + +# revision identifiers, used by Alembic. +revision = 'd8e744d88ed6' +down_revision = '33f5fac87f29' +branch_labels = None +depends_on = None + +# (UTC) release date of v0.9.0 +v0_9_0_release_date= '2024-09-29 12:00:00' + +def upgrade(): + # ### commands auto generated by Alembic - please adjust! ### + sql = f"""UPDATE + public.messages +SET + parent_message_id = '{UUID_NIL}' +WHERE + invoke_from = 'service-api' + AND parent_message_id IS NULL + AND created_at >= '{v0_9_0_release_date}';""" + op.execute(sql) + # ### end Alembic commands ### + + +def downgrade(): + # ### commands auto generated by Alembic - please adjust! ### + sql = f"""UPDATE + public.messages +SET + parent_message_id = NULL +WHERE + invoke_from = 'service-api' + AND parent_message_id = '{UUID_NIL}' + AND created_at >= '{v0_9_0_release_date}';""" + op.execute(sql) + # ### end Alembic commands ###