From cffcce0c921ca9360daa96e90bbf3e34642b262e Mon Sep 17 00:00:00 2001 From: Jeremy Benoist Date: Sat, 19 Nov 2016 11:30:55 +0100 Subject: =?UTF-8?q?Wallabag=20can=E2=80=99t=20work=20on=20PostgreSQL=20defaultOutput->writeln('Step 1 of 4. Checking system requirements.'); + $doctrineManager = $this->getContainer()->get('doctrine')->getManager(); $rows = []; @@ -95,7 +96,7 @@ class InstallCommand extends ContainerAwareCommand $help = ''; try { - $this->getContainer()->get('doctrine')->getManager()->getConnection()->connect(); + $doctrineManager->getConnection()->connect(); } catch (\Exception $e) { if (false === strpos($e->getMessage(), 'Unknown database') && false === strpos($e->getMessage(), 'database "'.$this->getContainer()->getParameter('database_name').'" does not exist')) { @@ -107,6 +108,26 @@ class InstallCommand extends ContainerAwareCommand $rows[] = [$label, $status, $help]; + // testing if PostgreSQL > 9.1 + $label = 'SGBD version'; + $status = 'OK!'; + $help = ''; + + if ('postgresql' === $doctrineManager->getConnection()->getSchemaManager()->getDatabasePlatform()->getName()) { + // return version should be like "PostgreSQL 9.5.4 on x86_64-apple-darwin15.6.0, compiled by Apple LLVM version 8.0.0 (clang-800.0.38), 64-bit" + $version = $doctrineManager->getConnection()->query('SELECT version();')->fetchColumn(); + + preg_match('/PostgreSQL ([0-9\.]+)/i', $version, $matches); + + if (isset($matches[1]) & version_compare($matches[1], '9.2.0', '<')) { + $fulfilled = false; + $status = 'ERROR!'; + $help = 'PostgreSQL should be greater than 9.1 (actual version: '.$matches[1].')'; + } + } + + $rows[] = [$label, $status, $help]; + foreach ($this->functionExists as $functionRequired) { $label = ''.$functionRequired.''; $status = 'OK!'; -- cgit v1.2.3