public function up()

in database/migrations/2018_03_18_090345_migrate_current_relationship_table_to_new_relationship_structure.php [16:56]


    public function up()
    {
        Account::chunk(200, function ($accounts) {
            foreach ($accounts as $account) {
                $relationshipTypeId = $account->getRelationshipTypeByType('partner')->id;
                $itemsToDelete = [];

                $relationships = Relationship::where('account_id', $account->id)->get()->keyBy('id');

                foreach ($relationships as $relationship) {
                    foreach ($relationships as $bilateralRelationship) {
                        if ($relationship->contact_id == $bilateralRelationship->with_contact_id
                            && $relationship->with_contact_id == $bilateralRelationship->contact_id) {
                            $relationships->forget($bilateralRelationship->id);
                        }
                    }

                    DB::table('temp_relationships_table')->insert([
                        [
                            'account_id' => $account->id,
                            'contact_is' => $relationship->contact_id,
                            'relationship_type_name' => 'partner',
                            'of_contact' => $relationship->with_contact_id,
                            'relationship_type_id' => $relationshipTypeId,
                        ],
                        [
                            'account_id' => $account->id,
                            'contact_is' => $relationship->with_contact_id,
                            'relationship_type_name' => 'partner',
                            'of_contact' => $relationship->contact_id,
                            'relationship_type_id' => $relationshipTypeId,
                        ],
                    ]);
                }
            }
        });

        Schema::dropIfExists('relationships');

        Schema::rename('temp_relationships_table', 'relationships');
    }