diff --git a/uffd/migrations/versions/aeb07202a6c8_locking_and_new_id_allocation.py b/uffd/migrations/versions/aeb07202a6c8_locking_and_new_id_allocation.py
index e1fe39fef4ba90d7a03eb01ce4f0192f0cbcafdc..204cad29b81fc2843d31fd41f6d96eb58517e3ec 100644
--- a/uffd/migrations/versions/aeb07202a6c8_locking_and_new_id_allocation.py
+++ b/uffd/migrations/versions/aeb07202a6c8_locking_and_new_id_allocation.py
@@ -60,17 +60,21 @@ def upgrade():
 		sa.select([sa.func.max(user_table.c.unix_uid)])
 		.where(user_table.c.unix_uid <= current_app.config['USER_MAX_UID'])
 	).scalar() or 0
+	insert_data = []
 	if max_user_uid:
 		for uid in range(current_app.config['USER_MIN_UID'], max_user_uid + 1):
-			conn.execute(sa.insert(uid_allocation_table).values(id=uid))
+			insert_data.append({'id': uid})
+	op.bulk_insert(uid_allocation_table, insert_data)
 	max_service_uid = conn.execute(
 		sa.select([sa.func.max(user_table.c.unix_uid)])
 		.where(user_table.c.unix_uid <= current_app.config['USER_SERVICE_MAX_UID'])
 	).scalar() or 0
+	insert_data = []
 	if max_service_uid:
 		for uid in range(current_app.config['USER_SERVICE_MIN_UID'], max_service_uid + 1):
 			if uid < current_app.config['USER_MIN_UID'] or uid > max_user_uid:
-				conn.execute(sa.insert(uid_allocation_table).values(id=uid))
+				insert_data.append({'id': uid})
+	op.bulk_insert(uid_allocation_table, insert_data)
 	# Also block all UIDs outside of both ranges that are in use
 	# (just to be sure, there should not be any)
 	conn.execute(sa.insert(uid_allocation_table).from_select(['id'],
@@ -105,9 +109,11 @@ def upgrade():
 		sa.select([sa.func.max(group_table.c.unix_gid)])
 		.where(group_table.c.unix_gid <= current_app.config['GROUP_MAX_GID'])
 	).scalar() or 0
+	insert_data = []
 	if max_group_gid:
 		for gid in range(current_app.config['GROUP_MIN_GID'], max_group_gid + 1):
-			conn.execute(sa.insert(gid_allocation_table).values(id=gid))
+			insert_data.append({'id': gid})
+	op.bulk_insert(gid_allocation_table, insert_data)
 	# Also block out-of-range GIDs
 	conn.execute(sa.insert(gid_allocation_table).from_select(['id'],
 		sa.select([group_table.c.unix_gid]).where(