Changeset View
Changeset View
Standalone View
Standalone View
resources/sql/autopatches/20220512.file.02.migrate.php
- This file was added.
<?php | |||||
$attachment_table = new PhabricatorFileAttachment(); | |||||
$attachment_conn = $attachment_table->establishConnection('w'); | |||||
$src_cursor = ''; | |||||
$dst_cursor = ''; | |||||
while (true) { | |||||
$rows = queryfx_all( | |||||
$attachment_conn, | |||||
'SELECT src, dst, dateCreated FROM %T | |||||
WHERE type = 26 AND (src > %s OR (src = %s AND dst > %s)) | |||||
ORDER BY src ASC, type ASC, dst ASC LIMIT %d', | |||||
'edge', | |||||
$src_cursor, | |||||
$src_cursor, | |||||
$dst_cursor, | |||||
10000); | |||||
if (!$rows) { | |||||
break; | |||||
} | |||||
$sql = array(); | |||||
foreach ($rows as $row) { | |||||
$sql[] = qsprintf( | |||||
$attachment_conn, | |||||
'(%s, %s, %s, %ns, %d, %d)', | |||||
$row['dst'], | |||||
$row['src'], | |||||
PhabricatorFileAttachment::MODE_ATTACH, | |||||
null, | |||||
$row['dateCreated'], | |||||
$row['dateCreated']); | |||||
} | |||||
foreach (PhabricatorLiskDAO::chunkSQL($sql) as $chunk) { | |||||
queryfx( | |||||
$attachment_conn, | |||||
'INSERT IGNORE INTO %R | |||||
(objectPHID, filePHID, attachmentMode, attacherPHID, | |||||
dateCreated, dateModified) | |||||
VALUES %LQ', | |||||
$attachment_table, | |||||
$chunk); | |||||
} | |||||
$last = last($rows); | |||||
$src_cursor = $last['src']; | |||||
$dst_cursor = $last['dst']; | |||||
} |