gb_maint::upgrade PHP Method

upgrade() static public method

static public upgrade ( $fromVersion )
    static function upgrade($fromVersion)
    {
        self::sync_site_state();
        # this can potentially take a very long time
        set_time_limit(120);
        $stages = gb_upgrade::perform($fromVersion, gb::$version);
        gb::log('triggering rebuild as an effect of the upgrade to %s', gb::$version);
        $failures = GBRebuilder::rebuild($stages ? true : false);
        gb::log('gitblog is now version %s', gb::$version);
        if ($failures) {
            gb::log(LOG_WARNING, 'rebuilding failed with %d failures', count($failures));
            return false;
        }
        return true;
    }

Usage Example

Example #1
0
 /**
  * Verify integrity of the site, automatically taking any actions to restore
  * it if broken.
  * 
  * Return values:
  *   0  Nothing done (everything is probably OK).
  *   -1 Error (the error has been logged through trigger_error).
  *   1  gitblog cache was updated.
  *   2  gitdir is missing and need to be created (git init).
  *   3  upgrade performed
  */
 static function verify_integrity()
 {
     $r = 0;
     if (!is_dir(gb::$site_dir . '/.git/info/gitblog')) {
         if (!is_dir(gb::$site_dir . '/.git')) {
             # 2: no repo/not initialized
             return 2;
         }
         # 1: gitblog cache updated
         gb_maint::sync_site_state();
         GBRebuilder::rebuild(true);
         return 1;
     }
     # load site.json
     $r = self::load_site_state();
     # check site state
     if ($r === false || !isset(gb::$site_state['url']) || !gb::$site_state['url'] || gb::$site_state['url'] !== gb::$site_url && strpos(gb::$site_url, '://localhost') === false && strpos(gb::$site_url, '://127.0.0.1') === false) {
         return gb_maint::sync_site_state() === false ? -1 : 0;
     } elseif (gb::$site_state['version'] !== gb::$version) {
         return gb_maint::upgrade(gb::$site_state['version']) ? 0 : -1;
     } elseif (gb::$site_state['posts_pagesize'] !== gb::$posts_pagesize) {
         gb_maint::sync_site_state();
         GBRebuilder::rebuild(true);
         return 1;
     }
     return 0;
 }