public function migrate($packageKey, $versionNumber = null, $force = false)
    {
        $packagesData = $this->getPackagesData($packageKey);
        foreach ($this->getMigrations($versionNumber) as $migration) {
            $this->triggerEvent(self::EVENT_MIGRATION_START, array($migration));
            foreach ($packagesData as &$this->currentPackageData) {
                $this->migratePackage($migration, $force);
            }
            $this->triggerEvent(self::EVENT_MIGRATION_DONE, array($migration));
        }
    }