/** * Create the "Various Artists". * * @return void */ public function up() { Artist::unguard(); $existingArtist = Artist::find(Artist::VARIOUS_ID); if ($existingArtist) { if ($existingArtist->name === Artist::VARIOUS_NAME) { goto ret; } // There's an existing artist with that special ID, but it's not our Various Artist // We move it to the end of the table. $latestArtist = Artist::orderBy('id', 'DESC')->first(); $existingArtist->id = $latestArtist->id + 1; $existingArtist->save(); } Artist::create(['id' => Artist::VARIOUS_ID, 'name' => Artist::VARIOUS_NAME]); ret: Artist::reguard(); }
/** * Create the "Various Artists". * * @return void */ public function up() { // Make sure modified artists cascade the album's artist_id field. Schema::table('albums', function ($table) { $table->dropForeign('albums_artist_id_foreign'); $table->foreign('artist_id')->references('id')->on('artists')->onUpdate('cascade')->onDelete('cascade'); }); Artist::unguard(); $existingArtist = Artist::find(Artist::VARIOUS_ID); if ($existingArtist) { if ($existingArtist->name === Artist::VARIOUS_NAME) { goto ret; } // There's an existing artist with that special ID, but it's not our Various Artist // We move it to the end of the table. $latestArtist = Artist::orderBy('id', 'DESC')->first(); $existingArtist->id = $latestArtist->id + 1; $existingArtist->save(); } Artist::create(['id' => Artist::VARIOUS_ID, 'name' => Artist::VARIOUS_NAME]); ret: Artist::reguard(); }