我有一个迁移,该迁移可以在本地无业游民服务器上正确创建表,但是当我尝试使用nginx在VPS上迁移时,会遇到奇怪的错误。
本地环境是Vagrant / homestead(我不知道OS,对不起),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
并且偏离路线,这是错误的,因为已经存在“ auto_increment主键”-第一个字段
预期结果-常规表创建。
我遇到错误:
“ [Illuminate \ Database \ QueryException]
SQLSTATE [42000]:语法错误或访问冲突:1067'actual'的默认值无效(SQL:创建表vicards
(id
int unsigned not
null auto_increment主键,visi_slug
varchar(100)不为空,user_id
int不为空,user_slug
varchar(100)不为空,avatar
varchar
(44)不为空默认值'0',header
varchar(80)不为空,price
varchar(12)不为空,description
文本不为空,pictures
文本为不空值,
videos
文本不为空,contacts
文本不为空,links
文本不为空,styles
文本不为空,actual
tinyint不为空默认值'0'auto_inc
rement主键,created_at
时间戳为空,updated_at
时间戳为空)默认字符集utf8整理utf8_unicode_ci)“
此错误的原因是什么?请帮助我。
答案 0 :(得分:0)
不要使用长度值,只需创建具有默认值的tinyint:
$table->tinyInteger('actual')->default(0);