diff options
author | Jeremy Benoist <jeremy.benoist@gmail.com> | 2016-09-03 09:24:34 +0200 |
---|---|---|
committer | Jeremy Benoist <jeremy.benoist@gmail.com> | 2016-09-03 09:24:34 +0200 |
commit | 001a7bad66fd1ce2b208abfe89177e72b5e1baa5 (patch) | |
tree | f95e1eb0520067393309eec0f6d7b6ddc2d89a90 | |
parent | 985f5f9d05f7ff7e443442b1775923b379c141d6 (diff) | |
download | wallabag-001a7bad66fd1ce2b208abfe89177e72b5e1baa5.tar.gz wallabag-001a7bad66fd1ce2b208abfe89177e72b5e1baa5.tar.zst wallabag-001a7bad66fd1ce2b208abfe89177e72b5e1baa5.zip |
Add a check for the database connection
Checking for the driver isn't enough.
We are now checking if we can etablish a connection to the database before trying to do anything.
By displaying the error from the Exception (in case of error) we hope to reduce issues overload about people getting error with the database
-rw-r--r-- | src/Wallabag/CoreBundle/Command/InstallCommand.php | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/src/Wallabag/CoreBundle/Command/InstallCommand.php b/src/Wallabag/CoreBundle/Command/InstallCommand.php index 813ac720..50d0dfff 100644 --- a/src/Wallabag/CoreBundle/Command/InstallCommand.php +++ b/src/Wallabag/CoreBundle/Command/InstallCommand.php | |||
@@ -72,8 +72,10 @@ class InstallCommand extends ContainerAwareCommand | |||
72 | { | 72 | { |
73 | $this->defaultOutput->writeln('<info><comment>Step 1 of 5.</comment> Checking system requirements.</info>'); | 73 | $this->defaultOutput->writeln('<info><comment>Step 1 of 5.</comment> Checking system requirements.</info>'); |
74 | 74 | ||
75 | $fulfilled = true; | 75 | $rows = []; |
76 | 76 | ||
77 | // testing if database driver exists | ||
78 | $fulfilled = true; | ||
77 | $label = '<comment>PDO Driver</comment>'; | 79 | $label = '<comment>PDO Driver</comment>'; |
78 | $status = '<info>OK!</info>'; | 80 | $status = '<info>OK!</info>'; |
79 | $help = ''; | 81 | $help = ''; |
@@ -84,7 +86,21 @@ class InstallCommand extends ContainerAwareCommand | |||
84 | $help = 'Database driver "'.$this->getContainer()->getParameter('database_driver').'" is not installed.'; | 86 | $help = 'Database driver "'.$this->getContainer()->getParameter('database_driver').'" is not installed.'; |
85 | } | 87 | } |
86 | 88 | ||
87 | $rows = []; | 89 | $rows[] = [$label, $status, $help]; |
90 | |||
91 | // testing if connection to the database can be etablished | ||
92 | $label = '<comment>Database connection</comment>'; | ||
93 | $status = '<info>OK!</info>'; | ||
94 | $help = ''; | ||
95 | |||
96 | try { | ||
97 | $this->getContainer()->get('doctrine')->getManager()->getConnection()->connect(); | ||
98 | } catch (\Exception $e) { | ||
99 | $fulfilled = false; | ||
100 | $status = '<error>ERROR!</error>'; | ||
101 | $help = 'Can\'t connect to the database: '.$e->getMessage(); | ||
102 | } | ||
103 | |||
88 | $rows[] = [$label, $status, $help]; | 104 | $rows[] = [$label, $status, $help]; |
89 | 105 | ||
90 | foreach ($this->functionExists as $functionRequired) { | 106 | foreach ($this->functionExists as $functionRequired) { |