Migration Laravel 5.3迁移外键约束格式不正确
我在运行迁移iv时遇到此问题“[Illumb\Database\QueryException] SQLSTATE[HY000]:一般错误:1005无法创建表Migration Laravel 5.3迁移外键约束格式不正确,migration,laravel-5.3,Migration,Laravel 5.3,我在运行迁移iv时遇到此问题“[Illumb\Database\QueryException] SQLSTATE[HY000]:一般错误:1005无法创建表projecto_app\sql-118c_1d(错误号:150“外键约束不正确 (SQL:alter tableparksadd constraintparks\u user\u id\u foreign外键(user\u id)在删除c时引用users(id) ascade“ 用户表正在创建第一个表第二个表正在创建公园 use Illum
projecto_app
\sql-118c_1d
(错误号:150“外键约束不正确
(SQL:alter tableparks
add constraintparks\u user\u id\u foreign
外键(user\u id
)在删除c时引用users
(id
)
ascade“
用户表正在创建第一个表第二个表正在创建公园
use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class CreateParksTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('parks', function (Blueprint $table) {
$table->increments('id');
$table->integer('user_id');
$table->string('name',100);
$table->string('address',100);
$table->string('post-code',6);
$table->string('city',20);
$table->timestamps();
$table->softDeletes();
$table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('parks');
}
}
文件名为:
2017年1月12日000000日创建用户表
2017年2月9日111834日创建公园表
因此,您可以看到用户表tkat have PK比需要FK user_的公园更早。我希望您现在已经得到了答案。 对于仍在使用此解决方案的其他人,可能发生这种情况的原因之一是,在创建迁移时,文件会标记为创建日期2017\u 05\u 042553\u create\u parks\u table.php。
在这种情况下,由于公园依赖于用户表,只需重命名用户,并将创建日期更改为公园表创建日期之前的任何日期。我已将
Laravel
默认用户
表名更改为用户
。因此,在我在迁移文件中对其进行了更改之后,运行的php artisan migrate
解决了我这方面的问题