首页 > 解决方案 > 如何使用 Laravel 迁移将字符串列类型转换为整数?

问题描述

我正在尝试使用 Laravel 迁移更改列数据类型。但我面临以下错误。请帮帮我。

Schema::table('files', function(Blueprint $table) {
    $table->integer('app_id')->change();
    $table->index(['app_id', 'filename']);
});

SQLSTATE[42000]:语法错误或访问冲突:1064 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以utf8_unicode_ci在第 1 行的“CHARACTER SET utf8 DEFAULT 0 NOT NULL COLLATE”附近使用正确的语法(SQL:ALTER TABLE files CHANGE app_id app_id INT CHARACTER SET utf8 DEFAULT 0 NOT NULL COLLATE utf8_unicode_ci

标签: phpmysqllaravel

解决方案


作为https://github.com/doctrine/dbal/issues/3714的替代解决方案,它正在降级教义/dbal 包,您可以执行以下操作:

Schema::table('member_section', function (Blueprint $table) {
    $table->bigInteger('type')->charset(null)->collation(null)->change();
});

推荐阅读