|
@@ -57,15 +57,20 @@ class UpdatePackagesCommand extends ContainerAwareCommand
|
|
$flags = 0;
|
|
$flags = 0;
|
|
|
|
|
|
if ($package) {
|
|
if ($package) {
|
|
- $packages = array($doctrine->getRepository('PackagistWebBundle:Package')->findOneByName($package));
|
|
|
|
|
|
+ $packages = array(array('id' => $doctrine->getRepository('PackagistWebBundle:Package')->findOneByName($package)->getId()));
|
|
$flags = Updater::UPDATE_TAGS;
|
|
$flags = Updater::UPDATE_TAGS;
|
|
} elseif ($force) {
|
|
} elseif ($force) {
|
|
- $packages = $doctrine->getRepository('PackagistWebBundle:Package')->getFullPackages();
|
|
|
|
|
|
+ $packages = $doctrine->getEntityManager()->getConnection()->fetchAll('SELECT id FROM package ORDER BY id ASC');
|
|
$flags = Updater::UPDATE_TAGS;
|
|
$flags = Updater::UPDATE_TAGS;
|
|
} else {
|
|
} else {
|
|
$packages = $doctrine->getRepository('PackagistWebBundle:Package')->getStalePackages();
|
|
$packages = $doctrine->getRepository('PackagistWebBundle:Package')->getStalePackages();
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ $ids = array();
|
|
|
|
+ foreach ($packages as $package) {
|
|
|
|
+ $ids[] = $package['id'];
|
|
|
|
+ }
|
|
|
|
+
|
|
if ($input->getOption('delete-before')) {
|
|
if ($input->getOption('delete-before')) {
|
|
$flags = Updater::DELETE_BEFORE;
|
|
$flags = Updater::DELETE_BEFORE;
|
|
}
|
|
}
|
|
@@ -76,16 +81,23 @@ class UpdatePackagesCommand extends ContainerAwareCommand
|
|
$input->setInteractive(false);
|
|
$input->setInteractive(false);
|
|
$io = $verbose ? new ConsoleIO($input, $output, $this->getApplication()->getHelperSet()) : new NullIO;
|
|
$io = $verbose ? new ConsoleIO($input, $output, $this->getApplication()->getHelperSet()) : new NullIO;
|
|
|
|
|
|
- foreach ($packages as $package) {
|
|
|
|
- if ($verbose) {
|
|
|
|
- $output->writeln('Importing '.$package->getRepository());
|
|
|
|
- }
|
|
|
|
- try {
|
|
|
|
- $repository = new VcsRepository(array('url' => $package->getRepository()), $io);
|
|
|
|
- $updater->update($package, $repository, $flags, $start);
|
|
|
|
- } catch (\Exception $e) {
|
|
|
|
- $output->writeln('<error>Exception: '.$e->getMessage().' at '.$e->getFile().':'.$e->getLine().', skipping package '.$package->getName().'.</error>');
|
|
|
|
|
|
+ while ($ids) {
|
|
|
|
+ $packages = $doctrine->getRepository('PackagistWebBundle:Package')->getFullPackages(array_splice($ids, 0, 50));
|
|
|
|
+
|
|
|
|
+ foreach ($packages as $package) {
|
|
|
|
+ if ($verbose) {
|
|
|
|
+ $output->writeln('Importing '.$package->getRepository());
|
|
|
|
+ }
|
|
|
|
+ try {
|
|
|
|
+ $repository = new VcsRepository(array('url' => $package->getRepository()), $io);
|
|
|
|
+ $updater->update($package, $repository, $flags, $start);
|
|
|
|
+ } catch (\Exception $e) {
|
|
|
|
+ $output->writeln('<error>Exception: '.$e->getMessage().' at '.$e->getFile().':'.$e->getLine().', skipping package '.$package->getName().'.</error>');
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ $doctrine->getEntityManager()->clear();
|
|
|
|
+ unset($packages);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|