【发布时间】:2016-07-23 16:00:24
【问题描述】:
我正在尝试将本地 laravel 数据库迁移到 RDS,我在使用 Elastic beanstalk 时遇到了很多问题,所以我决定采用不同的方式。迁移时,我拥有的每个外键都会出现以下错误:
[Illuminate\Database\QueryException] SQLSTATE[HY000]:一般错误: 1215 无法添加外键约束(SQL:alter table
videosadd 约束videos_object_id_foreign外键(object_id) 在删除级联时引用objects(id)
PDO异常
[PDOException]
SQLSTATE[HY000]: General error: 1215 Cannot add foreign key constraint
我研究了 RDS 的外键约束,他们说它们没有被强制执行,但它说它们可以用于信息目的。 每个外键都是无符号的。
Schema::create('videos', function (Blueprint $table) {
$table->increments('id');
$table->integer('object_id')->unsigned()->nullable();
$table->foreign('object_id')->references('id')->on('objects')->onDelete('cascade');
$table->integer('user_id')->unsigned()->nullable();
$table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');
$table->rememberToken();
$table->timestamps();
});
注意:我也尝试在创建表后将外键分离到单独的迁移中,但没有成功。
【问题讨论】:
-
先迁移哪个?
videos还是objects?这可能是因为您仍然没有objects表,而您正在尝试使用该表创建引用。
标签: php mysql sql laravel amazon-web-services