【发布时间】:2019-10-14 09:22:30
【问题描述】:
我有一个在本地流浪服务器上正确创建表的迁移,但是当我尝试使用 nginx 在 VPS 迁移时遇到奇怪的错误。
本地环境是 Vagrant/homestead(我不知道操作系统,抱歉),VPS 环境是 Debian 8,nginx。 Laravel 5.3 版 迁移要创建12个表,但是在结束过程之前遇到问题,所以只创建了10个表。顺便说一句,它表明 env 和其他设置是好的(我认为),只是在 1 个表中的 1 个字段是错误的
这是创建代码:
public function up()
{
Schema::create('vicards', function (Blueprint $table) {
$table->increments('id');
$table->string('visi_slug', 100);
$table->unique('visi_slug', 'visi_slug_unique');
$table->integer('user_id');
$table->index('user_id', 'cards_user_id_index');
$table->string('user_slug', 100);
$table->index('user_slug', 'cards_user_slug_index');
$table->string('avatar', 44)->default(0);
$table->string('header', 80);
$table->string('price', 12);
$table->text('description');
$table->text('pictures'); // 5 pics * 20 symbols + 4 commas
$table->text('videos'); // 3 videos * 41 symbols + 2 commas
$table->text('contacts'); //
$table->text('links'); // links separated by commas
$table->text('styles'); // object serialized
$table->tinyInteger('actual', 1)->default(0);
$table->timestamps();
});
}
问题调用此字段
$table->tinyInteger('actual', 1)->default(0);
工匠将其解释为:
`actual` tinyint not null default '0' auto_increment primary key
当然这是错误的,因为“自动增量主键”已经存在 - 第一个字段
预期结果 - 定期创建表。
我收到错误:
" [照亮\数据库\查询异常]
SQLSTATE [42000]:语法错误或访问冲突:1067 '实际'的默认值无效(SQL:创建表vicards(id int unsigned not
null auto_increment 主键,visi_slugvarchar(100) 不为空,user_idint 不为空,user_slugvarchar(100) 不为空,avatarvarchar
(44) not null default '0', header varchar(80) not null, price varchar(12) not null, description text not null, pictures text not null,
videos 文本非空,contacts 文本非空,links 文本非空,styles 文本非空,actualtinyint 非空默认 '0' auto_inc
rement 主键,created_attimestamp null,updated_attimestamp null) 默认字符集 utf8 collate utf8_unicode_ci)"
这个错误的原因是什么?请帮帮我。
【问题讨论】:
标签: php migration laravel-5.3