@recaptime-dev's working patches + fork for Phorge, a community fork of Phabricator. (Upstream dev and stable branches are at upstream/main and upstream/stable respectively.)
hq.recaptime.dev/wiki/Phorge
phorge
phabricator
1<?php
2
3// Update the PhrictionDocument and PhrictionContent tables to refer to one
4// another by PHID instead of by ID.
5
6$document_table = new PhrictionDocument();
7$content_table = new PhrictionContent();
8
9$conn = $document_table->establishConnection('w');
10
11$document_iterator = new LiskRawMigrationIterator(
12 $conn,
13 $document_table->getTableName());
14foreach ($document_iterator as $row) {
15 $content_id = $row['contentID'];
16
17 $content_row = queryfx_one(
18 $conn,
19 'SELECT phid, dateCreated FROM %T WHERE id = %d',
20 $content_table->getTableName(),
21 $content_id);
22
23 if (!$content_row) {
24 continue;
25 }
26
27 queryfx(
28 $conn,
29 'UPDATE %T SET contentPHID = %s, editedEpoch = %d WHERE id = %d',
30 $document_table->getTableName(),
31 $content_row['phid'],
32 $content_row['dateCreated'],
33 $row['id']);
34}
35
36$content_iterator = new LiskRawMigrationIterator(
37 $conn,
38 $content_table->getTableName());
39foreach ($content_iterator as $row) {
40 $document_id = $row['documentID'];
41
42 $document_row = queryfx_one(
43 $conn,
44 'SELECT phid FROM %T WHERE id = %d',
45 $document_table->getTableName(),
46 $document_id);
47 if (!$document_row) {
48 continue;
49 }
50
51 queryfx(
52 $conn,
53 'UPDATE %T SET documentPHID = %s WHERE id = %d',
54 $content_table->getTableName(),
55 $document_row['phid'],
56 $row['id']);
57}