doctrine->getManager('og_1'); $clientRepository = $this->entityManager->getRepository(Client::class); $organizationalUnitRepository = $this->entityManager->getRepository(OrganizationalUnit::class); $hardwareProfileRepository = $this->entityManager->getRepository(HardwareProfile::class); /** Obtener los ordenadores de la base de datos antigua **/ $rsmClients = new ResultSetMapping(); $rsmClients->addScalarResult('idordenador', 'idordenador'); $rsmClients->addScalarResult('nombreordenador', 'nombreordenador'); $rsmClients->addScalarResult('numserie', 'numserie'); $rsmClients->addScalarResult('mac', 'mac'); $rsmClients->addScalarResult('ip', 'ip'); $rsmClients->addScalarResult('netiface', 'netiface'); $rsmClients->addScalarResult('netdriver', 'netdriver'); $rsmClients->addScalarResult('idperfilhard', 'ordenadores.idperfilhard'); $rsmClients->addScalarResult('grupoid', 'ordenadores.grupoid'); $rsmClients->addScalarResult('idaula', 'ordenadores.idaula'); $clientsQuery = $oldDatabaseEntityManager->createNativeQuery('SELECT idordenador, nombreordenador, numserie, ip, mac, netiface, netdriver, ordenadores.idaula, ordenadores.grupoid, ordenadores.idperfilhard FROM ordenadores LEFT JOIN aulas ON ordenadores.idaula = aulas.idaula LEFT JOIN perfileshard ON ordenadores.idperfilhard = perfileshard.idperfilhard', $rsmClients); $clients = $clientsQuery->getResult(); /** Ordenadores **/ $output->writeln("CLIENTES TOTAL: ". count($clients)); foreach ($clients as $client){ $clientEntity = $clientRepository->findOneBy(['migrationId' => $client['idordenador']]); if(!$clientEntity){ $clientEntity = new Client(); $clientEntity->setMigrationId($client['idordenador']); $clientEntity->setName($client['nombreordenador']); $clientEntity->setSerialNumber($client['numserie']); $clientEntity->setNetiface($client['netiface']); $clientEntity->setNetdriver($client['netdriver']); $clientEntity->setMac($client['mac']); $clientEntity->setIp($client['ip']); $clientEntity->setPosition(['x' => 0, 'y' => 0]); } $migrationId = $client['ordenadores.grupoid'] === 0 ? $client['ordenadores.idaula'] : $client['ordenadores.grupoid']; $organizationalUnit = $organizationalUnitRepository->findOneBy(['migrationId' => $migrationId]); if ($organizationalUnit){ $clientEntity->setOrganizationalUnit($organizationalUnit); } $hardwareProfile = $hardwareProfileRepository->findOneBy(['migrationId' => $client['ordenadores.idperfilhard']]); if ($hardwareProfile){ $clientEntity->setHardwareProfile($hardwareProfile); } $this->entityManager->persist($clientEntity); } $this->entityManager->flush(); return Command::SUCCESS; } }