mirror of
https://github.com/zulip/zulip.git
synced 2025-10-27 10:03:56 +00:00
import_message_data: Use psycopg2.extras.execute_values.
Signed-off-by: Anders Kaseorg <anders@zulip.com>
This commit is contained in:
committed by
Tim Abbott
parent
6649c8e35f
commit
2604ebba38
@@ -12,6 +12,8 @@ from django.db.models import Max
|
||||
from django.utils.timezone import now as timezone_now
|
||||
from typing import Any, Dict, List, Optional, Set, Tuple, \
|
||||
Iterable, cast
|
||||
from psycopg2.extras import execute_values
|
||||
from psycopg2.sql import Identifier, SQL
|
||||
|
||||
from analytics.models import RealmCount, StreamCount, UserCount
|
||||
from zerver.lib.actions import UserMessageLite, bulk_insert_ums, \
|
||||
@@ -1289,12 +1291,15 @@ def import_attachments(data: TableData) -> None:
|
||||
# TODO: Do this the kosher Django way. We may find a
|
||||
# better way to do this in Django 1.9 particularly.
|
||||
with connection.cursor() as cursor:
|
||||
sql_template = '''
|
||||
insert into %s (%s, %s) values(%%s, %%s);''' % (m2m_table_name,
|
||||
parent_id,
|
||||
child_id)
|
||||
sql_template = SQL('''
|
||||
insert into {} ({}, {}) values %s
|
||||
''').format(
|
||||
Identifier(m2m_table_name),
|
||||
Identifier(parent_id),
|
||||
Identifier(child_id),
|
||||
)
|
||||
tups = [(row[parent_id], row[child_id]) for row in m2m_rows]
|
||||
cursor.executemany(sql_template, tups)
|
||||
execute_values(cursor.cursor, sql_template, tups)
|
||||
|
||||
logging.info('Successfully imported M2M table %s', m2m_table_name)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user