我认为我写的所有内容都正确。当我运行“php artisan migrate”命令时出现PDOException。我在stackoverflow中经历了相关的所有帖子。但我没有得到任何解决方案。
[PDOException]
SQLSTATE [HY000]:常规错误:1005无法创建表laravel_jobs
。#sql-
ec4_170
(错误号:150“外键约束形成错误”)
答案 0 :(得分:2)
错误:Can't create table laravel_jobs
所以我认为问题不在于Resume
表迁移。
答案 1 :(得分:1)
我认为您需要更新迁移代码,例如:
{{1}}
希望这对你有用!
答案 2 :(得分:0)
创建表后应创建外键。像这样:
public function up()
{
Schema::enableForeignKeyConstraints();
Schema::create('user', function (Blueprint $table) {
$table->engine = 'InnoDB';
$table->uuid('id');
$table->primary('id');
$table->string('class_code');
$table->string('username')->nullable();
$table->string('email_address')->nullable();
$table->uuid('contact_id')->nullable();
$table->uuid('customer_id')->nullable();
$table->char('password_hash', 64)->nullable();
$table->boolean('active')->nullable();
$table->string('remember_token', 100)->nullable();
$table->timestamps();
});
Schema::table('user', function(Blueprint $table) {
$table->foreign('contact_id')->references('id')->on('contact')->onDelete('cascade')->onUpdate('cascade');
$table->foreign('customer_id')->references('id')->on('customer')->onDelete('cascade')->onUpdate('cascade');
});
}
但是,您可能需要确保运行迁移的顺序正确无误。因此,您可能希望create table函数创建可为空的外键。
答案 3 :(得分:0)
检查以下条款:
1. The datatype of id column on users table and user_id on resume table are same.
2. If id is unsigned integer or big integer then user_id will be unsigned
integer or big integer.
3. Length of id on users table and user_id on resume table will be same.
希望这能解决你的问题。