• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

Laravel 5.1 请求的未知数据库类型枚举

用户头像
it1352
帮助4

问题说明

在运行 php artisan migrate 时,出现以下错误

While running php artisan migrate, I got the following error

[DoctrineDBALDBALException]
请求的数据库类型未知,DoctrineDBALPlatformsMySqlPlatform 可能不支持.

[DoctrineDBALDBALException]
Unknown database type enum requested, DoctrineDBALPlatformsMySqlPlatform may not support it.

如何解决这个问题.

代码:

public function up() {
    Schema::table('blogs', function (Blueprint $table) {
        $table->string('wordpress_id')->nullable();
        $table->string('谷歌_blog_id')->nullable()->change();
    });
}

正确答案

#1

官方 Laravel 5.1 文档指出:

The official Laravel 5.1 documentation states:

注意:当前不支持使用枚举列重命名表中的列.

Note: Renaming columns in a table with a enum column is not currently supported.

如果您尝试更改另一列并不重要,如果表包含 enum 任何地方,它都将不起作用.这是 Doctrine DBAL 问题.

It doesn't matter if you're trying to change another column, if the table contains a enum anywhere it won't work. It's a Doctrine DBAL issue.

作为一种解决方法,您可以删除该列并添加一个新列(列数据将丢失):

As a workaround you could either drop the column and add a new one (column data will be lost):

public function up()
{
    Schema::table('users', function(Blueprint $table)
    {
        $table->dropColumn('name');
    });

    Schema::table('users', function(Blueprint $table)
    {
        $table->text('username');
    });
}

或使用 DB 语句:

public function up()
{
    DB::statement('ALTER TABLE projects CHANGE slug url VARCHAR(200)');
}

public function down()
{
    DB::statement('ALTER TABLE projects CHANGE url slug VARCHAR(200)');
}

来源:https://github.com/laravel/framework/issues/1186

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /reply/detail/tangicaef
系列文章
更多 icon
同类精品
更多 icon
继续加载