Использование ENUM в cli-config.php - PullRequest
0 голосов
/ 04 июня 2019

Я новичок в доктрине, поэтому наберитесь терпения.

Когда я пытаюсь запустить vendor/bin/doctrine orm:schema-tool:drop --force, я получаю следующее сообщение об ошибке:

Запрошено перечисление неизвестного типа базы данных, Doctrine \ DBAL \ Platforms \ MySQL57Platform может не поддерживать его.

Да, да, да, я знаю, я читал множество тем по этому поводу, например этот .

Моя проблема в том, что я хочу сделать это в моем bootstrap.php для cli-config.php, как в документации.

Вот мой код:

    $isDevMode = true;
    $paths = [APP_DIR . 'classes/Entities'];
    $dbParams = [
        'driver'        => 'pdo_mysql',
        'user'          => Config::DB_USER,
        'password'      => Config::DB_PASSWORD,
        'dbname'        => Config::DB_DATABASE
    ];
    $config = Setup::createAnnotationMetadataConfiguration($paths, $isDevMode);
    return \Doctrine\ORM\EntityManager::create($dbParams, $config);

Я пытался добавить эту строку в параметры:

'mapping_types' => ['enum' => 'string']

но в документации четко сказано, какие параметры могут быть в параметрах.

Не могу изменить базу данных. Это не проект Symfony.

У кого-нибудь есть идея?

1 Ответ

0 голосов
/ 04 июня 2019

Хорошо, это может быть решением.

На основании этого поста Я изменил свой код следующим образом:

...
$config = Setup::createAnnotationMetadataConfiguration($paths, $isDevMode);

$entityManager = \Doctrine\ORM\EntityManager::create($dbParams, $config);
$conn = $entityManager->getConnection();
$sqlSchemaManager = new SQLServerSchemaManager($conn);
$sqlSchemaManager->getDatabasePlatform()->registerDoctrineTypeMapping('enum', 'string');
return $entityManager;
...