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