美文网首页
symfony 创建数据库映射时报错: Unknown data

symfony 创建数据库映射时报错: Unknown data

作者: 捞兴 | 来源:发表于2018-10-29 12:17 被阅读0次

    配置好entity后,编写anotation注释,来声明‘元数据’(metadata)的参数
    然后输入执行映射命令行时,出现了以下错误信息

    PS D:\symfony_project\my_project_name> php bin/console doctrine:schema:validate
    [Mapping]  OK - The mapping files are correct.
    
    In AbstractPlatform.php line 423:
    
      Unknown database type enum requested, Doctrine\DBAL\Platforms\MySQL57Platform may not support it.
    
    
    doctrine:schema:validate [--skip-mapping] [--skip-sync] [--em [EM]] [-h|--help] [-q|--quiet] [-v|vv|vvv|--verbose] [-V|--version] [--ansi] [--no-ansi] [-n|--no-interaction] [-e|--env ENV] [--no-debug] [--] <command>
    

    百度了一轮,终于找到解决办法
    可以再config.yml里面修改配置

    本来config.yml中Doctrine的配置

    # Doctrine Configuration
    doctrine:
        dbal:
            driver: pdo_mysql
            host: '%database_host%'
            port: '%database_port%'
            dbname: '%database_name%'
            user: '%database_user%'
            password: '%database_password%'
            charset: UTF8
            # if using pdo_sqlite as your database driver:
            #   1. add the path in parameters.yml
            #     e.g. database_path: '%kernel.project_dir%/var/data/data.sqlite'
            #   2. Uncomment database_path in parameters.yml.dist
            #   3. Uncomment next line:
            #path: '%database_path%'
        orm:
            auto_generate_proxy_classes: '%kernel.debug%'
            naming_strategy: doctrine.orm.naming_strategy.underscore
            auto_mapping: true
    

    修改后的配置如下:

    # Doctrine Configuration
    doctrine:
        dbal:
            driver: pdo_mysql
            host: '%database_host%'
            port: '%database_port%'
            dbname: '%database_name%'
            user: '%database_user%'
            password: '%database_password%'
            charset: UTF8
            # if using pdo_sqlite as your database driver:
            #   1. add the path in parameters.yml
            #     e.g. database_path: '%kernel.project_dir%/var/data/data.sqlite'
            #   2. Uncomment database_path in parameters.yml.dist
            #   3. Uncomment next line:
            #path: '%database_path%'
            mapping_types:
                enum: string
                set: string
                varbinary: string
                tinyblob: text
        orm:
            auto_generate_proxy_classes: '%kernel.debug%'
            naming_strategy: doctrine.orm.naming_strategy.underscore
            auto_mapping: true
    

    以后碰到相同问题,把不支持的几个类型 enum,set等等换成 mysql常用的基本类型 就好了

    参考博文:原 SF2 : doctrine 报错处理办法: Unknown database type enum requested
    原创文章:doctrine 报错处理办法: Unknown database type enum requested

    相关文章

      网友评论

          本文标题:symfony 创建数据库映射时报错: Unknown data

          本文链接:https://www.haomeiwen.com/subject/gekbtqtx.html