protected function check_internal_upgrades() {
		$oldProjectName = $this->projectName;
		$this->projectName = $this->internalProjectName;
		
		if(!isset(self::$cache[$this->projectName])) {
			
			$this->reconnect_db();
			
			$oldVersionFileLocation = $this->versionFileLocation;
			$oldUpgradeConfigFile = $this->upgradeConfigFile;
			$this->upgradeConfigFile = dirname(__FILE__) .'/upgrades/upgrade.ini';


			//set a status flag so we can store log messages (for now).
			$this->internalUpgradeInProgress = true;


			//do stuff here...
			$this->set_version_file_location(__DIR__ .'/../VERSION');
			$this->read_version_file();

			//if there is an error, then... uh... yeah.
			try {
				$this->get_database_version();
			}
			catch(exception $e) {
				throw new Exception(__METHOD__ .": error while retrieving database version: ". $e->getMessage());
			}

			//do upgrades here...
			$this->check_versions(true);
			$this->internalUpgradeInProgress = false;


			//reset internal vars.
			$this->set_version_file_location($oldVersionFileLocation);
			$this->upgradeConfigFile = $oldUpgradeConfigFile;
			$this->read_version_file();
			
			self::$cache[$this->projectName] = array(
				'versionFileVersion'	=> $this->versionFileVersion,
				'databaseVersion'		=> $this->databaseVersion
			);
		}
		
		$this->projectName = $oldProjectName;
		
	}