setName('migrate:create:import') ->setAliases(array("ik:mg:import")) ->setDescription('Create yaml for import.') ->setHelp('Create yaml from table.') ->addArgument('table', InputArgument::REQUIRED, "Table name to export data.") ->addArgument('file-name', InputArgument::REQUIRED, "Name of the file."); } protected function execute(InputInterface $input, OutputInterface $output) { $em = $this->getContainer()->get('doctrine')->getManager(); $table = $input->getArgument('table'); $fileName = $input->getArgument('file-name'); $stmt = $em->getConnection()->executeQuery("select * from " . $table); if ($stmt->rowCount() > 0) { $result = $stmt->fetchAll(); $str = "insertorupdate:\n"; $str .= " $table:\n"; foreach ($result as $row) { $first = true; foreach ($row as $key => $value) { $value = str_replace("\\", '\\\\', $value); $value = str_replace('"', '\"', $value); $value = str_replace(array("\n", "\r"), array("\\n", "\\r"), $value); if (trim($value) == "") { // al estar vacio el string, tengo que verificar si el valor es null if (isset($row['id'])) { // existe la columna id para utilizar en el where $stmtNull = $em->getConnection()->executeQuery("select if(isnull(" . $key . "), 1, 0) as valor from " . $table . " where id = " . $row['id']); if ($stmtNull->rowCount() > 0) { $resultNull = $stmtNull->fetchAll(); $value = $resultNull[0]['valor'] == 1 ? "NULL" : ""; } } } if ($first) { $str .= " - $key: \"" . $value . "\"\n"; $first = false; } else { $str .= " $key: \"" . $value . "\"\n"; } } } file_put_contents($fileName, $str); } else { echo "No results"; } } }