迁移时出错,"Syntax error or access violation:1064"

Getting error in migration, "Syntax error or access violation:1064"

我正在尝试将 json 字符串插入到我的 Laravel 5.2 迁移中,但出现错误 "Syntax error or access violation:1064"。

我目前使用 MySQL 版本 5.6.17 作为我的数据库。

这是我的迁移文件:

 Schema::create('profile', function (Blueprint $table) {
        $table->increments('id');
        $table->json('settings')->nullable();
        $table->timestamps();
    });

我可以用我的 MySQL 数据库实现这一点,还是我需要用 MongoDB 切换它?

从 Laravel 5.2 开始,$table->json() 方法将尝试在数据库中创建一个实际的 JSON 字段。但是,直到 MySQL 5.7.8.

才将 JSON 字段添加到 MySQL

因此,如果您使用的是 5.7.8 之前的 MySQL 版本,则只需将其创建为 text 字段(Laravel < 5.2 处理它)。

您需要使用 MySQL 5.7.8 或更高版本才能使用 json 列。

https://laracasts.com/discuss/channels/eloquent/table-json-generates-an-error-when-running-migrations

您可以更新您的 MySQL 版本,或者您可以尝试使用 text 作为替代。如果它不能按原样工作,您可以在使用 DB 之前和之后解码和编码您的 json 数据。