public static function migrate( $silent = false )
	{
		$migrations = $silent ? static::available() : static::unstaged();
		
		foreach( $migrations as $key => $value )
		{
			if ( empty( $value ) )
			{
				continue;
			}
			
			if ( \ClanCats::is_cli() )
			{
				\CCCli::info( 'found new "'.$key.'" migrations.' );
			}
			
			foreach( $value as $time => $path )
			{
				$migration = new static( $path );
				
				// run the migration
				$migration->up();
				
				if ( \ClanCats::is_cli() )
				{
					\CCCli::success( 'migrated '.$migration->name() );
				}
			}
			
			static::$config->set( $key.'.revision', $time );
		}
		
		if ( !$silent )
		{
			static::$config->write();
		}
	}