Krenair

OS migration script changes v2

Dec 21st, 2012
140
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Diff 4.59 KB | None | 0 0
  1. diff --git a/migrateToRevDel.php b/migrateToRevDel.php
  2. index 4722106..c27c383 100644
  3. --- a/migrateToRevDel.php
  4. +++ b/migrateToRevDel.php
  5. @@ -79,26 +79,53 @@ class MigrateOversightRevisions extends Maintenance {
  6.                         $insertData[$fieldPrefix . 'len'] = strlen( $revText );
  7.                         $insertData[$fieldPrefix . 'sha1'] = Revision::base36Sha1( $revText );
  8.  
  9. -                       $parentIdLookupConditions = array(
  10. -                               $pageIdFieldName => $hiddenRow->hidden_page,
  11. -                               $fieldPrefix . 'timestamp' => $hiddenRow->hidden_timestamp,
  12. -                               $revIdFieldName . ' < ' . $hiddenRow->hidden_rev_id
  13. -                       );
  14. -
  15.                         if ( $tableName == 'archive' ) {
  16. -                               $parentIdLookupConditions['ar_namespace'] = $hiddenRow->hidden_namespace;
  17. -                               $parentIdLookupConditions['ar_title'] = $hiddenRow->hidden_title;
  18. +                               $insertData['ar_parent_id'] = null;
  19.                                 $insertData['ar_namespace'] = $hiddenRow->hidden_namespace;
  20.                                 $insertData['ar_title'] = $hiddenRow->hidden_title;
  21. +                       } else {
  22. +                               $parentIdFromRevision = $dbw->selectRow(
  23. +                                       'revision',
  24. +                                       array( 'rev_id', 'rev_timestamp' ),
  25. +                                       array(
  26. +                                               'rev_page' => $hiddenRow->hidden_page,
  27. +                                               'rev_timestamp < ' . $hiddenRow->hidden_timestamp,
  28. +                                               'rev_id < ' . $hiddenRow->hidden_rev_id
  29. +                                       ),
  30. +                                       array( 'ORDER BY' => 'rev_timestamp DESC' )
  31. +                               );
  32. +                               $parentIdFromHidden = $dbw->selectRow(
  33. +                                       'hidden',
  34. +                                       array( 'hidden_rev_id', 'hidden_timestamp' ),
  35. +                                       array(
  36. +                                               'hidden_page' => $hiddenRow->hidden_page,
  37. +                                               'hidden_timestamp < ' . $hiddenRow->hidden_timestamp,
  38. +                                               'hidden_rev_id < ' . $hiddenRow->hidden_rev_id
  39. +                                       ),
  40. +                                       $options = array( 'ORDER BY' => 'hidden_timestamp DESC' )
  41. +                               );
  42. +                               $parentIdFromArchive = $dbw->selectRow(
  43. +                                       'archive',
  44. +                                       array( 'ar_rev_id', 'ar_timestamp' ),
  45. +                                       array(
  46. +                                               'ar_page_id' => $hiddenRow->hidden_page,
  47. +                                               'ar_timestamp < ' . $hiddenRow->hidden_timestamp,
  48. +                                               'ar_rev_id < ' . $hiddenRow->hidden_rev_id,
  49. +                                               'ar_namespace' => $hiddenRow->hidden_namespace,
  50. +                                               'ar_title' => $hiddenRow->hidden_title
  51. +                                       ),
  52. +                                       array( 'ORDER BY' => 'ar_timestamp DESC' )
  53. +                               );
  54. +
  55. +                               $timestampsToRevIds = array(
  56. +                                       $parentIdFromRevision->rev_timestamp => $parentIdFromRevision->rev_id,
  57. +                                       $parentIdFromHidden->hidden_timestamp => $parentIdFromHidden->hidden_rev_id,
  58. +                                       $parentIdFromArchive->ar_timestamp => $parentIdFromArchive->ar_rev_id
  59. +                               );
  60. +
  61. +                               $insertData['rev_parent_id'] = $timestampsToRevIds[max( array_keys( $timestampsToRevIds ) )];
  62.                         }
  63.  
  64. -                       $insertData[$fieldPrefix . 'parent_id'] = $dbw->selectField(
  65. -                               $tableName,
  66. -                               $revIdFieldName,
  67. -                               $parentIdLookupConditions,
  68. -                               $options = array( 'LIMIT' => 1, 'ORDER BY' => $revIdFieldName )
  69. -                       );
  70. -
  71.                         $dbw->insert( $tableName, $insertData, __METHOD__ );
  72.  
  73.                         $dbw->insert( 'logging', array(
Advertisement
Add Comment
Please, Sign In to add comment