mirror of
https://github.com/zulip/zulip.git
synced 2025-10-23 04:52:12 +00:00
migrations: Backfill is_channel_message.
This commit is contained in:
committed by
Tim Abbott
parent
47d55c4b6f
commit
bca862e243
@@ -54,6 +54,7 @@ rules:
|
||||
|
||||
- id: dont-import-models-in-migrations
|
||||
patterns:
|
||||
- pattern-not: from zerver.lib.migrate import $X
|
||||
- pattern-not: from zerver.lib.partial import partial
|
||||
- pattern-not: from zerver.lib.mime_types import $X
|
||||
- pattern-not: from zerver.lib.redis_utils import get_redis_client
|
||||
|
@@ -0,0 +1,37 @@
|
||||
from django.db import connection, migrations
|
||||
from django.db.backends.base.schema import BaseDatabaseSchemaEditor
|
||||
from django.db.migrations.state import StateApps
|
||||
from psycopg2.sql import SQL
|
||||
|
||||
from zerver.lib.migrate import do_batch_update
|
||||
|
||||
|
||||
def update_is_channel_message(apps: StateApps, schema_editor: BaseDatabaseSchemaEditor) -> None:
|
||||
Message = apps.get_model("zerver", "Message")
|
||||
ArchivedMessage = apps.get_model("zerver", "ArchivedMessage")
|
||||
|
||||
with connection.cursor() as cursor:
|
||||
for message_model in [Message, ArchivedMessage]:
|
||||
do_batch_update(
|
||||
cursor,
|
||||
message_model._meta.db_table,
|
||||
[
|
||||
SQL(
|
||||
"is_channel_message = (SELECT type = 2 FROM zerver_recipient WHERE zerver_recipient.id = recipient_id)"
|
||||
)
|
||||
],
|
||||
)
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
atomic = False
|
||||
|
||||
dependencies = [
|
||||
("zerver", "0690_message_is_channel_message"),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.RunPython(
|
||||
update_is_channel_message, reverse_code=migrations.RunPython.noop, elidable=True
|
||||
)
|
||||
]
|
Reference in New Issue
Block a user