protected function execute(InputInterface $input, OutputInterface $output) { if ($input->getOption("password")) { $password = $input->getOption("password"); } else { $question = new Question('Password: '******'question'); $password = $helper->ask($input, $output, $question); } $server = new Server\Database\Redshift(); $server->setHostname($input->getArgument("host")); $server->setConnectionId($input->getArgument("connectionId")); $server->setUser($input->getArgument("user")); $server->setPassword($password); $server->setDatabase($input->getArgument("database")); $server->setMode("active"); $server->setActive(false); // Write to DB $entityManager = $this->getProvisioningServer("redshift")->getEntityManager(); $entityManager->persist($server); $entityManager->flush(); $table = $this->getRedshiftServersTable([$server], $output); $table->render(); }
protected function execute(InputInterface $input, OutputInterface $output) { if ($input->getOption("password")) { $password = $input->getOption("password"); } else { $question = new Question('Password: '******'question'); $password = $helper->ask($input, $output, $question); } $server = new Server\Database\Redshift(); $server->setHostname($input->getArgument("hostname")); $server->setConnectionId($input->getArgument("connectionId")); $server->setUser("provisioning"); $server->setPassword($this->createPassword()); $server->setDatabase("provisioning"); $server->setMode("active"); $server->setActive(false); // convert errors to PDOExceptions $options = [\PDO::ATTR_ERRMODE => \PDO::ERRMODE_EXCEPTION, \PDO::ATTR_EMULATE_PREPARES => false]; $dsn = "pgsql:host={$server->getHostname()};port=5439;dbname={$input->getArgument("database")}"; $pdo = new \PDO($dsn, $input->getArgument("user"), $password, $options); $pdo->exec("CREATE USER {$server->getUser()} CREATEUSER PASSWORD '{$server->getPassword()}';"); $pdo->exec("CREATE DATABASE {$server->getDatabase()};"); $pdo->exec("REVOKE ALL PRIVILEGES ON SCHEMA public FROM PUBLIC;"); // Write to DB $entityManager = $this->getProvisioningServer("redshift")->getEntityManager(); $entityManager->persist($server); $entityManager->flush(); $table = $this->getRedshiftServersTable([$server], $output); $table->render(); }