bigIncrements('id'); $table->bigInteger('to_id')->unsigned()->index(); $table->bigInteger('from_id')->unsigned()->index(); $table->bigInteger('dm_id')->unsigned()->nullable(); $table->bigInteger('status_id')->unsigned()->nullable(); $table->string('type')->nullable(); $table->boolean('is_hidden')->default(false)->index(); $table->boolean('has_seen')->default(false)->index(); $table->json('metadata')->nullable(); $table->unique(['to_id', 'from_id']); $table->timestamps(); }); sleep(10); if(DirectMessage::count()) { foreach(DirectMessage::lazy() as $msg) { Conversation::updateOrInsert([ 'to_id' => $msg->to_id, 'from_id' => $msg->from_id, ], [ 'dm_id' => $msg->id, 'status_id' => $msg->status_id, 'type' => $msg->type, 'created_at' => $msg->created_at, 'updated_at' => $msg->updated_at ]); } } } /** * Reverse the migrations. * * @return void */ public function down() { Schema::dropIfExists('conversations'); } }