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.

Změna časové známky

Mějme například tabulku článků s cizím klíčem na kategorii. Náhodou se stane, že prvně vytvoříte migraci s články a až poté kategorie. Ve vašem adresáři s migracemi tak budete mít tuto strukturu: ```php 2017_01_01_00001_create_articles_table.php 2017_01_01_00003_create_categories_table.php ```

Ř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.

Migrace pro cizí klíč

Vycházejme ze stejné situace jako v předchozí metodě, nicméně tentokrát vytvoříme ještě jednu migraci navíc s cizím klíčem: ```php 2017_01_01_00005_add_category_foreign_key.php ```

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'); 
   });
}