---
title: "Important: Updated profiles keep new records on their page"
manual: "Academic Profiles"
version: "main"
permalink: "https://docs.typo3.org/permalink/fgtclb/academic-persons:important-ace-843-academic-persons@main"
source: "Changelog/2.4/Important-UpdatedProfilesKeepNewRecordsOnTheirPage.rst"
rendered: "2026-10-15T10:24:29+00:00"
---

# Important: Updated profiles keep new records on their page {#important-ace-843-academic-persons}

## Description {#description}

`academic:updateprofiles` stored every record it added to an existing
profile on the page of the frontend user: a new contract, and the physical
address, email address and phone numbers of a new or an existing contract. A
profile that had been moved to a folder of its own therefore collected records
in the folder of the frontend users.

The command now stores a new contract on the page of its profile. A physical
address, an email address or a phone number it adds to a contract is stored on
the page of that contract, which an editor may have moved on its own.

Creating a profile with `academic:createprofiles` is unchanged: a new
profile and its records are stored on the page of the frontend user.

## Impact {#impact}

Records added by `academic:updateprofiles` are stored next to the
profile or the contract they belong to.

Records stored on the page of the frontend user by an earlier run stay where
they are. They are not moved.

## Affected Installations {#affected-installations}

Installations that synchronize profiles from frontend users and keep the
profiles on another page than the frontend users.

## Migration {#migration}

Optionally, find the records an earlier run stored on the page of the frontend
user and move them to the page of their profile or contract, for example with
the clipboard of the **List** module. Moving a contract to another page
takes its physical addresses, email addresses and phone numbers along.

The contracts of the synchronization that are not stored on the page of their
profile:

```sql
SELECT contract.uid, contract.pid, profile.uid AS profile, profile.pid AS profile_pid
FROM tx_academicpersons_domain_model_contract AS contract
INNER JOIN tx_academicpersons_domain_model_profile AS profile
    ON profile.uid = contract.profile
WHERE contract.import_identifier LIKE 'fe_users:%'
    AND contract.pid <> profile.pid
    AND contract.deleted = 0;
```

The email addresses of the synchronization that are not stored on the page of
their contract. Replace `tx_academicpersons_domain_model_email` with
`tx_academicpersons_domain_model_address` or
`tx_academicpersons_domain_model_phone_number` for the physical addresses
and the phone numbers:

```sql
SELECT record.uid, record.pid, contract.uid AS contract, contract.pid AS contract_pid
FROM tx_academicpersons_domain_model_email AS record
INNER JOIN tx_academicpersons_domain_model_contract AS contract
    ON contract.uid = record.contract
WHERE record.import_identifier LIKE 'fe_users:%'
    AND record.pid <> contract.pid
    AND record.deleted = 0;
```
