doctrine->getManager('og_1'); $clientRepository = $this->entityManager->getRepository(Client::class); $operativeSystemRepository = $this->entityManager->getRepository(OperativeSystem::class); /** Obtener las particiones de los clientes de la base de datos antigua **/ $rsmPartitions = new ResultSetMapping(); $rsmPartitions->addScalarResult('idordenador', 'idordenador'); $rsmPartitions->addScalarResult('idnombreso', 'idnombreso'); $rsmPartitions->addScalarResult('numdisk', 'numdisk'); $rsmPartitions->addScalarResult('numpar', 'numpar'); $rsmPartitions->addScalarResult('codpar', 'codpar'); $rsmPartitions->addScalarResult('tamano', 'tamano'); $rsmPartitions->addScalarResult('uso', 'uso'); $partitionQuery = $oldDatabaseEntityManager->createNativeQuery('SELECT idordenador, idnombreso, numdisk, numpar, codpar, tamano, uso FROM ordenadores_particiones', $rsmPartitions); $partitions = $partitionQuery->getResult(); /** Particiones **/ $output->writeln("PARTICIONES TOTAL: ". count($partitions)); foreach ($partitions as $partition){ $clientEntity = $clientRepository->findOneBy(['migrationId' => $partition['idordenador']]); if(!$clientEntity){ $output->writeln("No se ha encontrado el cliente con id: ". $partition['idordenador']); continue; } $operativeSystemEntity = $operativeSystemRepository->findOneBy(['migrationId' => $partition['idnombreso']]); if(!$operativeSystemEntity){ $output->writeln("No se ha encontrado el sistema operativo con id: ". $partition['idnombreso']); continue; } $partitionEntity = new Partition(); $partitionEntity->setDiskNumber($partition['numdisk']); $partitionEntity->setPartitionNumber($partition['numpar']); $partitionEntity->setPartitionCode($partition['codpar']); $partitionEntity->setSize($partition['tamano']); $partitionEntity->setMemoryUsage($partition['uso']); $partitionEntity->setClient($clientEntity); $partitionEntity->setOperativeSystem($operativeSystemEntity); $this->entityManager->persist($partitionEntity); $this->entityManager->flush(); } return 1; } }