迁移时出错,"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
列。
您可以更新您的 MySQL 版本,或者您可以尝试使用 text
作为替代。如果它不能按原样工作,您可以在使用 DB 之前和之后解码和编码您的 json 数据。
我正在尝试将 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.
因此,如果您使用的是 5.7.8 之前的 MySQL 版本,则只需将其创建为 text
字段(Laravel < 5.2 处理它)。
您需要使用 MySQL 5.7.8 或更高版本才能使用 json
列。
您可以更新您的 MySQL 版本,或者您可以尝试使用 text
作为替代。如果它不能按原样工作,您可以在使用 DB 之前和之后解码和编码您的 json 数据。