<?php echo pht('Populating Phabricator files with mail keys xactions...')."\n"; $table = new PhabricatorFile(); $table_name = $table->getTableName(); $conn_w = $table->establishConnection('w'); $conn_w->openTransaction(); $sql = array(); foreach (new LiskRawMigrationIterator($conn_w, 'file') as $row) { // NOTE: MySQL requires that the INSERT specify all columns which don't // have default values when configured in strict mode. This query will // never actually insert rows, but we need to hand it values anyway. $sql[] = qsprintf( $conn_w, '(%d, %s, 0, 0, 0, 0, 0, 0, 0, 0)', $row['id'], Filesystem::readRandomCharacters(20)); } if ($sql) { foreach (PhabricatorLiskDAO::chunkSQL($sql, ', ') as $chunk) { queryfx( $conn_w, 'INSERT INTO %T (id, mailKey, phid, byteSize, storageEngine, storageFormat, storageHandle, dateCreated, dateModified, metadata) VALUES %Q '. 'ON DUPLICATE KEY UPDATE mailKey = VALUES(mailKey)', $table_name, $chunk); } } $table->saveTransaction(); echo pht('Done.')."\n";