【问题标题】:Cant migrate tables with foreign keys无法使用外键迁移表
【发布时间】:2017-09-06 17:36:09
【问题描述】:

我在我的应用程序中创建了一些迁移,但出现以下错误:

"General error: 1005 Can't create table+"外键约束格式不正确")+laravel".

找不到我的迁移问题。

Schema::create('articles', function (Blueprint $table) {
    $table->increments('id');
    $table->boolean('online');
    $table->timestamps();
});

Schema::create('article_translations', function (Blueprint $table) {
    $table->increments('id');
    $table->integer('article_id')->unsigned();
    $table->string('locale')->index();

    $table->string('name');
    $table->text('text');

    $table->unique(['article_id','locale']);
    $table->foreign('article_id')->references('id')->on('articles')->onDelete('cascade');
});

【问题讨论】:

  • 这些是否在同一个文件中?我通常将每个表都放在单独的迁移中。
  • 它们在不同的文件中
  • @Mick 我认为这是一个很好的做法。整洁的编码

标签: laravel laravel-5 laravel-5.3 database-migration


【解决方案1】:

您为什么不单独尝试一下。像这样

Schema::table('article_translations', function($table) 
{     
    $table->foreign('article_id')->references('id')->on('articles')->onDelete('cascade');
});

【讨论】:

  • 这就是我所做的,我创建了两个表,然后将所有外键添加到一个单独的文件中。
  • 还有问题吗? br/
猜你喜欢
  • 1970-01-01
  • 2016-06-24
  • 2021-08-30
  • 2016-02-11
  • 2023-01-08
  • 2014-05-02
  • 1970-01-01
相关资源
最近更新 更多