【发布时间】:2020-01-12 13:15:35
【问题描述】:
我运行的是 Laravel 6.0.2,我的向上迁移方法如下:
Schema::create('users', function (Blueprint $table) {
$table->increments('id');
$table->string('first_name');
$table->string('last_name');
$table->string('email')->unique();
$table->string('password');
$table->boolean('admin')->default(false);
$table->boolean('manager')->default(false);
$table->rememberToken();
$table->timestamps();
});
create table `users` (
`id` int unsigned not null auto_increment primary key,
`first_name` varchar(255) not null,
`last_name` varchar(255) not null,
`email` varchar(255) not null,
`password` varchar(255) not null,
`admin` tinyint(1) not null default ('0'),
`manager` tinyint(1) not null default ('0'),
`remember_token` varchar(100) null,
`created_at` timestamp null,
`updated_at` timestamp null
) default character set utf8mb4 collate 'utf8mb4_unicode_ci'
我已经在在线语法检查器上运行了该 SQL,这给了我和 admin tinyint(1) not null default ('0'), 行上的错误。
我不确定这是否是 Laravel 6.0.2 的错误,因为它似乎在该更新之前有效。
有没有人遇到过这个问题并知道修复方法?
【问题讨论】:
-
尝试在默认值上传递 0 而不是 False
-
SQL 语法看起来对 MariaDB 10.3 有效。哪个“在线语法检查器”报告错误?那个“在线语法检查器”是否执行与 MariaDB 相同的规则? MariaDB 是否报告语法错误? (似乎需要修复的是“在线语法检查器”,而不是 Laravel 或 MariaDB)
-
@aynber 不走运
-
请尝试在连接属性(config/database.php)中设置
'strict' => 'false' -
参考:docs.travis-ci.com/user/database-setup/#mariadb 我不熟悉 travis ci。生成的 SQL 语法对 MariaDB 10.3.x 有效。它可能在 MariaDB 10.2.x 中也有效