This commit is contained in:
Robin Appelman 2026-02-03 19:58:34 -01:00 committed by GitHub
commit cbe1f783fc
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -7,6 +7,7 @@
*/
namespace OC\Files\Cache;
use Doctrine\DBAL\Exception\UniqueConstraintViolationException;
use OCP\DB\QueryBuilder\IQueryBuilder;
use OCP\Files\Storage\IStorage;
use OCP\IDBConnection;
@ -56,9 +57,16 @@ class Storage {
$this->numericId = (int)$row['numeric_id'];
} else {
$available = $isAvailable ? 1 : 0;
if ($connection->insertIfNotExist('*PREFIX*storages', ['id' => $this->storageId, 'available' => $available])) {
$this->numericId = $connection->lastInsertId('*PREFIX*storages');
} else {
$query = $connection->getQueryBuilder();
$query->insert('storages')
->values([
'id' => $query->createNamedParameter($this->storageId),
'available' => $query->createNamedParameter($available, IQueryBuilder::PARAM_INT),
]);
try {
$query->executeStatement();
$this->numericId = $query->getLastInsertId();
} catch (UniqueConstraintViolationException $e) {
if ($row = self::getStorageById($this->storageId)) {
$this->numericId = (int)$row['numeric_id'];
} else {