schema->create('rooms', function (Blueprint $table) { $table->increments('id'); $table->string('name', 35)->unique(); $table->string('map_url', 300)->nullable(); $table->text('description')->nullable(); $table->timestamps(); }); if ($this->schema->hasTable('Room')) { $connection = $this->schema->getConnection(); /** @var stdClass[] $previousRecords */ $previousRecords = $connection ->table('Room') ->get(); foreach ($previousRecords as $previousRecord) { $room = new Room([ 'name' => $previousRecord->Name, 'map_url' => $previousRecord->map_url ?: null, 'description' => $previousRecord->description ?: null, ]); $room->setAttribute('id', $previousRecord->RID); $room->save(); } $this->changeReferences( 'Room', 'RID', 'rooms', 'id' ); $this->schema->drop('Room'); } } /** * Reverse the migration */ public function down(): void { $this->schema->create('Room', function (Blueprint $table) { $table->increments('RID'); $table->string('Name', 35)->unique(); $table->string('map_url', 300)->nullable(); $table->mediumText('description')->nullable(); }); foreach (Room::all() as $room) { $this->schema ->getConnection() ->table('Room') ->insert([ 'RID' => $room->id, 'Name' => $room->name, 'map_url' => $room->map_url ?: null, 'description' => $room->description ?: null, ]); } $this->changeReferences( 'rooms', 'id', 'Room', 'RID' ); $this->schema->drop('rooms'); } }