fix: remove use of depricated insertIfNotExist from Files\Cache\Storage

Signed-off-by: Robin Appelman <robin@icewind.nl>
This commit is contained in:
Robin Appelman 2024-02-26 18:01:59 +01:00
parent 4ba3d4a31a
commit 6ea4a97634

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 {