zoukankan      html  css  js  c++  java
  • Laravel 中更新 Enum 类型的字段异常

    当用 Laravel 的数据迁移来更新 Enum 类型的字段时,比如:修改字段名

    Schema::table('table_name', function (Blueprint $table) {
      $table->renameColumn('from', 'to');
    });

    当执行迁移命令的时候:

    php artisan migrate

    会报异常:

    DoctrineDBALDBALException:Unknown database type enum requested, 
    DoctrineDBALPlatformsMySQL57Platform may not support it.

    当遇到这个问题的时候,首先确保已经安装了扩展 doctrine/dbal ,因为 Laravel 官方文档已经提到:

    在修改字段之前,请确保将 doctrine/dbal 依赖添加到 composer.json 文件中。Doctrine DBAL 库用于确定字段的当前状态, 并创建对该字段进行指定调整所需的 SQL 查询

    如果没有安装此扩展,请执行命令安装:

    composer require doctrine/dbal

    然后修改迁移文件

    DB::getDoctrineSchemaManager()
        ->getDatabasePlatform()
        ->registerDoctrineTypeMapping('enum', 'string');
    
    Schema::table('pattern_column_orders', function (Blueprint $table) {
        $table->renameColumn('payment', 'payment_method');
    });

    这时候再执行迁移命令发现已经可以成功执行了

  • 相关阅读:
    Codeforces Round #609 (Div. 2)
    Educational Codeforces Round 78 (Rated for Div. 2)
    Codeforces
    crontab
    C6 C7的开机启动流程
    平均负载压力测试
    ps 和 top
    if判断
    使用3种协议搭建本地yum仓库
    linux rpm包
  • 原文地址:https://www.cnblogs.com/songlen/p/13305306.html
Copyright © 2011-2022 走看看