Changeset 20544 for trunk/admin


Ignore:
Timestamp:
Feb 4, 2013, 12:28:03 PM (11 years ago)
Author:
plg
Message:

bug 2825: add maintenance action to clean the database and avoid integrity errors

Location:
trunk/admin
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/admin/include/functions.php

    r19703 r20544  
    482482      set_random_representant($to_rand);
    483483    }
     484  }
     485}
     486
     487/**
     488 * check and repair images integrity
     489 *
     490 * TODO see delete_elements function to check all linked tables
     491 */
     492function images_integrity()
     493{
     494  $query = '
     495SELECT
     496    image_id
     497  FROM '.IMAGE_CATEGORY_TABLE.'
     498    LEFT JOIN '.IMAGES_TABLE.' ON id = image_id
     499  WHERE id IS NULL
     500;';
     501  $result = pwg_query($query);
     502  $orphan_image_ids = array_from_query($query, 'image_id');
     503
     504  if (count($orphan_image_ids) > 0)
     505  {
     506    $query = '
     507DELETE
     508  FROM '.IMAGE_CATEGORY_TABLE.'
     509  WHERE image_id IN ('.implode(',', $orphan_image_ids).')
     510;';
     511    pwg_query($query);
    484512  }
    485513}
  • trunk/admin/maintenance.php

    r19703 r20544  
    6363  case 'categories' :
    6464  {
     65    images_integrity();
    6566    update_uppercats();
    6667    update_category('all');
     
    7172  case 'images' :
    7273  {
     74    images_integrity();
    7375    update_path();
    7476                include_once(PHPWG_ROOT_PATH.'include/functions_rate.inc.php');
    7577    update_rating_score();
     78    invalidate_user_cache();
    7679    break;
    7780  }
     
    7982  {
    8083    delete_orphan_tags();
     84    break;
     85  }
     86  case 'user_cache' :
     87  {
     88    invalidate_user_cache();
    8189    break;
    8290  }
     
    172180    'U_MAINT_IMAGES' => sprintf($url_format, 'images'),
    173181    'U_MAINT_ORPHAN_TAGS' => sprintf($url_format, 'delete_orphan_tags'),
     182    'U_MAINT_USER_CACHE' => sprintf($url_format, 'user_cache'),
    174183    'U_MAINT_HISTORY_DETAIL' => sprintf($url_format, 'history_detail'),
    175184    'U_MAINT_HISTORY_SUMMARY' => sprintf($url_format, 'history_summary'),
  • trunk/admin/themes/default/template/maintenance.tpl

    r18484 r20544  
    2828
    2929<ul>
     30        <li><a href="{$U_MAINT_USER_CACHE}">{'Purge user cache'|@translate}</a></li>
    3031        <li><a href="{$U_MAINT_ORPHAN_TAGS}">{'Delete orphan tags'|@translate}</a></li>
    3132        <li><a href="{$U_MAINT_HISTORY_DETAIL}" onclick="return confirm('{'Purge history detail'|@translate|@escape:'javascript'}');">{'Purge history detail'|@translate}</a></li>
Note: See TracChangeset for help on using the changeset viewer.