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