. */ declare(strict_types=1); use Illuminate\Database\Migrations\Migration; use Illuminate\Database\QueryException; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; return new class () extends Migration { /** * Run the migrations. * * @SuppressWarnings(PHPMD.ShortMethodName) */ public function up(): void { if (!Schema::hasTable('notifications')) { try { Schema::create('notifications', static function (Blueprint $table): void { $table->uuid('id')->primary(); $table->string('type'); $table->morphs('notifiable'); $table->text('data'); $table->timestamp('read_at')->nullable(); $table->timestamps(); }); } catch (QueryException $e) { app('log')->error(sprintf('Could not create table "notifications": %s', $e->getMessage())); app('log')->error('If this table exists already (see the error message), this is not a problem. Other errors? Please open a discussion on GitHub.'); } } } /** * Reverse the migrations. */ public function down(): void { Schema::dropIfExists('notifications'); } };