我在laravel应用程序上迁移表时遇到一些问题。 它总是说
PDOException::(“ SQLSTATE [HY000]:常规错误:1005无法创建表
>gamehosting
。replies
(错误号:150”外键约束格式不正确“)”)
但是我看不到外键有问题,这是迁移
public function up()
{
Schema::create('replies', function (Blueprint $table) {
$table->increments('id');
$table->text('body');
$table->integer('question_id')->unsigned();
$table->integer('user_id');
$table->foreign('question_id')->references('id')->on('questions')->onDelete('cascade');
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('replies');
}
顺便说一句,它首先添加了该表,然后添加了问题表,但是由于错误而停止了迁移。我将其设置为第一个迁移,但仍然存在相同的问题。
答案 0 :(得分:2)
这意味着id
表上的questions
不是无符号整数。数据库中的question_id
必须与id
表上的questions
具有相同的类型。可能失败的另一个原因是因为questions
表和replies
表没有相同的排序规则或相同的引擎。