Krenair

OS migration script changes

Dec 21st, 2012
126
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Diff 4.85 KB | None | 0 0
  1. diff --git a/migrateToRevDel.php b/migrateToRevDel.php
  2. index 4722106..4b9673b 100644
  3. --- a/migrateToRevDel.php
  4. +++ b/migrateToRevDel.php
  5. @@ -79,26 +79,60 @@ 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(
  31. +                                               'LIMIT' => 1,
  32. +                                               'ORDER BY' => 'rev_timestamp'
  33. +                                       )
  34. +                               );
  35. +                               $parentIdFromHidden = $dbw->selectRow(
  36. +                                       'hidden',
  37. +                                       array( 'hidden_rev_id', 'hidden_timestamp' ),
  38. +                                       array(
  39. +                                               'hidden_page' => $hiddenRow->hidden_page,
  40. +                                               'hidden_timestamp < ' . $hiddenRow->hidden_timestamp,
  41. +                                               'hidden_rev_id < ' . $hiddenRow->hidden_rev_id
  42. +                                       ),
  43. +                                       $options = array(
  44. +                                               'LIMIT' => 1,
  45. +                                               'ORDER BY' => 'hidden_timestamp'
  46. +                                       )
  47. +                               );
  48. +                               $parentIdFromArchive = $dbw->selectRow(
  49. +                                       'archive',
  50. +                                       array( 'ar_rev_id', 'ar_timestamp' ),
  51. +                                       array(
  52. +                                               'ar_page_id' => $hiddenRow->hidden_page,
  53. +                                               'ar_timestamp < ' . $hiddenRow->hidden_timestamp,
  54. +                                               'ar_rev_id < ' . $hiddenRow->hidden_rev_id
  55. +                                       ),
  56. +                                       array(
  57. +                                               'LIMIT' => 1,
  58. +                                               'ORDER BY' => 'ar_timestamp'
  59. +                                       )
  60. +                               );
  61. +
  62. +                               $timestampsToRevIds = array(
  63. +                                       $parentIdFromRevision["rev_timestamp"] => $parentIdFromRevision["rev_id"],
  64. +                                       $parentIdFromHidden["hidden_timestamp"] => $parentIdFromHidden["hidden_rev_id"],
  65. +                                       $parentIdFromArchive["ar_timestamp"] => $parentIdFromArchive["ar_rev_id"]
  66. +                               );
  67. +
  68. +                               $insertData['rev_parent_id'] = $timestampsToRevIds[max( array_keys( $timestampsToRevIds ) )];
  69.                         }
  70.  
  71. -                       $insertData[$fieldPrefix . 'parent_id'] = $dbw->selectField(
  72. -                               $tableName,
  73. -                               $revIdFieldName,
  74. -                               $parentIdLookupConditions,
  75. -                               $options = array( 'LIMIT' => 1, 'ORDER BY' => $revIdFieldName )
  76. -                       );
  77. -
  78.                         $dbw->insert( $tableName, $insertData, __METHOD__ );
  79.  
  80.                         $dbw->insert( 'logging', array(
Advertisement
Add Comment
Please, Sign In to add comment