在 cli-config.php 中使用 ENUM



我是教义的新手,所以请耐心等待。

当我尝试运行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 DoctrineORMEntityManager::create($dbParams, $config);

我试图将这一行添加到参数中:

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

但是文档清楚地说明了参数中可以包含哪些选项。

我无法更改数据库。这不是一个symfony项目。

有人有想法吗?

好的

,这可能是一个解决方案。

基于这篇文章,我像这样修改了我的代码:

...
$config = Setup::createAnnotationMetadataConfiguration($paths, $isDevMode);
$entityManager = DoctrineORMEntityManager::create($dbParams, $config);
$conn = $entityManager->getConnection();
$sqlSchemaManager = new SQLServerSchemaManager($conn);
$sqlSchemaManager->getDatabasePlatform()->registerDoctrineTypeMapping('enum', 'string');
return $entityManager;

相关内容

  • 没有找到相关文章