|
15 | 15 | use Doctrine\Common\EventManager;
|
16 | 16 | use Doctrine\DBAL\DriverManager;
|
17 | 17 | use Doctrine\DBAL\Schema\DefaultSchemaManagerFactory;
|
| 18 | +use Doctrine\DBAL\Types\BigIntType; |
18 | 19 | use Doctrine\DBAL\Types\Type as DBALType;
|
19 | 20 | use Doctrine\ORM\EntityManager;
|
20 | 21 | use Doctrine\ORM\Mapping\Driver\AttributeDriver;
|
@@ -153,10 +154,17 @@ public function testExtractEnumLegacy()
|
153 | 154 | */
|
154 | 155 | public static function legacyTypesProvider(): array
|
155 | 156 | {
|
| 157 | + // DBAL 4 has a special fallback strategy for BINGINT (int -> string) |
| 158 | + if (!method_exists(BigIntType::class, 'getName')) { |
| 159 | + $expectedBingIntType = [new LegacyType(LegacyType::BUILTIN_TYPE_INT), new Type(LegacyType::BUILTIN_TYPE_STRING)]; |
| 160 | + } else { |
| 161 | + $expectedBingIntType = [new LegacyType(LegacyType::BUILTIN_TYPE_STRING)]; |
| 162 | + } |
| 163 | + |
156 | 164 | return [
|
157 | 165 | ['id', [new LegacyType(LegacyType::BUILTIN_TYPE_INT)]],
|
158 | 166 | ['guid', [new LegacyType(LegacyType::BUILTIN_TYPE_STRING)]],
|
159 |
| - ['bigint', [new LegacyType(LegacyType::BUILTIN_TYPE_STRING)]], |
| 167 | + ['bigint', $expectedBingIntType], |
160 | 168 | ['time', [new LegacyType(LegacyType::BUILTIN_TYPE_OBJECT, false, 'DateTime')]],
|
161 | 169 | ['timeImmutable', [new LegacyType(LegacyType::BUILTIN_TYPE_OBJECT, false, 'DateTimeImmutable')]],
|
162 | 170 | ['dateInterval', [new LegacyType(LegacyType::BUILTIN_TYPE_OBJECT, false, 'DateInterval')]],
|
|
0 commit comments