|
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;
|
@@ -143,10 +144,17 @@ public function testExtractEnum()
|
143 | 144 |
|
144 | 145 | public static function typesProvider(): array
|
145 | 146 | {
|
| 147 | + // DBAL 4 has a special fallback strategy for BINGINT (int -> string) |
| 148 | + if (!method_exists(BigIntType::class, 'getName')) { |
| 149 | + $expectedBingIntType = [new Type(Type::BUILTIN_TYPE_INT), new Type(Type::BUILTIN_TYPE_STRING)]; |
| 150 | + } else { |
| 151 | + $expectedBingIntType = [new Type(Type::BUILTIN_TYPE_STRING)]; |
| 152 | + } |
| 153 | + |
146 | 154 | return [
|
147 | 155 | ['id', [new Type(Type::BUILTIN_TYPE_INT)]],
|
148 | 156 | ['guid', [new Type(Type::BUILTIN_TYPE_STRING)]],
|
149 |
| - ['bigint', [new Type(Type::BUILTIN_TYPE_STRING)]], |
| 157 | + ['bigint', $expectedBingIntType], |
150 | 158 | ['time', [new Type(Type::BUILTIN_TYPE_OBJECT, false, 'DateTime')]],
|
151 | 159 | ['timeImmutable', [new Type(Type::BUILTIN_TYPE_OBJECT, false, 'DateTimeImmutable')]],
|
152 | 160 | ['dateInterval', [new Type(Type::BUILTIN_TYPE_OBJECT, false, 'DateInterval')]],
|
|
0 commit comments