所有人。这是我两年软件开发生涯中的第一篇帖子,我之所以发布这篇帖子,是因为没有相关的答案,我已经不知道为什么会出现这个问题。
因此,我正在运行一个小项目,我们正在开发我们自己的网站,基于laravel5.6.28php框架,基于php7.2.4和mysql 5.7.21。
大多数时候一切似乎都很好,我已经用laravel框架工作了大约一年了,前一段时间我遇到过这个问题,但那是在一个测试项目上,所以我没有真正费心去修复它,但现在它又出现了。
当我与我的项目中的其他用户共享我的项目代码时,这种情况就会发生——它在大多数计算机上都能工作,只有一台除外。错误消息是illuminate\database\queryexception:sqlstate[hy000]:常规错误:1005无法创建表。。。外键约束格式不正确。
我找到的所有解决方案都是检查相应的列是否添加了unsigned(),但我确实检查了它,并且所有外键字段都添加了unsigned()。此外,在创建表之后还会添加外键。
它似乎在每一张table上都崩溃了,但它在所有其他项目成员的计算机上都能工作。
知道有什么问题吗?
下面是创建用户表的代码
public function up()
{
Schema::create('users', function (Blueprint $table) {
$table->increments('id');
$table->string('nick_name', 50)->unique();
$table->string('first_name', 50);
$table->string('last_name', 50);
$table->string('email', 100)->unique();
$table->string('password', 255);
$table->text('description')->nullable();
$table->string('twitter', 50)->nullable();
$table->string('facebook', 50)->nullable();
$table->string('instagram', 50)->nullable();
$table->string('linkedin', 50)->nullable();
$table->float('commitment')->default(1);
$table->string('position', 100)->default('Employee')->nullable();
$table->datetime('last_login')->nullable();
$table->integer('active')->unsigned()->default(1);
$table->integer('image_id')->unsigned()->default(1);
$table->integer('role_id')->unsigned()->default(1);
$table->timestamps();
$table->rememberToken();
});
Schema::table('users', function (Blueprint $table) {
$table->foreign('image_id')->references('id')->on('files');
$table->foreign('role_id')->references('id')->on('roles');
});
}
1条答案
按热度按时间doinxwow1#
如果我是你,我会像下面那样更新我的代码并检查它是否有效,
但奇怪的是,它在另一台计算机上工作,却在一台计算机上不工作。
祝你好运!