Změna pořadí migrací

Když migrujeme tabulky s cizími klíči, databáze nám často nedovolí vytvořit cizí klíč na rodičovskou tabulku z dětské tabulky, pokud jsme ji ještě nevytvořili. Občas se ale může stát, že vytvoříme migrace s vytvořením prvně dětské tabulky a až poté vytvoříme jejího rodiče. Proto je vhodné znát způsob, jak změnit pořadí migrací, aniž bychom je museli mazat.

Řešením je změnit časové známky obou migrací:

2017_01_01_00001_create_categories_table.php
2017_01_01_00003_create_articles_table.php

Nyní se jako první vytvoří kategorie a až poté články.

Vyplníme metody up a pro jistotu i down:

public function up() {
   Schema::table('articles', function (Blueprint $table) {
      $table->foreign('category_id')->references('id')->on('categories')->onDelete('cascade');
   });
}

public function down() {
   Schema::table('articles', function(Blueprint $table) {
      $table->dropForeign('category_id'); 
   });
}