> For the complete documentation index, see [llms.txt](https://overleaf-pro.ayaka.space/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://overleaf-pro.ayaka.space/on-premises/es/gestion-de-usuarios-y-proyectos/user-management/username-migration.md).

# Migración de nombres de usuario

## Migración de nombres de usuario

Desde la perspectiva del inicio de sesión, el identificador principal de un usuario es su dirección de correo electrónico. Si está migrando de una autenticación local a SSO o si está migrando de un IdP a otro, es posible que deba actualizar las direcciones de correo electrónico de los usuarios.

Para ayudar con esto, se proporciona un script que migrará los correos electrónicos de los usuarios usando un archivo CSV con el siguiente formato:

`oldEmail,newEmail`

Después de realizar algunas comprobaciones de validación, el script recorrerá el archivo CSV y actualizará las direcciones de correo electrónico de los usuarios de `oldEmail` a `newEmail`.

### **Validación**

Antes de ejecutar la migración, el `<csv_file>` se comprobará para asegurarse de que:

* Para cada fila, tanto el `oldEmail` como el `newEmail` son direcciones de correo electrónico válidas
* No hay entradas duplicadas; por ejemplo, no está intentando actualizar diferentes usuarios con la misma nueva dirección de correo electrónico ni está intentando actualizar la misma cuenta de usuario con una dirección de correo electrónico ya utilizada

### **Uso** <a href="#usage" id="usage"></a>

{% code overflow="wrap" %}

```bash
docker cp <csv_file> sharelatex:/overleaf/services/web/<csv_file> docker exec sharelatex /bin/bash -c "cd /overleaf/services/web;node ./modules/server-ce-scripts/scripts/migrate-user-emails.js [--commit] [--continue|--ignore-missing] [--admin-id=ADMIN_USER_ID] <csv_file>"
```

{% endcode %}

### **Opciones** <a href="#flags" id="flags"></a>

| Nombre             | Descripción                                                                                                                                                                                                                                                                                                               |
| ------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `--commit`         | <p>La inclusión de la <code>--commit</code> bandera hará realmente la migración. Cuando se omite, la migración se realizará en modo de simulación en el que no se hacen cambios, pero la validación sigue realizándose.<br><br><strong>Predeterminado</strong>:<code>false</code></p>                                     |
| `--continue`       | El `--continue` la bandera continuará el proceso de migración si una cuenta de usuario si la dirección de correo electrónico de la cuenta ya se ha actualizado                                                                                                                                                            |
| `--ignore-missing` | El `--ignore-missing` la bandera continuará el proceso de migración si no se encontró una cuenta de usuario                                                                                                                                                                                                               |
| `--admin-id`       | El `--admin-id` debe establecerse en el ID del administrador que está realizando la migración y se usará para las entradas del registro de auditoría. Vaya a **Administrador** > **Administrar usuarios** y busque su dirección de correo electrónico y haga clic en el primer resultado para encontrar su ID de usuario. |
| `<csv_file>`       | El `<csv_file>` es el archivo con las direcciones de correo electrónico antiguas y nuevas en                                                                                                                                                                                                                              |

### **Finalización** <a href="#completion" id="completion"></a>

Mientras se ejecuta el script de migración, según las banderas que haya elegido, se determinará si se registra un error en la consola y luego continúa, o si se registra en la consola y se sale. Si el script termina prematuramente debido a un error, saldrá con el código 1 para indicar que no tuvo éxito.

Al completar la migración, el script registrará en la consola el número de actualizaciones exitosas, fallidas y omitidas. Si la migración se completa correctamente, saldrá con el código 0.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://overleaf-pro.ayaka.space/on-premises/es/gestion-de-usuarios-y-proyectos/user-management/username-migration.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
