Update to doctrine ORM 3.0

This commit is contained in:
Alejandro Celaya
2024-02-17 10:21:36 +01:00
parent e919901487
commit e073b4331a
18 changed files with 56 additions and 55 deletions

View File

@@ -6,7 +6,7 @@ namespace ShlinkMigrations;
use Doctrine\DBAL\Exception;
use Doctrine\DBAL\Platforms\MySQLPlatform;
use Doctrine\DBAL\Platforms\SqlitePlatform;
use Doctrine\DBAL\Platforms\SQLitePlatform;
use Doctrine\DBAL\Schema\Schema;
use Doctrine\DBAL\Schema\SchemaException;
use Doctrine\Migrations\AbstractMigration;
@@ -32,7 +32,7 @@ class Version20160819142757 extends AbstractMigration
is_subclass_of($platformClass, MySQLPlatform::class) => $column
->setPlatformOption('charset', 'utf8mb4')
->setPlatformOption('collation', 'utf8mb4_bin'),
is_subclass_of($platformClass, SqlitePlatform::class) => $column->setPlatformOption('collate', 'BINARY'),
is_subclass_of($platformClass, SQLitePlatform::class) => $column->setPlatformOption('collate', 'BINARY'),
default => null,
};
}

View File

@@ -8,7 +8,6 @@ use Doctrine\DBAL\Exception;
use Doctrine\DBAL\Platforms\MySQLPlatform;
use Doctrine\DBAL\Schema\Schema;
use Doctrine\Migrations\AbstractMigration;
use PDO;
use Shlinkio\Shlink\Common\Exception\InvalidArgumentException;
use Shlinkio\Shlink\Common\Util\IpAddress;
@@ -33,11 +32,11 @@ final class Version20180913205455 extends AbstractMigration
$st = $this->connection->executeQuery($qb->getSQL());
$qb = $this->connection->createQueryBuilder();
$qb->update('visits', 'v')
->set('v.remote_addr', ':obfuscatedAddr')
->where('v.id=:id');
$qb->update('visits')
->set('remote_addr', ':obfuscatedAddr')
->where('id=:id');
while ($row = $st->fetch(PDO::FETCH_ASSOC)) {
while ($row = $st->fetchAssociative()) {
$addr = $row['remote_addr'] ?? null;
if ($addr === null) {
continue;
@@ -46,7 +45,7 @@ final class Version20180913205455 extends AbstractMigration
$qb->setParameters([
'id' => $row['id'],
'obfuscatedAddr' => $this->determineAddress((string) $addr),
])->execute();
])->executeQuery();
}
}

View File

@@ -32,7 +32,7 @@ final class Version20200105165647 extends AbstractMigration
$qb = $this->connection->createQueryBuilder();
$qb->update('visit_locations')
->set($columnName, ':zeroValue')
->where($qb->expr()->orX(
->where($qb->expr()->or(
$qb->expr()->eq($columnName, ':emptyString'),
$qb->expr()->isNull($columnName),
))

View File

@@ -29,10 +29,11 @@ final class Version20200323190014 extends AbstractMigration
->andWhere($qb->expr()->eq('region_name', ':emptyString'))
->andWhere($qb->expr()->eq('city_name', ':emptyString'))
->andWhere($qb->expr()->eq('timezone', ':emptyString'))
->andWhere($qb->expr()->eq('lat', 0))
->andWhere($qb->expr()->eq('lon', 0))
->andWhere($qb->expr()->eq('lat', ':latLong'))
->andWhere($qb->expr()->eq('lon', ':latLong'))
->setParameter('isEmpty', true)
->setParameter('emptyString', '')
->setParameter('latLong', 0)
->executeStatement();
}

View File

@@ -5,8 +5,8 @@ declare(strict_types=1);
namespace ShlinkMigrations;
use Cake\Chronos\Chronos;
use Doctrine\DBAL\Driver\Result;
use Doctrine\DBAL\Platforms\MySQLPlatform;
use Doctrine\DBAL\Result;
use Doctrine\DBAL\Schema\Schema;
use Doctrine\DBAL\Types\Types;
use Doctrine\Migrations\AbstractMigration;
@@ -33,7 +33,7 @@ final class Version20201102113208 extends AbstractMigration
public function postUp(Schema $schema): void
{
// If there's only one API key and it's active, link all existing URLs with it
// If there's only one API key, and it's active, link all existing URLs with it
$qb = $this->connection->createQueryBuilder();
$qb->select('id')
->from('api_keys')
@@ -47,8 +47,7 @@ final class Version20201102113208 extends AbstractMigration
'expiration' => Chronos::now()->toDateTimeString(),
]);
/** @var Result $result */
$result = $qb->execute();
$result = $qb->executeQuery();
$id = $this->resolveOneApiKeyId($result);
if ($id === null) {
return;
@@ -58,7 +57,7 @@ final class Version20201102113208 extends AbstractMigration
$qb->update('short_urls')
->set(self::API_KEY_COLUMN, ':apiKeyId')
->setParameter('apiKeyId', $id)
->execute();
->executeQuery();
}
private function resolveOneApiKeyId(Result $result): string|int|null