summaryrefslogtreecommitdiffstats
path: root/lib/private/Repair
diff options
context:
space:
mode:
authorJoas Schilling <coding@schilljs.com>2017-09-08 11:37:22 +0200
committerJoas Schilling <coding@schilljs.com>2017-09-08 11:45:16 +0200
commit29e1aa57e108853caaf2dcac84c4c75f19510f34 (patch)
tree25348f9c998fb79816203946b1b15aaf02a9c0dc /lib/private/Repair
parent194f880073f5a549049db7387e9c988511a07d8b (diff)
downloadnextcloud-server-29e1aa57e108853caaf2dcac84c4c75f19510f34.tar.gz
nextcloud-server-29e1aa57e108853caaf2dcac84c4c75f19510f34.zip
Ask the schema whether the table and column exist
Signed-off-by: Joas Schilling <coding@schilljs.com>
Diffstat (limited to 'lib/private/Repair')
-rw-r--r--lib/private/Repair/Owncloud/SaveAccountsTableData.php19
1 files changed, 6 insertions, 13 deletions
diff --git a/lib/private/Repair/Owncloud/SaveAccountsTableData.php b/lib/private/Repair/Owncloud/SaveAccountsTableData.php
index ae56004020d..c9e67356fb9 100644
--- a/lib/private/Repair/Owncloud/SaveAccountsTableData.php
+++ b/lib/private/Repair/Owncloud/SaveAccountsTableData.php
@@ -23,8 +23,6 @@
namespace OC\Repair\Owncloud;
-use Doctrine\DBAL\Exception\InvalidFieldNameException;
-use Doctrine\DBAL\Exception\TableNotFoundException;
use OCP\DB\QueryBuilder\IQueryBuilder;
use OCP\IConfig;
use OCP\IDBConnection;
@@ -86,20 +84,15 @@ class SaveAccountsTableData implements IRepairStep {
* @return bool
*/
protected function shouldRun() {
- $query = $this->db->getQueryBuilder();
- $query->select('*')
- ->from('accounts')
- ->where($query->expr()->isNotNull('user_id'))
- ->setMaxResults(1);
+ $schema = $this->db->createSchema();
- try {
- $query->execute();
- return true;
- } catch (InvalidFieldNameException $e) {
- return false;
- } catch (TableNotFoundException $e) {
+ $tableName = $this->config->getSystemValue('dbtableprefix', 'oc_') . 'accounts';
+ if (!$schema->hasTable($tableName)) {
return false;
}
+
+ $table = $schema->getTable($tableName);
+ return $table->hasColumn('user_id');
}
/**